-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
48 lines (32 loc) · 1.06 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# BUILD SETTINGS ###########################################
TARGET := bin/MehSpaceWarz
############################################################
STRIP := strip
OBJS := $(shell find src/ -name *.cpp | sed "s/^src\///")
OBJS := $(foreach obj, $(OBJS:.cpp=.o), obj/$(obj))
# FLAGS ####################################################
ifneq ($(MAKECMDGOALS), release)
EXTRA_CXXFLAGS += -g3 -O0 -Werror
else
EXTRA_CXXFLAGS += -g0 -O2 -DNDEBUG
endif
EXTRA_CXXFLAGS += -pedantic -Wall -Wextra `pkg-config --cflags libglfw`
ALL_CXXFLAGS += -MMD -I./src -DTARGET_$(PLATFORM) $(EXTRA_CXXFLAGS) $(CXXFLAGS)
ALL_LDFLAGS += $(LDFLAGS)
LDLIBS += -lm -lpng -lGLU `pkg-config --libs libglfw`
# RULES ####################################################
.PHONY : all release clean
all : $(TARGET)
release : all
$(STRIP) $(TARGET)
clean :
rm -rf obj/*
rm -f $(TARGET)
ifneq ($(MAKECMDGOALS), clean)
-include $(OBJS:.o=.d)
endif
$(TARGET) : $(OBJS)
$(CXX) -o $@ $(ALL_LDFLAGS) $^ $(LDLIBS)
obj/%.o : src/%.cpp
@mkdir -p "$(dir $@)"
$(CXX) -c -o $@ $(ALL_CXXFLAGS) $<