-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
66 lines (50 loc) · 1.78 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
SRCDIR = ./src
OBJDIR = ./obj
TESTDIR = ./tests
TESTOBJDIR = ./testobj
BOOSTDIR = /usr/include/boost_1_56_0
CFLAGS = -Wall -std=c++11 -I$(SRCDIR) -I$(BOOSTDIR)
CDEBUGFLAGS = $(CFLAGS) -g -O0
GTESTDIR = /usr/gtest-1.7.0
TESTDEBUGFLAGS = $(TESTFLAGS)
CC = clang++
LFLAGS = -lglut -lGLU -lGL -L$(BOOSTDIR)/stage/lib/ -lboost_timer -lboost_chrono -lboost_system
TESTFLAGS = -I$(GTESTDIR) -I$(GTESTDIR)/include
$(OBJDIR)/%.o : $(SRCDIR)/%.cpp
$(CC) $(CFLAGS) -o $@ -c $<
$(OBJDIR)/%.dbg.o : $(SRCDIR)/%.cpp
$(CC) $(CDEBUGFLAGS) -o $@ -c $<
$(OBJDIR)/%.o : $(TESTDIR)/%.cpp
$(CC) $(CFLAGS) $(TESTFLAGS) -o $@ -c $<
$(OBJDIR)/%.dbg.o : $(TESTDIR)/%.cpp
$(CC) $(CDEBUGFLAGS) $(TESTDEBUGFLAGS) -o $@ -c $<
OBJ = \
$(OBJDIR)/Chip8.o \
$(OBJDIR)/Render.o \
$(OBJDIR)/KeyPad.o
DEBUG_OBJ = \
$(OBJDIR)/Chip8.dbg.o \
$(OBJDIR)/Render.dbg.o \
$(OBJDIR)/KeyPad.dbg.o
GTEST_OBJ = \
$(OBJDIR)/gtest-all.o \
$(OBJDIR)/gtest_main.o \
TEST_OBJ = \
$(OBJDIR)/Chip8_unittest.o \
$(OBJDIR)/Render_unittest.o \
$(OBJDIR)/KeyPad_unittest.o
TEST_DEBUG_OBJ = \
$(OBJDIR)/Chip8_unittest.dbg.o \
$(OBJDIR)/Render_unittest.dbg.o \
$(OBJDIR)/KeyPad_unittest.dbg.o
all: chip8 debug test test_debug
chip8: $(OBJDIR)/chip8_main.o $(OBJ)
$(CC) $(OBJ) $(OBJDIR)/chip8_main.o $(LFLAGS) -o $@
debug: $(OBJDIR)/chip8_main.dbg.o $(DEBUG_OBJ)
$(CC) $(DEBUG_OBJ) $(OBJDIR)/chip8_main.dbg.o $(LFLAGS) -o $@
test: $(OBJ) $(GTEST_OBJ) $(TEST_OBJ)
$(CC) $(OBJ) $(GTEST_OBJ) $(TEST_OBJ) $(LFLAGS) -o $@ -lpthread $(GTESTDIR)/lib/.libs/libgtest.a
test_debug: $(DEBUG_OBJ) $(GTEST_OBJ) $(TEST_DEBUG_OBJ)
$(CC) $(DEBUG_OBJ) $(GTEST_OBJ) $(TEST_DEBUG_OBJ) $(LFLAGS) -o $@ -lpthread $(GTESTDIR)/lib/.libs/libgtest.a
clean:
\rm -f $(OBJDIR)/Chip8_main.dbg.o $(OBJDIR)/Chip8_main.o $(OBJ) $(DEBUG_OBJ) $(TEST_OBJ) $(TEST_DEBUG_OBJ)