Mercurial > hg > forks > gldragon
annotate Makefile.gen @ 86:cc7fcaf139ef
Add ASAN build flag.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 21 May 2020 09:20:24 +0300 |
parents | 8a56cb177711 |
children | 22774e3f2a89 |
rev | line source |
---|---|
77 | 1 ### |
2 ### Compiler flags | |
3 ### | |
86 | 4 ifneq ($(ASAN),) |
5 CXXFLAGS += -fsanitize=address | |
6 LDFLAGS += -lasan | |
7 else | |
8 CXXFLAGS += -O3 | |
42
3c7e1d3fa5a2
Implement OpengL extension handling through new header file dmglexts.h to
Matti Hamalainen <ccr@tnsp.org>
parents:
41
diff
changeset
|
9 LDFLAGS += |
86 | 10 endif |
11 | |
12 CXXFLAGS += -g -W -Wall -std=c++11 | |
40 | 13 CXXFLAGS += $(SDL_CFLAGS) $(GL_CFLAGS) |
14 | |
77 | 15 |
16 ### | |
17 ### Tools, paths and directories | |
18 ### | |
40 | 19 MKDIR ?= mkdir |
20 MKDIR_P ?= $(MKDIR) -p | |
21 BINPATH ?= ./ | |
34 | 22 |
23 | |
77 | 24 ### |
25 ### Main targets and objects | |
26 ### | |
41 | 27 BINARIES = gldragon ply2bin |
28 | |
29 TARGETS += \ | |
30 $(addprefix $(BINPATH),$(addsuffix $(BINEXT),$(BINARIES))) | |
31 | |
32 NOBUILD_TARGETS += | |
33 NOINST_TARGETS += | |
34 CLEAN_TARGETS += | |
35 DISTCLEAN_TARGETS += | |
36 | |
34 | 37 |
40 | 38 ### |
77 | 39 ### Functions and compilation/link commands |
40 ### | |
41 ifneq ($(V),1) | |
42 DO_CMD=/bin/echo -E " $(1) $(2)" && $(3) | |
43 else | |
44 DO_CMD=/bin/echo -E $(3) && $(3) | |
45 endif | |
78
159cc5f14092
Check for empty target directory in DO_MKDIR Makefile macro.
Matti Hamalainen <ccr@tnsp.org>
parents:
77
diff
changeset
|
46 DO_MKDIR=if test ! -z "$(1)" -a ! -d "$(1)"; then /bin/echo -E " MKDIR $(1)"; mkdir -p "$(1)"; fi |
77 | 47 |
48 | |
49 COMPILE_C_OBJ = \ | |
50 @$(call DO_MKDIR,$(OBJPATH)) ; \ | |
51 $(call DO_CMD,CC,$<,$(CC) $(CFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) | |
52 | |
53 LINK_C_BIN = \ | |
54 @$(call DO_MKDIR,$(BINPATH)) ; \ | |
55 $(call DO_CMD,LINK,$@,$(CC) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) | |
56 | |
57 COMPILE_CXX_OBJ = \ | |
58 @$(call DO_MKDIR,$(OBJPATH)) ; \ | |
59 $(call DO_CMD,CXX,$<,$(CXX) $(CXXFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) | |
60 | |
61 LINK_CXX_BIN = \ | |
62 @$(call DO_MKDIR,$(BINPATH)) ; \ | |
63 $(call DO_CMD,LINK,$@,$(CXX) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) | |
64 | |
65 LINK_STATIC_LIB = \ | |
66 @$(call DO_MKDIR,$(OBJPATH)) ; \ | |
67 $(call DO_CMD,AR,$@ $(filter %.o,$+),$(AR) cru $@ $(filter %.o,$+)) ; \ | |
68 $(call DO_CMD,RANLIB,$@,$(RANLIB) $@) | |
69 | |
70 | |
71 ### | |
72 ### Generic target rules | |
40 | 73 ### |
74 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) | |
75 | |
76 | |
79
8a56cb177711
Add dmglexts.h as depency to dmglrender.o
Matti Hamalainen <ccr@tnsp.org>
parents:
78
diff
changeset
|
77 $(OBJPATH)dmglrender.o: dmglrender.cpp dmglrender.h dmglexts.h |
8a56cb177711
Add dmglexts.h as depency to dmglrender.o
Matti Hamalainen <ccr@tnsp.org>
parents:
78
diff
changeset
|
78 $(COMPILE_CXX_OBJ) |
8a56cb177711
Add dmglexts.h as depency to dmglrender.o
Matti Hamalainen <ccr@tnsp.org>
parents:
78
diff
changeset
|
79 |
40 | 80 $(OBJPATH)%.o: %.cpp %.h |
81 $(COMPILE_CXX_OBJ) | |
82 | |
83 $(OBJPATH)%.o: %.cpp | |
84 $(COMPILE_CXX_OBJ) | |
85 | |
34 | 86 |
70
03aa729a9e90
Refactor PLY file parsing from dmscene.* to dmply.* and some helper functions into dmutil.h
Matti Hamalainen <ccr@tnsp.org>
parents:
62
diff
changeset
|
87 $(BINPATH)gldragon$(BINEXT): $(addprefix $(OBJPATH), gldragon.o dmglrender.o dmscene.o dmply.o dmutil.o) |
40 | 88 $(LINK_CXX_BIN) $(LDFLAGS) $(SDL_LDFLAGS) $(GL_LDFLAGS) |
89 | |
70
03aa729a9e90
Refactor PLY file parsing from dmscene.* to dmply.* and some helper functions into dmutil.h
Matti Hamalainen <ccr@tnsp.org>
parents:
62
diff
changeset
|
90 $(BINPATH)ply2bin$(BINEXT): $(addprefix $(OBJPATH), ply2bin.o dmscene.o dmply.o dmutil.o) |
40 | 91 $(LINK_CXX_BIN) $(LDFLAGS) $(TOOL_LDFLAGS) |
92 | |
34 | 93 |
40 | 94 ### |
95 ### Special targets | |
96 ### | |
34 | 97 clean: |
40 | 98 -$(RM) $(TARGETS) $(NOINST_TARGETS) $(CLEAN_TARGETS) $(OBJPATH)*.o |
99 | |
100 distclean: clean | |
101 -$(RM) $(DISTCLEAN_TARGETS) *~ core *.core | |
102 | |
103 .PHONY: clean distclean all |