changeset 2356:d3d7fce567d9

Some work on build system improvements/cleanups.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 05 Dec 2019 16:48:46 +0200
parents b436ecd76fa0
children 21d8eb203e2a
files Makefile.gen
diffstat 1 files changed, 59 insertions(+), 50 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.gen	Thu Dec 05 16:06:20 2019 +0200
+++ b/Makefile.gen	Thu Dec 05 16:48:46 2019 +0200
@@ -24,7 +24,7 @@
 DM_CFLAGS += -I$(DMLIB_SRC)
 
 ifeq ($(EXTRA_CFLAGS),)
-EXTRA_CFLAGS=-O3
+EXTRA_CFLAGS=-O3 -flto
 # -march=corei7
 endif
 
@@ -291,12 +291,16 @@
 
 
 ifneq ($(V),1)
-COMPILE_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CC $<" && $(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
-LINK_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CC) -o $@ $(filter %.o %.a,$+)
+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) $@
 else
-COMPILE_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)" && $(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
-LINK_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CC) -o $@ $(filter %.o %.a,$+)" && $(CC) -o $@ $(filter %.o %.a,$+)
+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) $@
 endif
 
@@ -313,44 +317,45 @@
 TARGETS += $(DMLIB_A) $(addprefix $(BINPATH),$(addsuffix $(EXEEXT),$(BINARIES))) \
 	$(TOOL_TARGETS) $(TESTS_TARGETS)
 
-#NONBUILD +=
+NOBUILD_TARGETS +=
+NOINST_TARGETS += 
 
 
-all: $(NONBUILD) $(TARGETS)
+all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS)
 
 
 ###
 ### Generic object rules
 ###
 $(OBJPATH)%.o: $(DMLIB)tests/%.c $(DMLIB)tests/%.h
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)%.o: $(DMLIB)tests/%.c
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)%.o: $(DMLIB)tools/%.c $(DMLIB)tools/%.h
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)%.o: $(DMLIB)tools/%.c
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)%.o: %.c %.h
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)%.o: %.c
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)%.o: $(MINIJSS)%.c $(MINIJSS)%.h
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)%.o: $(MINIJSS)%.c
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)%.o: $(DMLIB_SRC)%.c $(DMLIB_SRC)%.h
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)%.o: $(DMLIB_SRC)%.c
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 
 ###
@@ -360,49 +365,49 @@
 	(echo "#include \"jssmix.h\"" && cpp $< $(DM_CFLAGS)) | sed "s/^# .*//g" > $@
 
 $(OBJPATH)dmimage.o: $(DMLIB_SRC)dmimage.c $(DMLIB_SRC)stb_image.c $(DMLIB_SRC)dmimage.h
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)dmresw.o: $(DMLIB_SRC)dmresw.c $(DMLIB_SRC)dmres.h
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 
 $(OBJPATH)jssmod.o: $(MINIJSS)jssmod.c $(MINIJSS)jssmod.h $(OBJPATH)jss.o
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)jssmix.o: $(MINIJSS)jssmix.c $(MINIJSS)jssmix.h $(OBJPATH)jssmod.o
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)jssplr.o: $(MINIJSS)jssplr.c $(MINIJSS)jssplr.h $(OBJPATH)jssmix.o
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 
 $(OBJPATH)dmblit.o: $(DMLIB_SRC)dmblit.c $(DMLIB_SRC)dmscaledblit.h $(DMLIB_SRC)dmunscaledblit.h $(DMLIB_SRC)dmblitfunc.h $(DMLIB_SRC)dmlib.h
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)dmline.o: $(DMLIB_SRC)dmline.c $(DMLIB_SRC)dmdrawline.h $(DMLIB_SRC)dmlinefunc.h $(DMLIB_SRC)dmlineclip.h $(DMLIB_SRC)dmlib.h
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)libgfx.o: $(DMLIB)tools/libgfx.c $(DMLIB)tools/libgfx.h $(DMLIB_A)
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)lib64gfx.o: $(DMLIB)tools/lib64gfx.c $(DMLIB)tools/lib64gfx.h $(OBJPATH)libgfx.o
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)lib64util.o: $(DMLIB)tools/lib64util.c $(DMLIB)tools/lib64util.h $(OBJPATH)lib64gfx.o
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)lib64fmts.o: $(DMLIB)tools/lib64fmts.c $(OBJPATH)lib64gfx.o
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)64vw.o: $(DMLIB)tools/64vw.c $(OBJPATH)lib64util.o
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)gfxconv.o: $(DMLIB)tools/gfxconv.c $(OBJPATH)lib64util.o
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 $(OBJPATH)ppl.o: $(TOOL_SRC)ppl.c $(DMLIB_SRC)setupfont.h \
 	$(OBJPATH)libgutil.o $(DMLIB_A)
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 
 $(DMLIB)assets/SetupFont.dmf: $(DMLIB)assets/SetupFont.fnt $(FONTCONV_DEP)
@@ -424,7 +429,7 @@
 
 $(OBJPATH)dmsimple.o: $(addprefix $(DMLIB_SRC), dmsimple.c dmengine.h \
 		setupmenubar.h setupfont.h setupimage.h dmsimple.c)
-	$(COMPILE_OBJ)
+	$(COMPILE_C_OBJ)
 
 
 $(DMLIB_A): $(addprefix $(OBJPATH),$(DMLIB_OBJS)) $(DMLIB)Makefile.gen config.mak
@@ -435,59 +440,59 @@
 ### Tests
 ###
 $(TESTS_BINPATH)blittest$(EXEEXT): $(OBJPATH)blittest.o $(DMLIB_A)
-	$(LINK_BIN) $(SDL_LDFLAGS) $(SDL_TTF_LDFLAGS) -lm
+	$(LINK_C_BIN) $(SDL_LDFLAGS) $(SDL_TTF_LDFLAGS) -lm
 
 $(TESTS_BINPATH)dzlibtest$(EXEEXT): $(OBJPATH)dzlibtest.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(ZLIB_LDFLAGS)
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(ZLIB_LDFLAGS)
 
 $(TESTS_BINPATH)plrtest$(EXEEXT): $(OBJPATH)plrtest.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(ZLIB_LDFLAGS) -lm
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(ZLIB_LDFLAGS) -lm
 
 $(TESTS_BINPATH)%test$(EXEEXT): $(OBJPATH)%test.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) -lm
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) -lm
 
 
 ###
 ### Tools
 ###
 $(TOOL_BINPATH)fontconv$(EXEEXT): $(OBJPATH)fontconv.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(SDL_LDFLAGS) $(SDL_TTF_LDFLAGS) $(ZLIB_LDFLAGS) -lm
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(SDL_LDFLAGS) $(SDL_TTF_LDFLAGS) $(ZLIB_LDFLAGS) -lm
 
 $(TOOL_BINPATH)data2inc$(EXEEXT): $(OBJPATH)data2inc.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS)
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS)
 
 $(TOOL_BINPATH)packed$(EXEEXT): $(OBJPATH)packed.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS)
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS)
 
 $(TOOL_BINPATH)mod2wav$(EXEEXT): $(OBJPATH)mod2wav.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS) -lm
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS) -lm
 
 $(TOOL_BINPATH)xm2jss$(EXEEXT): $(OBJPATH)xm2jss.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS)
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS)
 
 $(TOOL_BINPATH)dumpmod$(EXEEXT): $(OBJPATH)dumpmod.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS)
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS)
 
 
 $(TOOL_BINPATH)ppl$(EXEEXT): $(OBJPATH)ppl.o $(OBJPATH)libgutil.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(ZLIB_LDFLAGS) $(SDL_LDFLAGS) -lm
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(ZLIB_LDFLAGS) $(SDL_LDFLAGS) -lm
 
 $(TOOL_BINPATH)objlink$(EXEEXT): $(OBJPATH)objlink.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS)
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS)
 
 $(TOOL_BINPATH)fanalyze$(EXEEXT): $(OBJPATH)fanalyze.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS)
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS)
 
 $(TOOL_BINPATH)gfxconv$(EXEEXT): $(OBJPATH)gfxconv.o $(OBJPATH)lib64gfx.o \
 	$(OBJPATH)lib64fmts.o $(OBJPATH)lib64util.o $(OBJPATH)libgfx.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(LIBPNG_LDFLAGS) $(ZLIB_LDFLAGS)
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(LIBPNG_LDFLAGS) $(ZLIB_LDFLAGS)
 
 $(TOOL_BINPATH)64vw$(EXEEXT): $(OBJPATH)64vw.o $(OBJPATH)lib64gfx.o \
 	$(OBJPATH)lib64fmts.o $(OBJPATH)lib64util.o $(OBJPATH)libgfx.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(LIBPNG_LDFLAGS) $(ZLIB_LDFLAGS) $(SDL_LDFLAGS)
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(LIBPNG_LDFLAGS) $(ZLIB_LDFLAGS) $(SDL_LDFLAGS)
 
 $(TOOL_BINPATH)gentab$(EXEEXT): $(OBJPATH)gentab.o $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) -lm
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(TOOL_LDFLAGS) -lm
 
 
 ###
@@ -495,7 +500,7 @@
 ###
 ifneq ($(DEMO_BIN),)
 $(BINPATH)$(DEMO_BIN)$(EXEEXT): $(addprefix $(OBJPATH),$(DEMO_OBJS)) $(DMLIB_A)
-	$(LINK_BIN) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(DEMO_LDFLAGS) -lm
+	$(LINK_C_BIN) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(DEMO_LDFLAGS) -lm
 endif
 
 
@@ -530,5 +535,9 @@
 ### Special targets
 ###
 clean:
-	-$(RM) $(TARGETS) $(TMPFILES) $(OBJPATH)*.o
+	-$(RM) $(TARGETS) $(NOINST_TARGETS) $(CLEAN_TARGETS) $(OBJPATH)*.o
 
+distclean: clean
+	-$(RM) $(DISTCLEAN_TARGETS) *~ core *.core
+
+.PHONY: clean distclean all