]> git.mdlowis.com Git - proto/albase.git/commitdiff
Updated to allow building with or without a bootstrapped crosscompiler
authorMike Lowis <mike.lowis@gentex.com>
Wed, 21 Sep 2016 15:35:57 +0000 (11:35 -0400)
committerMike Lowis <mike.lowis@gentex.com>
Wed, 21 Sep 2016 15:35:57 +0000 (11:35 -0400)
13 files changed:
.gitignore
Makefile
README.md
bootstrap.sh
source/Rules.mk
source/curl/Rules.mk
source/iproute2/Rules.mk
source/sbase/Rules.mk
source/sdhcp/Rules.mk
source/sh/Rules.mk
source/shadow/Rules.mk
source/smdev/Rules.mk
source/ubase/Rules.mk

index 33ae8121163777d43ff7453a8465cca6e074993a..76e240ae9247a56343d6f8eae0c8f6e9f4994124 100644 (file)
@@ -1,3 +1,5 @@
 tags
 cscope.out
 project.vim
+build/
+stage1.tar.xz
index b2fa6b953b89cb91e9fb10699798e4f5c1372420..48de21bd518b454a01db0510806f881ad6d6d51c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,8 +5,7 @@
 ARCH = x86_64
 
 # tools
-REALCC = gcc
-CC     = $(BINDIR)/musl-gcc
+CC     = cc
 LD     = $(CC)
 AR     = ar
 
@@ -43,10 +42,18 @@ DIRS   = $(BUILDDIR) $(BINDIR) $(LIBDIR) $(OBJDIR) \
          $(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
@@ -55,7 +62,6 @@ include source/shadow/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
 
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3417f3d3a8bdd95b7c1cac2f87aec13602fd733e 100644 (file)
--- a/README.md
+++ b/README.md
@@ -0,0 +1,16 @@
+# 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
index 0098b220202460420d6303c094435dceb1a510de..138bd9fb512d869ee77f7866fc0784c7064e166b 100755 (executable)
@@ -12,3 +12,9 @@ if [ ! -d musl-cross-make/stage2 ]; then
     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
index 394d5ea978211585ef3b1cc0ca7a5b23f0389196..7fee087ab96a8738f32530aec4807c2eac2e66ea 100644 (file)
@@ -12,5 +12,5 @@ login: $(BINDIR)/login
 dmesg: $(BINDIR)/dmesg
 mount: $(BINDIR)/mount
 
-$(BINDIR)/%: $(SRC_SUBDIR)/%.c $(CC)
-       $(BUILD)
+$(BINDIR)/%: $(SRC_SUBDIR)/%.c
+       $(BUILD) -lcrypt
index 05dd20640d981b9425f332df721be92781eb651b..302fb914ba68cf5591e3f6ae3f8d49a26e2cfd86 100644 (file)
@@ -22,5 +22,5 @@ $(BINDIR)/curl: $(CURL_OBJS) $(CURL_LIB)
 
 $(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 $@ $<
index d0eabd5abb6951860258e59b1dabc1060b1aa8ad..f14f4d36e711def48a819eaa5662e266ab8247f0 100644 (file)
@@ -39,5 +39,5 @@ $(BINDIR)/%:
 $(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 $@ $<
index 143c5bee4910830995669dda90bb8f6f358aa870..cc394402fee77b50fedf0500036c073af1a87065 100644 (file)
@@ -174,14 +174,14 @@ sbase: $(SBASE_BINS)
 $(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)
index 0b08b476ff98dd139b8aedf1fb3dcfea60ad1554..52f8873d51cfa81c7130187dfd1773543a80145c 100644 (file)
@@ -15,6 +15,6 @@ sdhcp: $(BINDIR)/sdhcp
 $(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 $@ $<
 
index 8212a0d8a19ba34f1e54d81ae04760bd2d18b39e..8a00d1e5ab0f3321646609488f952f95e69636d7 100644 (file)
@@ -93,8 +93,8 @@ MKSH_DEFINES =                    \
 
 $(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 $@ $^
index 26a950a2fccdcb4779c6f858a42dd2306d16422d..c509082467f04091c24b9793667894b8cdd2ef49 100644 (file)
@@ -33,10 +33,10 @@ $(SHADOW_LIB): $(SHADOW_LIB_OBJS)
 $(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 $@ $<
index 8038c274f280f8c0b9446383b93e9649cd812888..b19daa867d439c30302a9b26e8702cbbf6c288a1 100644 (file)
@@ -15,6 +15,6 @@ smdev: $(BINDIR)/smdev
 $(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 $@ $<
 
index f818853b451727acacc8a1c14f000644cbf3a898..e03dd65ec97334eec0eb48e2ce9503d385b0da38 100644 (file)
@@ -85,8 +85,8 @@ ubase: $(UBASE_BINS)
 $(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