Mercurial > hg > forks > gldragon
comparison Makefile.gen @ 77:cc1c35357e39
Build system cleanups.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 14 Jan 2020 03:03:01 +0200 |
parents | 03aa729a9e90 |
children | 159cc5f14092 |
comparison
equal
deleted
inserted
replaced
76:9ee0edff3940 | 77:cc1c35357e39 |
---|---|
1 ### | |
2 ### Compiler flags | |
3 ### | |
1 CXXFLAGS += -O3 -W -Wall -std=c++11 | 4 CXXFLAGS += -O3 -W -Wall -std=c++11 |
2 LDFLAGS += | 5 LDFLAGS += |
3 CXXFLAGS += $(SDL_CFLAGS) $(GL_CFLAGS) | 6 CXXFLAGS += $(SDL_CFLAGS) $(GL_CFLAGS) |
4 | 7 |
8 | |
9 ### | |
10 ### Tools, paths and directories | |
11 ### | |
5 MKDIR ?= mkdir | 12 MKDIR ?= mkdir |
6 MKDIR_P ?= $(MKDIR) -p | 13 MKDIR_P ?= $(MKDIR) -p |
7 BINPATH ?= ./ | 14 BINPATH ?= ./ |
8 | 15 |
9 ifneq ($(V),1) | |
10 COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CC $<" && $(CC) $(CFLAGS) -c -o $@ $< | |
11 COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CXX $<" && $(CXX) $(CXXFLAGS) -c -o $@ $< | |
12 LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CC) -o $@ $(filter %.o %.a,$+) | |
13 LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CXX) -o $@ $(filter %.o %.a,$+) | |
14 LINK_STATIC_LIB = @echo " AR $@" && $(AR) cru $@ $(filter %.o,$+) && $(RANLIB) $@ | |
15 else | |
16 COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CC) $(CFLAGS) -c -o $@ $<" && $(CC) $(CFLAGS) -c -o $@ $< | |
17 COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CXX) $(CXXFLAGS) -c -o $@ $<" && $(CXX) $(CXXFLAGS) -c -o $@ $< | |
18 LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CC) -o $@ $(filter %.o %.a,$+)" && $(CC) -o $@ $(filter %.o %.a,$+) | |
19 LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CXX) -o $@ $(filter %.o %.a,$+)" && $(CXX) -o $@ $(filter %.o %.a,$+) | |
20 LINK_STATIC_LIB = @echo "$(AR) cru $@ $(filter %.o,$+)" && $(AR) cru $@ $(filter %.o,$+) && echo "$(RANLIB) $@" && $(RANLIB) $@ | |
21 endif | |
22 | 16 |
17 ### | |
18 ### Main targets and objects | |
19 ### | |
23 BINARIES = gldragon ply2bin | 20 BINARIES = gldragon ply2bin |
24 | 21 |
25 TARGETS += \ | 22 TARGETS += \ |
26 $(addprefix $(BINPATH),$(addsuffix $(BINEXT),$(BINARIES))) | 23 $(addprefix $(BINPATH),$(addsuffix $(BINEXT),$(BINARIES))) |
27 | 24 |
30 CLEAN_TARGETS += | 27 CLEAN_TARGETS += |
31 DISTCLEAN_TARGETS += | 28 DISTCLEAN_TARGETS += |
32 | 29 |
33 | 30 |
34 ### | 31 ### |
35 ### Target rules | 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 | |
39 DO_MKDIR=if test ! -d "$(1)"; then mkdir -p "$(1)"; fi | |
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 | |
36 ### | 66 ### |
37 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) | 67 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) |
38 | 68 |
39 | 69 |
40 $(OBJPATH)%.o: %.cpp %.h | 70 $(OBJPATH)%.o: %.cpp %.h |