view Makefile.gen @ 418:3c1bd6c55e00

Make build process less noisy.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 09 Mar 2016 13:55:48 +0200
parents 137a3cca9a9c
children ec109cbaddfb
line wrap: on
line source

CFLAGS += -W -Wall -Wextra -std=c11 -pedantic -I./ -D_XOPEN_SOURCE=500 -DTH_USE_INTERNAL_SPRINTF=1
CFLAGS += -g
CFLAGS += -O2
CFLAGS += -DTH_PRINTF_DEBUG=1
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 th_datastruct.o th_network.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)

$(THLIBS)th_string.c: $(addprefix $(THLIBS), th_printf1.c th_strmatch.c th_string.h)
	touch $@

$(OBJPATH) $(BINPATH):
	@echo " MKDIR $@"
	@$(MKDIR_P) $@

$(OBJPATH)%.o: %.c %.h $(THLIBS_DEP)
	@echo " CC $@"
	@$(CC) $(CFLAGS) -c -o $@ $< -I$(THLIBS)

$(OBJPATH)%.o: %.c $(THLIBS_DEP)
	@echo " CC $@"
	@$(CC) $(CFLAGS) -c -o $@ $< -I$(THLIBS)


$(THLIBS_A): $(addprefix $(OBJPATH),$(THLIBS_OBJ))
	@echo " AR $@"
	@$(AR) cru $@ $(addprefix $(OBJPATH),$(THLIBS_OBJ))
	@$(RANLIB) $@

$(TESTS_BIN): $(addprefix $(OBJPATH),$(TESTS_OBJ)) $(THLIBS_A)
	@echo " LINK $@"
	@$(CC) $(CFLAGS) -o $@ $+ $(LDFLAGS)


check: $(TESTS_BIN)
	$(TESTS_BIN) -v

#
# Special targets
#
.PHONY: clean srcclean all

clean:
	$(RM) $(TARGETS) $(NOINST_TARGETS) $(OBJPATH)*.o

srcclean: clean
	$(RM) *~