]> git.xonotic.org Git - xonotic/gmqcc.git/blob - Makefile
9dd66ec8c07d5fd97abd1e397071177eda1f8e33
[xonotic/gmqcc.git] / Makefile
1 CXX ?= clang++
2 CXXFLAGS = \
3         -std=c++11 \
4         -Wall \
5         -Wextra \
6         -fno-exceptions \
7         -fno-rtti \
8         -MD
9
10 CSRCS = \
11         ast.cpp \
12         code.cpp \
13         conout.cpp \
14         fold.cpp \
15         ftepp.cpp \
16         intrin.cpp \
17         ir.cpp \
18         lexer.cpp \
19         main.cpp \
20         opts.cpp \
21         parser.cpp \
22         stat.cpp \
23         utf8.cpp \
24         util.cpp
25
26 TSRCS = \
27         conout.cpp \
28         opts.cpp \
29         stat.cpp \
30         test.cpp \
31         util.cpp
32
33 VSRCS = \
34         exec.cpp \
35         stat.cpp \
36         util.cpp
37
38 COBJS = $(CSRCS:.cpp=.o)
39 TOBJS = $(TSRCS:.cpp=.o)
40 VOBJS = $(VSRCS:.cpp=.o)
41
42 CDEPS = $(CSRCS:.cpp=.d)
43 TDEPS = $(TSRCS:.cpp=.d)
44 VDEPS = $(VSRCS:.cpp=.d)
45
46 CBIN = gmqcc
47 TBIN = testsuite
48 VBIN = qcvm
49
50 all: $(CBIN) $(TBIN) $(VBIN)
51
52 $(CBIN): $(COBJS)
53         $(CXX) $(COBJS) -o $@
54
55 $(TBIN): $(TOBJS)
56         $(CXX) $(TOBJS) -o $@
57
58 $(VBIN): $(VOBJS)
59         $(CXX) $(VOBJS) -o $@
60
61 .cpp.o:
62         $(CXX) -c $(CXXFLAGS) $< -o $@
63
64 test: $(CBIN) $(TBIN) $(VBIN)
65         @./$(TBIN)
66
67 clean:
68         rm -f *.d
69         rm -f $(COBJS) $(CDEPS) $(CBIN)
70         rm -f $(TOBJS) $(TDEPS) $(TBIN)
71         rm -f $(VOBJS) $(VDEPS) $(VBIN)
72
73 -include *.d