Mercurial > hg > th-libs
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) *~ +