]> git.mdlowis.com Git - projs/onward.git/commitdiff
Added config.mk file to allow user-specific overrides
authorMichael D. Lowis <mike@mdlowis.com>
Wed, 30 Dec 2015 04:02:44 +0000 (23:02 -0500)
committerMichael D. Lowis <mike@mdlowis.com>
Wed, 30 Dec 2015 04:02:44 +0000 (23:02 -0500)
.gitignore
Makefile
config.mk [new file with mode: 0644]

index 73b18292d057a12410aa10423a5c0a570de9da63..5cabc309ba1d4424cc184105f19dc4f5de214c6f 100644 (file)
@@ -1,4 +1,8 @@
 *.o
+*.d
+*.gcno
+*.gcda
 *.a
 *.exe
 .rsconscache
+config.mk
index be310a082a55e370549f92ac9158ae01b97cff5a..6adb396d5bb0703eee888ec8563247bdb4b804e1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -15,18 +15,25 @@ CFLAGS   += ${INCS} ${CPPFLAGS}
 LDFLAGS  += ${LIBS}
 ARFLAGS   = rcs
 
+# commands
+COMPILE = @echo CC $@; ${CC} ${CFLAGS} -c -o $@ $<
+LINK    = @echo LD $@; ${LD} -o $@ $^ ${LDFLAGS}
+ARCHIVE = @echo AR $@; ${AR} ${ARFLAGS} $@ $^
+CLEAN   = @rm -f
+
 #------------------------------------------------------------------------------
 # Build Targets and Rules
 #------------------------------------------------------------------------------
-SRCS = source/onward.c source/main.c
-OBJS = ${SRCS:.c=.o}
-LIB  = libonward.a
-BIN  = onward
-TEST_SRCS = tests/atf.c tests/main.c tests/test_interpreter.c tests/test_vars.c
-TEST_OBJS = ${TEST_SRCS:.c=.o}
-TEST_BIN  = testonward
+LIBNAME = onward
+LIB     = lib${LIBNAME}.a
+BIN     = ${LIBNAME}
+DEPS    = ${OBJS:.o=.d}
+OBJS    = source/onward.o source/main.o
+
+# load user-specific settings
+-include config.mk
 
-all: options ${BIN} ${TEST_BIN}
+all: options ${LIB} ${BIN}
 
 options:
        @echo "Toolchain Configuration:"
@@ -38,25 +45,20 @@ options:
        @echo "  ARFLAGS  = ${ARFLAGS}"
 
 ${LIB}: ${OBJS}
-       @echo AR $@
-       @${AR} ${ARFLAGS} $@ ${OBJS}
+       ${ARCHIVE}
 
 ${BIN}: ${LIB}
-       @echo LD $@
-       @${LD} -o $@ ${LIB} ${LDFLAGS}
-
-
-${TEST_BIN}: ${TEST_OBJS} ${LIB}
-       @echo LD $@
-       @${LD} -o $@ ${TEST_OBJS} ${LIB} ${LDFLAGS}
-       -./$@
+       ${LINK}
 
 .c.o:
-       @echo CC $<
-       @${CC} ${CFLAGS} -c -o $@ $<
+       ${COMPILE}
 
 clean:
-       @rm -f ${LIB} ${BIN} ${TEST_BIN} ${OBJS} ${TEST_OBJS}
+       ${CLEAN} ${LIB} ${BIN} ${OBJS} ${DEPS}
+       ${CLEAN} ${OBJS:.o=.gcno} ${OBJS:.o=.gcda}
+
+# load dependency files
+-include ${DEPS}
 
 .PHONY: all options
 
diff --git a/config.mk b/config.mk
new file mode 100644 (file)
index 0000000..7d6c9bd
--- /dev/null
+++ b/config.mk
@@ -0,0 +1,17 @@
+#------------------------------------------------------------------------------
+# User and Platform Specific Configuration Options
+#------------------------------------------------------------------------------
+# Override the tools used with platform specific ones
+#CC = cc
+#LD = ${CC}
+#AR = ar
+
+# GCC dependency generation
+#COMPILE += && ${CC} --std=c11 ${INCS} -MM -MT $@ -MF ${@:.o=.d} ${<:.o=.c}
+
+# Enable output of debug symbols
+#CFLAGS += -g
+
+# Enable output of coverage information
+#CFLAGS  += --coverage
+#LDFLAGS += --coverage