diff Makefile.gen @ 254:3d1e2af4e4e6

Start of a very simplistic unit test suite. Initially handling just printf() style functions.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 16 Feb 2016 21:28:00 +0200
parents
children 7bea1d5ab944
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.gen	Tue Feb 16 21:28:00 2016 +0200
@@ -0,0 +1,60 @@
+CFLAGS += -g -W -Wall -Wextra
+CFLAGS += -O2
+CFLAGS += -std=c11 -pedantic -D_XOPEN_SOURCE=500
+THLIBS=./
+
+MKDIR ?= mkdir
+MKDIR_P ?= $(MKDIR) -p
+
+#
+# Objects
+#
+THLIBS_A=$(OBJPATH)thlibs.a
+THLIBS_OBJ=th_util.o th_config.o th_string.o th_ioctx.o th_args.o th_crypto.o
+
+
+TESTS_OBJ=tests.o
+TESTS_BIN=$(BINPATH)tests$(EXEEXT)
+
+TARGETS += $(TESTS_BIN)
+NOBUILD_TARGETS += $(OBJPATH) $(BINPATH)
+NOINST_TARGETS += $(THLIBS_A)
+
+
+#
+# Target rules
+#
+all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS)
+
+$(OBJPATH):
+	$(MKDIR_P) $@
+
+$(BINPATH):
+	$(MKDIR_P) $@
+
+$(OBJPATH)%.o: $(THLIBS)%.c $(THLIBS)%.h
+	$(CC) $(CFLAGS) -c -o $@ $<
+
+$(OBJPATH)%.o: %.c %.h
+	$(CC) $(CFLAGS) -c -o $@ $< -I$(THLIBS)
+
+$(OBJPATH)%.o: %.c
+	$(CC) $(CFLAGS) -c -o $@ $< -I$(THLIBS)
+
+
+$(THLIBS_A): $(addprefix $(OBJPATH),$(THLIBS_OBJ))
+	$(AR) cru $@ $(addprefix $(OBJPATH),$(THLIBS_OBJ))
+	$(RANLIB) $@
+
+$(TESTS_BIN): $(addprefix $(OBJPATH),$(TESTS_OBJ)) $(THLIBS_A) $(EXTRAOBJS)
+	$(CC) $(CFLAGS) -o $@ $+ $(LDFLAGS)
+
+#
+# Special targets
+#
+clean:
+	$(RM) $(TARGETS) $(NOINST_TARGETS) $(OBJPATH)*.o
+
+srcclean: clean
+	$(RM) *~
+