tags
cscope.out
project.vim
+build/
+stage1.tar.xz
ARCH = x86_64
# tools
-REALCC = gcc
-CC = $(BINDIR)/musl-gcc
+CC = cc
LD = $(CC)
AR = ar
$(BUILDDIR)/tmp \
$(BUILDDIR)/var
+# optionally override settings
+-include config.mk
+
#------------------------------------------------------------------------------
# Build Rules
#------------------------------------------------------------------------------
-include source/musl/Rules.mk
+# TODO: Determine if this is needed anymore now that we have a musl-based cross compiler
+#include source/musl/Rules.mk
+#
+# TODO: Fix an issue where libcurl.a is refusing to build for some reason
+#include source/curl/Rules.mk
+
include source/Rules.mk
include source/ubase/Rules.mk
include source/sbase/Rules.mk
include source/smdev/Rules.mk
include source/sdhcp/Rules.mk
include source/iproute2/Rules.mk
-include source/curl/Rules.mk
include source/kernel/Rules.mk
include etc/Rules.mk
+# ALBase
+
+This is an experimental Linux distro with a focus on simplicity and efficiency.
+The goals of the project are as follows:
+
+* No dynamically linked executables in the base
+* Link against musl instead of glibc
+* No systemd or any of it's components
+* No DBus or any of it's components
+* As little GNU code as possible
+
+## Building
+
+ # Optional: build the musl-based cross compiler and use that for the build
+ ./bootstrap.sh
+ make stage1
make all install
make clean
fi
+if [ ! -f config.mk ]; then
+ echo 'export PATH := $(PWD)/musl-corss-make/stage2/bin:$(PATH)' >> config.mk
+ echo 'CC = x86_64-linux-musl-gcc' >> config.mk
+ echo 'LD = $(CC)' >> config.mk
+ echo 'AR = x86_64-linux-musl-ar' >> config.mk
+fi
dmesg: $(BINDIR)/dmesg
mount: $(BINDIR)/mount
-$(BINDIR)/%: $(SRC_SUBDIR)/%.c $(CC)
- $(BUILD)
+$(BINDIR)/%: $(SRC_SUBDIR)/%.c
+ $(BUILD) -lcrypt
$(CURL_LIB): $(CURL_LIB_OBJS)
-$(CURL_OBJDIR)/%.o: $(CURL_SUBDIR)/%.c $(CC)
+$(CURL_OBJDIR)/%.o: $(CURL_SUBDIR)/%.c
$(CC) $(CURL_INCS) $(CURL_DEFS) $(CURL_CFLAGS) -c -o $@ $<
$(IPROUTE2_OBJDIR)/%.a:
$(AR) $(ARFLAGS) $@ $^
-$(IPROUTE2_OBJDIR)/%.o: $(IPROUTE2_SUBDIR)/%.c $(CC)
+$(IPROUTE2_OBJDIR)/%.o: $(IPROUTE2_SUBDIR)/%.c
$(CC) $(IPROUTE2_FLAGS) $(IPROUTE2_INCS) -c -o $@ $<
$(SBASE_LIBUTIL): $(SBASE_LIBUTIL_OBJS)
$(SBASE_ARCHIVE)
-$(SBASE_OBJDIR)/%.o: $(SBASE_SUBDIR)/libutil/%.c $(CC)
+$(SBASE_OBJDIR)/%.o: $(SBASE_SUBDIR)/libutil/%.c
$(SBASE_COMPILE)
$(SBASE_LIBUTF): $(SBASE_LIBUTF_OBJS)
$(SBASE_ARCHIVE)
-$(SBASE_OBJDIR)/%.o: $(SBASE_SUBDIR)/libutf/%.c $(CC)
+$(SBASE_OBJDIR)/%.o: $(SBASE_SUBDIR)/libutf/%.c
$(SBASE_COMPILE)
-$(BINDIR)/%: $(SBASE_SUBDIR)/%.c $(SBASE_LIBUTIL) $(SBASE_LIBUTF) $(CC)
+$(BINDIR)/%: $(SBASE_SUBDIR)/%.c $(SBASE_LIBUTIL) $(SBASE_LIBUTF)
$(SBASE_BUILD) $(SBASE_LIBUTIL) $(SBASE_LIBUTF)
$(BINDIR)/sdhcp: $(SDHCP_OBJS)
$(CC) -o $@ $^
-$(SDHCP_OBJDIR)/%.o: $(SDHCP_SUBDIR)/%.c $(CC)
+$(SDHCP_OBJDIR)/%.o: $(SDHCP_SUBDIR)/%.c
$(CC) $(SDHCP_INCS) $(SDHCP_DEFS) -c -o $@ $<
$(MKSH_BIN): $(BINDIR)/$(MKSH_BIN)
-$(BINDIR)/$(MKSH_BIN): $(MKSH_OBJS) $(CC)
+$(BINDIR)/$(MKSH_BIN): $(MKSH_OBJS)
$(LD) -o $@ $(MKSH_OBJS) $(LDFLAGS)
-$(MKSH_OBJDIR)/%.o: $(MKSH_SUBDIR)/%.c $(CC)
+$(MKSH_OBJDIR)/%.o: $(MKSH_SUBDIR)/%.c
$(CC) $(CFLAGS) -I$(MKSH_SUBDIR) $(MKSH_DEFINES) -c -o $@ $^
$(SHADOW_LIBMISC): $(SHADOW_LIBMISC_OBJS)
$(BINDIR)/%: $(SHADOW_SUBDIR)/src/%.c $(SHADOW_LIBMISC) $(SHADOW_LIB)
- $(CC) -I$(SHADOW_SUBDIR) -I$(SHADOW_SUBDIR)/libmisc -I$(SHADOW_SUBDIR)/lib -DHAVE_CONFIG_H -O2 -o $@ $^
+ $(CC) -I$(SHADOW_SUBDIR) -I$(SHADOW_SUBDIR)/libmisc -I$(SHADOW_SUBDIR)/lib -DHAVE_CONFIG_H -O2 -o $@ $^ -lcrypt
$(SHADOW_OBJDIR)/%.a:
$(AR) $(ARFLAGS) $@ $^
-$(SHADOW_OBJDIR)/%.o: $(SHADOW_SUBDIR)/%.c $(CC)
+$(SHADOW_OBJDIR)/%.o: $(SHADOW_SUBDIR)/%.c
$(CC) -I$(SHADOW_SUBDIR) -I$(SHADOW_SUBDIR)/libmisc -I$(SHADOW_SUBDIR)/lib -DHAVE_CONFIG_H -O2 -c -o $@ $<
$(BINDIR)/smdev: $(SMDEV_OBJS)
$(CC) -o $@ $^
-$(SMDEV_OBJDIR)/%.o: $(SMDEV_SUBDIR)/%.c $(CC)
+$(SMDEV_OBJDIR)/%.o: $(SMDEV_SUBDIR)/%.c
$(CC) $(SMDEV_INCS) $(SMDEV_DEFS) -c -o $@ $<
$(UBASE_LIBUTIL): $(UBASE_LIBUTIL_OBJS)
$(UBASE_ARCHIVE)
-$(UBASE_OBJDIR)/%.o: $(UBASE_SUBDIR)/libutil/%.c $(CC)
+$(UBASE_OBJDIR)/%.o: $(UBASE_SUBDIR)/libutil/%.c
$(UBASE_COMPILE)
-$(BINDIR)/%: $(UBASE_SUBDIR)/%.c $(UBASE_LIBUTIL) $(CC)
- $(UBASE_BUILD) $(UBASE_LIBUTIL)
+$(BINDIR)/%: $(UBASE_SUBDIR)/%.c $(UBASE_LIBUTIL)
+ $(UBASE_BUILD) $(UBASE_LIBUTIL) -lcrypt