]> git.mdlowis.com Git - proto/albase.git/commitdiff
Updated build to have convenience phony targets and to ensure build dirs get created...
authorMike Lowis <mike.lowis@gentex.com>
Mon, 2 May 2016 19:34:42 +0000 (15:34 -0400)
committerMike Lowis <mike.lowis@gentex.com>
Mon, 2 May 2016 19:34:42 +0000 (15:34 -0400)
Makefile
source/Rules.mk [new file with mode: 0644]
source/sh/Rules.mk

index d0a38e894c375b9a603057f39aae6dd01b56be13..06eb45cdd4c8d7318ce2e8058af44cdbd3bd57ac 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -18,50 +18,33 @@ BUILDDIR = build
 BINDIR   = $(BUILDDIR)/bin
 OBJDIR   = $(BUILDDIR)/obj
 
+# targets
+BINS =
+ECLEAN =
+
 #------------------------------------------------------------------------------
-# Build-Specific Macros
+# Ensure The Build Dir Exists
 #------------------------------------------------------------------------------
-BINS =              \
-    $(BINDIR)/init  \
-    $(BINDIR)/getty \
-    $(BINDIR)/login \
-    $(BINDIR)/dmesg \
-    $(BINDIR)/mount \
-    $(BINDIR)/sh
-
-# load user-specific settings
--include config.mk
+$(BUILDDIR)/dummy:
+       mkdir -p $(BUILDDIR) $(BINDIR) $(OBJDIR) $(MKSH_OBJDIR)
+       touch $@
+-include $(BUILDDIR)/dummy
 
 #------------------------------------------------------------------------------
-# Phony Targets
+# Build Rules
 #------------------------------------------------------------------------------
-.PHONY: all dirs
-
-all: dirs $(BINS)
-
-dirs:
-       mkdir -p $(BINDIR) $(OBJDIR) $(MKSH_OBJDIR)
-
-$(BINDIR)/init: source/init.c
-       $(BUILD)
-
-$(BINDIR)/getty: source/getty.c
-       $(BUILD)
-
-$(BINDIR)/login: source/login.c
-       $(BUILD) -lcrypt
-
-$(BINDIR)/dmesg: source/dmesg.c
-       $(BUILD)
+include source/Rules.mk
+include source/sh/Rules.mk
 
-$(BINDIR)/mount: source/mount.c
-       $(BUILD)
+.PHONY: all $(BINS)
 
-include source/sh/Rules.mk
+all: $(BINS)
 
 clean:
-       $(RM) $(BINS) $(MKSH_OBJS)
+       $(RM) $(ECLEAN)
 
-# load dependency files
+# load dependency files if they exist
 -include $(DEPS)
 
+# load user-specific settings if they exist
+-include config.mk
diff --git a/source/Rules.mk b/source/Rules.mk
new file mode 100644 (file)
index 0000000..a585caf
--- /dev/null
@@ -0,0 +1,25 @@
+SRC_SUBDIR  = source
+SRC_BINS    = init getty login dmesg mount
+BINS       += $(SRC_BINS)
+ECLEAN     += $(addprefix $(BINDIR)/, $(SRC_BINS))
+
+init: $(BINDIR)/init
+$(BINDIR)/init: $(SRC_SUBDIR)/init.c
+       $(BUILD)
+
+getty: $(BINDIR)/getty
+$(BINDIR)/getty: $(SRC_SUBDIR)/getty.c
+       $(BUILD)
+
+login: $(BINDIR)/login
+$(BINDIR)/login: $(SRC_SUBDIR)/login.c
+       $(BUILD) -lcrypt
+
+dmesg: $(BINDIR)/dmesg
+$(BINDIR)/dmesg: $(SRC_SUBDIR)/dmesg.c
+       $(BUILD)
+
+mount: $(BINDIR)/mount
+$(BINDIR)/mount: $(SRC_SUBDIR)/mount.c
+       $(BUILD)
+
index d945c8ae0b62086299d695b9f37f4aa6d7c8fd95..d959831c184cf9751d85b835a17258775a7c02ad 100644 (file)
@@ -1,8 +1,10 @@
-MKSH_BIN    = sh
-MKSH_SUBDIR = source/sh
-MKSH_OBJDIR = $(OBJDIR)/sh
-MKSH_CCCMD  = $(CC) $(CFLAGS) -I$(MKSH_SUBDIR) $(MKSH_DEFINES) -c -o $@ $^
-MKSH_LDCMD  = $(CC) -o $@ $^
+MKSH_BIN     = sh
+MKSH_SUBDIR  = source/sh
+MKSH_OBJDIR  = $(OBJDIR)/sh
+MKSH_CCCMD   = $(CC) $(CFLAGS) -I$(MKSH_SUBDIR) $(MKSH_DEFINES) -c -o $@ $^
+MKSH_LDCMD   = $(CC) -o $@ $^
+BINS        += $(MKSH_BIN)
+ECLEAN      += $(BINDIR)/$(MKSH_BIN) $(MKSH_OBJS)
 
 MKSH_OBJS =                  \
     $(MKSH_OBJDIR)/lalloc.o  \
@@ -87,6 +89,8 @@ MKSH_DEFINES =                  \
     -DHAVE_SYS_SIGLIST_DECL=1   \
     -DHAVE_PERSISTENT_HISTORY=1
 
+sh: $(BINDIR)/$(MKSH_BIN)
+
 $(BINDIR)/$(MKSH_BIN): $(MKSH_OBJS)
        $(MKSH_LDCMD)
 
@@ -138,70 +142,3 @@ $(MKSH_OBJDIR)/edit.o: $(MKSH_SUBDIR)/edit.c
 $(MKSH_OBJDIR)/strlcpy.o: $(MKSH_SUBDIR)/strlcpy.c
        $(MKSH_CCCMD)
 
-
-
-#-DMKSH_BUILDSH
-#-D_GNU_SOURCE
-#-DSETUID_CAN_FAIL_WITH_EAGAIN
-#-DHAVE_ATTRIBUTE_BOUNDED=0
-#-DHAVE_ATTRIBUTE_FORMAT=1
-#-DHAVE_ATTRIBUTE_NORETURN=1
-#-DHAVE_ATTRIBUTE_PURE=1
-#-DHAVE_ATTRIBUTE_UNUSED=1
-#-DHAVE_ATTRIBUTE_USED=1
-#-DHAVE_SYS_TIME_H=1
-#-DHAVE_TIME_H=1
-#-DHAVE_BOTH_TIME_H=1
-#-DHAVE_SYS_BSDTYPES_H=0
-#-DHAVE_SYS_FILE_H=1
-#-DHAVE_SYS_MKDEV_H=0
-#-DHAVE_SYS_MMAN_H=1
-#-DHAVE_SYS_PARAM_H=1
-#-DHAVE_SYS_RESOURCE_H=1
-#-DHAVE_SYS_SELECT_H=1
-#-DHAVE_SYS_SYSMACROS_H=1
-#-DHAVE_BSTRING_H=0
-#-DHAVE_GRP_H=1
-#-DHAVE_IO_H=0
-#-DHAVE_LIBGEN_H=1
-#-DHAVE_LIBUTIL_H=0
-#-DHAVE_PATHS_H=1
-#-DHAVE_STDINT_H=1
-#-DHAVE_STRINGS_H=1
-#-DHAVE_TERMIOS_H=1
-#-DHAVE_ULIMIT_H=1
-#-DHAVE_VALUES_H=1
-#-DHAVE_CAN_INTTYPES=1
-#-DHAVE_CAN_UCBINTS=1
-#-DHAVE_CAN_INT8TYPE=1
-#-DHAVE_CAN_UCBINT8=1
-#-DHAVE_RLIM_T=1
-#-DHAVE_SIG_T=1
-#-DHAVE_SYS_ERRLIST=1
-#-DHAVE_SYS_SIGNAME=0
-#-DHAVE_SYS_SIGLIST=1
-#-DHAVE_FLOCK=1
-#-DHAVE_LOCK_FCNTL=1
-#-DHAVE_GETRUSAGE=1
-#-DHAVE_GETSID=1
-#-DHAVE_GETTIMEOFDAY=1
-#-DHAVE_KILLPG=1
-#-DHAVE_MEMMOVE=1
-#-DHAVE_MKNOD=0
-#-DHAVE_MMAP=1
-#-DHAVE_NICE=1
-#-DHAVE_REVOKE=0
-#-DHAVE_SETLOCALE_CTYPE=1
-#-DHAVE_LANGINFO_CODESET=1
-#-DHAVE_SELECT=1
-#-DHAVE_SETRESUGID=1
-#-DHAVE_SETGROUPS=1
-#-DHAVE_STRERROR=0
-#-DHAVE_STRSIGNAL=0
-#-DHAVE_STRLCPY=0
-#-DHAVE_FLOCK_DECL=1
-#-DHAVE_REVOKE_DECL=1
-#-DHAVE_SYS_ERRLIST_DECL=1
-#-DHAVE_SYS_SIGLIST_DECL=1
-#-DHAVE_PERSISTENT_HISTORY=1
-#-DMKSH_BUILD_R=523