Mercurial > hg > forks > gldragon
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 |