Mercurial > hg > th-libs
view Makefile.inc @ 607:081426ee3d93
Merge.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 15 Jan 2020 12:24:43 +0200 |
parents | 5ec903f366b5 |
children | 81714d54689c |
line wrap: on
line source
### ### Tools, paths and directories ### ifneq ($(BINTOOL_PREFIX),) CC = $(BINTOOL_PREFIX)gcc CXX = $(BINTOOL_PREFIX)g++ AR = $(BINTOOL_PREFIX)ar RANLIB = $(BINTOOL_PREFIX)ranlib else CC ?= $(BINTOOL_PREFIX)gcc CXX ?= $(BINTOOL_PREFIX)g++ AR ?= $(BINTOOL_PREFIX)ar RANLIB ?= $(BINTOOL_PREFIX)ranlib endif INSTALL ?= install MKDIR ?= mkdir MKDIR_P ?= $(MKDIR) -p ### ### Main th-libs targets ### THLIBS_A = $(OBJPATH)thlibs.a THLIBS_DEP += $(THLIBS)th_types.h $(THLIBS)th_util.h NOBUILD_TARGETS += NOINST_TARGETS += $(THLIBS_A) ### ### Functions and compilation/link commands ### ifneq ($(V),1) DO_CMD=/bin/echo -E " $(1) $(2)" && $(3) else DO_CMD=/bin/echo -E $(3) && $(3) endif DO_MKDIR=if test ! -z "$(1)" -a ! -d "$(1)"; then /bin/echo -E " MKDIR $(1)"; mkdir -p "$(1)"; fi COMPILE_C_OBJ = \ @$(call DO_MKDIR,$(OBJPATH)) ; \ $(call DO_CMD,CC,$<,$(CC) $(CFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) LINK_C_BIN = \ @$(call DO_MKDIR,$(BINPATH)) ; \ $(call DO_CMD,LINK,$@,$(CC) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) COMPILE_CXX_OBJ = \ @$(call DO_MKDIR,$(OBJPATH)) ; \ $(call DO_CMD,CXX,$<,$(CXX) $(CXXFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) LINK_CXX_BIN = \ @$(call DO_MKDIR,$(BINPATH)) ; \ $(call DO_CMD,LINK,$@,$(CXX) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) LINK_STATIC_LIB = \ @$(call DO_MKDIR,$(OBJPATH)) ; \ $(call DO_CMD,AR,$@ $(filter %.o,$+),$(AR) cru $@ $(filter %.o,$+)) ; \ $(call DO_CMD,RANLIB,$@,$(RANLIB) $@) ### ### Generic target rules ### all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) $(THLIBS)th_string.c: $(addprefix $(THLIBS), \ th_printf.c th_printf1.c th_strglob.c th_string.h) @touch $@ $(OBJPATH)%.o: $(THLIBS)%.c $(THLIBS_DEP) $(COMPILE_C_OBJ) $(OBJPATH)%.o: $(THLIBS)%.c $(THLIBS)%.h $(THLIBS_DEP) $(COMPILE_C_OBJ) -I$(THLIBS) $(OBJPATH)%.o: %.c %.h $(THLIBS_DEP) $(COMPILE_C_OBJ) -I$(THLIBS) $(OBJPATH)%.o: %.c $(THLIBS_DEP) $(COMPILE_C_OBJ) -I$(THLIBS) $(THLIBS_A): $(addprefix $(OBJPATH),$(THLIBS_OBJ)) $(LINK_STATIC_LIB) ### ### Generate endian check and config.h ### $(OBJPATH)endianchk.o: $(THLIBS)endianchk.c $(COMPILE_C_OBJ) $(ENDIANCHK_BIN): $(OBJPATH)endianchk.o $(LINK_C_BIN) config.h: $(ENDIANCHK_BIN) $(ENDIANCHK_BIN) > $@ ### ### Special targets ### clean: $(RM) $(TARGETS) $(NOINST_TARGETS) $(OBJPATH)*.o srcclean: clean $(RM) *~ .PHONY: clean srcclean all