-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
34 lines (25 loc) · 935 Bytes
/
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
CXX = g++
CXXFLAGS = -O2 -ggdb -DREMOVE_HH_ZCTAS
LDFLAGS = -lgmp -lgmpxx -ggdb
SHAREDSRC := $(wildcard algorithm/*.cpp math/*.cpp memory/*.cpp)
MAINSRC := Main.cpp io/Printer.cpp
TRANSLATESRC := Translate.cpp io/Parser.cpp
SOURCES := $(SHAREDSRC) $(MAINSRC) $(TRANSLATESRC)
SHAREDOBJ = $(SHAREDSRC:.cpp=.o)
MAINOBJ = $(MAINSRC:.cpp=.o)
TRANSLATEOBJ = $(TRANSLATESRC:.cpp=.o)
OBJECTS := $(SHAREDOBJ) $(MAINOBJ) $(TRANSLATEOBJ)
all: zcta.exe translate.exe
zcta.exe: $(SHAREDOBJ) $(MAINOBJ)
$(CXX) $(SHAREDOBJ) $(MAINOBJ) $(LDFLAGS) -o zcta.exe
translate.exe: $(SHAREDOBJ) $(TRANSLATEOBJ)
$(CXX) $(SHAREDOBJ) $(TRANSLATEOBJ) $(LDFLAGS) -lboost_regex -o translate.exe
%.d: %.cpp
@set -e; rm -f $@; \
$(CXX) -MM $(CXXFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
include $(SOURCES:.cpp=.d)
.PHONY: clean
clean:
rm -f $(OBJECTS) $(SOURCES:.cpp=.d) zcta.exe translate.exe