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