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