-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
72 lines (57 loc) · 1.46 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
67
68
69
70
71
72
#
# This is for your executable
#
CFLAGS = -O3 -std=c++11
CFLAGS = -g -Wall -std=c++11
#
# This is the setting for TA
#
# CFLAGS = -g -Wall -DTA_KB_SETTING -std=c++11
# CFLAGS = -O3 -DTA_KB_SETTING -std=c++11
# CFLAGS = -O3 -m32 -DTA_KB_SETTING -std=c++11
###############
# PHONY rules #
###############
.PHONY : hw2 test ref
hw2 : MAKEFLAGS = $(CFLAGS)
test: MAKEFLAGS = -DTEST_ASC $(CFLAGS)
ref : MAKEFLAGS = -DMAKE_REF $(CFLAGS)
hw2 : .cmdCharDef cmdReader
test: .cmdCharDef testAsc
ref : .cmdCharDef cmdReader-ref
##############
# Executable #
##############
cmdReader: main.o cmdReader.o cmdCharDef.o
g++ -o $@ $(MAKEFLAGS) main.o cmdReader.o cmdCharDef.o
# strip $@
testAsc: testAsc.o cmdCharDef.o
g++ -o $@ $(MAKEFLAGS) testAsc.o cmdCharDef.o
strip $@
cmdReader-ref: main.o cmdReader.o.ref cmdCharDef.o
g++ -o $@ $(MAKEFLAGS) main.o cmdReader.o.ref cmdCharDef.o
strip $@
################
# Object files #
################
main.o: main.cpp cmdParser.h
g++ -c $(MAKEFLAGS) main.cpp
cmdReader.o: cmdReader.cpp cmdParser.h
g++ -c $(MAKEFLAGS) cmdReader.cpp
cmdCharDef.o: cmdCharDef.cpp cmdParser.h
g++ -c $(MAKEFLAGS) cmdCharDef.cpp
testAsc.o: testAsc.cpp cmdCharDef.h
g++ -c $(MAKEFLAGS) testAsc.cpp
cmdParser.h: cmdCharDef.h
touch cmdParser.h
#######################
# No dependency rules #
#######################
.cmdCharDef:
@rm -f cmdCharDef.o
linux mac:
@ln -sf cmdReader.o.$@ cmdReader.o.ref
clean:
rm -f *.o cmdReader testAsc
ctags:
ctags *.cpp *.h