changeset 2415:a2c565ae8098

Import build system improvements from th-libs.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 14 Jan 2020 02:08:26 +0200
parents 69a5af2eb1ea
children 377e96524145
files Makefile.gen
diffstat 1 files changed, 26 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.gen	Mon Jan 13 23:27:01 2020 +0200
+++ b/Makefile.gen	Tue Jan 14 02:08:26 2020 +0200
@@ -294,21 +294,36 @@
 
 
 ###
-### Compilation commands
+### Functions and compilation/link commands
 ###
 ifneq ($(V),1)
-COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CC $<" && $(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
-COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CXX $<" && $(CXX) $(CXXFLAGS) -c -o $@ $< $(DM_CFLAGS)
-LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CC) -o $@ $(filter %.o %.a,$+)
-LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CXX) -o $@ $(filter %.o %.a,$+)
-LINK_STATIC_LIB = @echo " AR $@" && $(AR) cru $@ $(filter %.o,$+) && $(RANLIB) $@
+DO_CMD=/bin/echo -E " $(1) $(2)" && $(3)
 else
-COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)" && $(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
-COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CXX) $(CXXFLAGS) -c -o $@ $< $(DM_CFLAGS)" && $(CXX) $(CXXFLAGS) -c -o $@ $< $(DM_CFLAGS)
-LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CC) -o $@ $(filter %.o %.a,$+)" && $(CC) -o $@ $(filter %.o %.a,$+)
-LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CXX) -o $@ $(filter %.o %.a,$+)" && $(CXX) -o $@ $(filter %.o %.a,$+)
-LINK_STATIC_LIB = @echo "$(AR) cru $@ $(filter %.o,$+)" && $(AR) cru $@ $(filter %.o,$+) && echo "$(RANLIB) $@" && $(RANLIB) $@
+DO_CMD=/bin/echo -E $(3) && $(3)
 endif
+DO_MKDIR=if test ! -d "$(1)"; then 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) $@)
 
 
 ###