comparison Makefile.gen @ 258:daaad6ad8212

Build system improvements.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 05 Dec 2019 16:36:01 +0200
parents 43a5e09bb832
children 14ed3a2500e6
comparison
equal deleted inserted replaced
257:f65e0de45c2b 258:daaad6ad8212
53 53
54 APP_RESOURCES += $(addprefix $(APP_IMG),logo.png $(ICON_PNGS)) COPYING.html 54 APP_RESOURCES += $(addprefix $(APP_IMG),logo.png $(ICON_PNGS)) COPYING.html
55 55
56 # And target lists 56 # And target lists
57 TARGETS = $(APP_BIN) 57 TARGETS = $(APP_BIN)
58 NOBUILD_TARGETS += $(OBJPATH) $(BINPATH) 58 NOBUILD_TARGETS +=
59 NOINST_TARGETS += 59 NOINST_TARGETS +=
60 CLEAN_TARGETS += icon.ico src/moc_*.cpp src/ui_*.h 60 CLEAN_TARGETS += icon.ico src/moc_*.cpp src/ui_*.h
61 DISTCLEAN_TARGETS += 61 DISTCLEAN_TARGETS +=
62 62
63 63
64 # Version 64 # Version
65 APP_VERSION := $(shell cat VERSION) 65 APP_VERSION := $(shell cat VERSION)
66 comma:= , 66 comma:= ,
67 APP_VERSION_COM := $(subst .,$(comma),$(APP_VERSION)) 67 APP_VERSION_COM := $(subst .,$(comma),$(APP_VERSION))
68 CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\" 68 CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\"
69
70
71 ifneq ($(V),1)
72 COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CC $<" && $(CC) $(CFLAGS) -c -o $@ $<
73 COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CXX $<" && $(CXX) $(CXXFLAGS) -c -o $@ $<
74 LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CC) -o $@ $(filter %.o %.a,$+)
75 LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CXX) -o $@ $(filter %.o %.a,$+)
76 LINK_STATIC_LIB = @echo " AR $@" && $(AR) cru $@ $(filter %.o,$+) && $(RANLIB) $@
77 else
78 COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CC) $(CFLAGS) -c -o $@ $<" && $(CC) $(CFLAGS) -c -o $@ $<
79 COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CXX) $(CXXFLAGS) -c -o $@ $<" && $(CXX) $(CXXFLAGS) -c -o $@ $<
80 LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CC) -o $@ $(filter %.o %.a,$+)" && $(CC) -o $@ $(filter %.o %.a,$+)
81 LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CXX) -o $@ $(filter %.o %.a,$+)" && $(CXX) -o $@ $(filter %.o %.a,$+)
82 LINK_STATIC_LIB = @echo "$(AR) cru $@ $(filter %.o,$+)" && $(AR) cru $@ $(filter %.o,$+) && echo "$(RANLIB) $@" && $(RANLIB) $@
83 endif
69 84
70 85
71 ### 86 ###
72 ### Target rules 87 ### Target rules
73 ### 88 ###
85 ui_%.h: %.ui 100 ui_%.h: %.ui
86 @echo " Qt::UIC $@ $<" 101 @echo " Qt::UIC $@ $<"
87 @$(QT_UIC) $(QT_UIC_FLAGS) $< -o $@ 102 @$(QT_UIC) $(QT_UIC_FLAGS) $< -o $@
88 103
89 104
90 $(OBJPATH) $(BINPATH):
91 @echo " MKDIR $@"
92 @$(MKDIR_P) $@
93
94 $(OBJPATH)%.o: src/%.cpp src/%.h 105 $(OBJPATH)%.o: src/%.cpp src/%.h
95 @echo " CXX $@" 106 $(COMPILE_CXX_OBJ) $(DEFINES) $(INCPATH)
96 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $<
97 107
98 $(OBJPATH)%.o: src/%.cpp 108 $(OBJPATH)%.o: src/%.cpp
99 @echo " CXX $@" 109 $(COMPILE_CXX_OBJ) $(DEFINES) $(INCPATH)
100 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $<
101 110
102 111
103 112
104 ### 113 ###
105 ### Windows specific rules 114 ### Windows specific rules
134 src/%.cpp: src/%.qrc $(APP_RESOURCES) 143 src/%.cpp: src/%.qrc $(APP_RESOURCES)
135 @echo " Qt:RCC $@ $<" 144 @echo " Qt:RCC $@ $<"
136 @$(QT_RCC) -name "Syntilista" $< -o $@ 145 @$(QT_RCC) -name "Syntilista" $< -o $@
137 146
138 $(OBJPATH)main.o: src/main.cpp $(APP_HDRS) VERSION 147 $(OBJPATH)main.o: src/main.cpp $(APP_HDRS) VERSION
139 @echo " CXX $@" 148 $(COMPILE_CXX_OBJ) $(DEFINES) $(INCPATH)
140 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $<
141 149
142 150
143 $(APP_BIN): $(addprefix $(OBJPATH),$(APP_OBJS)) $(APP_DEP_LIBS) | $(APP_DEPS) 151 $(APP_BIN): $(addprefix $(OBJPATH),$(APP_OBJS)) $(APP_DEP_LIBS) | $(APP_DEPS)
144 @echo " LINK $@" 152 $(LINK_BIN) $(APP_LIBS)
145 @$(CXX) $(LDFLAGS) -o $@ $+ $(APP_LIBS)
146 153
147 154
148 ### 155 ###
149 ### Special targets 156 ### Special targets
150 ### 157 ###