comparison Makefile.gen @ 40:6905d02bca2d

Build system improvements.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 05 Dec 2019 16:59:20 +0200
parents d0cd281934a3
children eaa3e8575c12
comparison
equal deleted inserted replaced
39:4de11a54215a 40:6905d02bca2d
1 CFLAGS ?= -O3 -W -Wall -DGL_GLEXT_PROTOTYPES -std=c++11 1 CXXFLAGS ?= -O3 -W -Wall -DGL_GLEXT_PROTOTYPES -std=c++11
2 LDFLAGS ?= 2 LDFLAGS ?=
3 CFLAGS += $(SDL_CFLAGS) $(GL_CFLAGS) 3 CXXFLAGS += $(SDL_CFLAGS) $(GL_CFLAGS)
4
5 MKDIR ?= mkdir
6 MKDIR_P ?= $(MKDIR) -p
7 BINPATH ?= ./
4 8
5 TARGETS = gldragon$(BINEXT) ply2bin$(BINEXT) 9 TARGETS = gldragon$(BINEXT) ply2bin$(BINEXT)
6 10 NOBUILD_TARGETS +=
7 all: $(TARGETS) 11 NOINST_TARGETS +=
8 12 CLEAN_TARGETS +=
9 %.o: %.cpp %.h 13 DISTCLEAN_TARGETS +=
10 $(CXX) $(CFLAGS) -c -o $@ $<
11
12 %.o: %.cpp
13 $(CXX) $(CFLAGS) -c -o $@ $<
14 14
15 15
16 gldragon$(BINEXT): gldragon.o dmmodel.o dmutil.o 16 ifneq ($(V),1)
17 $(CXX) -o $@ $+ $(LDFLAGS) $(SDL_LDFLAGS) $(GL_LDFLAGS) 17 COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CC $<" && $(CC) $(CFLAGS) -c -o $@ $<
18 COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CXX $<" && $(CXX) $(CXXFLAGS) -c -o $@ $<
19 LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CC) -o $@ $(filter %.o %.a,$+)
20 LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CXX) -o $@ $(filter %.o %.a,$+)
21 LINK_STATIC_LIB = @echo " AR $@" && $(AR) cru $@ $(filter %.o,$+) && $(RANLIB) $@
22 else
23 COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CC) $(CFLAGS) -c -o $@ $<" && $(CC) $(CFLAGS) -c -o $@ $<
24 COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CXX) $(CXXFLAGS) -c -o $@ $<" && $(CXX) $(CXXFLAGS) -c -o $@ $<
25 LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CC) -o $@ $(filter %.o %.a,$+)" && $(CC) -o $@ $(filter %.o %.a,$+)
26 LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CXX) -o $@ $(filter %.o %.a,$+)" && $(CXX) -o $@ $(filter %.o %.a,$+)
27 LINK_STATIC_LIB = @echo "$(AR) cru $@ $(filter %.o,$+)" && $(AR) cru $@ $(filter %.o,$+) && echo "$(RANLIB) $@" && $(RANLIB) $@
28 endif
18 29
19 ply2bin$(BINEXT): ply2bin.o dmmodel.o dmutil.o
20 $(CXX) -o $@ $+ $(LDFLAGS) $(TOOL_LDFLAGS)
21 30
31 ###
32 ### Target rules
33 ###
34 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS)
35
36
37 $(OBJPATH)%.o: %.cpp %.h
38 $(COMPILE_CXX_OBJ)
39
40 $(OBJPATH)%.o: %.cpp
41 $(COMPILE_CXX_OBJ)
42
43
44 gldragon$(BINEXT): $(OBJPATH)gldragon.o $(OBJPATH)dmmodel.o $(OBJPATH)dmutil.o
45 $(LINK_CXX_BIN) $(LDFLAGS) $(SDL_LDFLAGS) $(GL_LDFLAGS)
46
47 ply2bin$(BINEXT): $(OBJPATH)ply2bin.o $(OBJPATH)dmmodel.o $(OBJPATH)dmutil.o
48 $(LINK_CXX_BIN) $(LDFLAGS) $(TOOL_LDFLAGS)
49
50
51 ###
52 ### Special targets
53 ###
22 clean: 54 clean:
23 $(RM) $(TARGETS) *.o 55 -$(RM) $(TARGETS) $(NOINST_TARGETS) $(CLEAN_TARGETS) $(OBJPATH)*.o
56
57 distclean: clean
58 -$(RM) $(DISTCLEAN_TARGETS) *~ core *.core
59
60 .PHONY: clean distclean all