-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
135 lines (112 loc) · 4.08 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
SYNTH_LIB_PARSER_ROOT=.
PROJECT_NAME=synthlib2parser
include $(SYNTH_LIB_PARSER_ROOT)/Makefile.inc
SRC_DIR=$(SYNTH_LIB_PARSER_ROOT)/src
OBJ_DIR=$(SYNTH_LIB_PARSER_ROOT)/obj/$(BUILD_SUFFIX)
VPATH=$(SRC_DIR)
SYNTH_LIB_PARSER_SOURCES= \
SynthLib2ParserAST.cpp \
SynthLib2ParserExceptions.cpp \
PrintVisitor.cpp \
SYNTH_LIB_PARSER_OBJS=$(addprefix $(SYNTH_LIB_PARSER_ROOT)/obj/$(BUILD_SUFFIX)/, $(SYNTH_LIB_PARSER_SOURCES:.cpp=.o))
SYNTH_LIB_PARSER_DEPS=$(addprefix $(SYNTH_LIB_PARSER_ROOT)/obj/$(BUILD_SUFFIX)/, $(SYNTH_LIB_PARSER_SOURCES:.cpp=.d))
SYNTH_LIB_PARSER_PARSER_GEN=$(SRC_DIR)/SynthLib2Parser.tab.cpp
SYNTH_LIB_PARSER_LEXER_GEN=$(SRC_DIR)/SynthLib2Lexer.cpp
SYNTH_LIB_PARSER_PARSER_OBJ=$(OBJ_DIR)/SynthLib2Parser.tab.o
SYNTH_LIB_PARSER_LEXER_OBJ=$(OBJ_DIR)/SynthLib2Lexer.o
SYNTH_LIB_PARSER_OBJS+=$(SYNTH_LIB_PARSER_PARSER_OBJ)
SYNTH_LIB_PARSER_OBJS+=$(SYNTH_LIB_PARSER_LEXER_OBJ)
SYNTH_LIB_PARSER_STATIC=$(SYNTH_LIB_PARSER_ROOT)/lib/$(BUILD_SUFFIX)/libsynthlib2parser.a
SYNTH_LIB_PARSER_DYNAMIC=$(SYNTH_LIB_PARSER_ROOT)/lib/$(BUILD_SUFFIX)/libsynthlib2parser.so
SYNTH_LIB_PARSER_TESTER=$(SYNTH_LIB_PARSER_ROOT)/bin/$(BUILD_SUFFIX)/SynthLib2Tester
default: debug
debug: all
opt: all
optlto: all
eopt: all
eoptlto: all
eprof: all
eproflto: all
all: $(SYNTH_LIB_PARSER_STATIC) $(SYNTH_LIB_PARSER_DYNAMIC)
$(SYNTH_LIB_PARSER_DYNAMIC): $(SYNTH_LIB_PARSER_PARSER_OBJ) $(SYNTH_LIB_PARSER_LEXER_OBJ) \
$(SYNTH_LIB_PARSER_DEPS) $(SYNTH_LIB_PARSER_OBJS)
ifeq "x$(VERBOSE_BUILD)" "x"
@echo "$(LDPRINTNAME) `basename $@`"; \
$(LD) $(OPTFLAGS) -shared -o $@ $(SYNTH_LIB_PARSER_OBJS)
else
$(LD) $(OPTFLAGS) -shared -o $@ $(SYNTH_LIB_PARSER_OBJS)
endif
$(SYNTH_LIB_PARSER_STATIC): $(SYNTH_LIB_PARSER_PARSER_OBJ) $(SYNTH_LIB_PARSER_LEXER_OBJ) \
$(SYNTH_LIB_PARSER_DEPS) $(SYNTH_LIB_PARSER_OBJS)
ifeq "x$(VERBOSE_BUILD)" "x"
@echo "$(ARPRINTNAME) `basename $@`"; \
$(AR) $(ARFLAGS) $@ $(SYNTH_LIB_PARSER_OBJS)
else
$(AR) $(ARFLAGS) $@ $(SYNTH_LIB_PARSER_OBJS)
endif
$(SYNTH_LIB_PARSER_PARSER_GEN): SynthLib2Parser.y
ifeq "x$(VERBOSE_BUILD)" "x"
@echo "$(BISONPRINTNAME) `basename $<` --> `basename $@`"; \
$(BISON) --defines=$(SRC_DIR)/SynthLib2Parser.tab.h -o $@ $<
else
$(BISON) --defines=$(SRC_DIR)/SynthLib2Parser.tab.h -o $@ $<
endif
$(SYNTH_LIB_PARSER_LEXER_GEN): SynthLib2Lexer.l
ifeq "x$(VERBOSE_BUILD)" "x"
@echo "$(FLEXPRINTNAME) `basename $<` --> `basename $@`"; \
$(FLEX) -o $@ $<
else
$(FLEX) -o $@ $<
endif
$(SYNTH_LIB_PARSER_PARSER_OBJ): $(SYNTH_LIB_PARSER_PARSER_GEN)
ifeq "x$(VERBOSE_BUILD)" "x"
@echo "$(CXXPRINTNAME) `basename $<` --> `basename $@`"; \
$(CXX) $(CXXFLAGS) $(OPTFLAGS) -c $< -o $@
else
$(CXX) $(CXXFLAGS) $(OPTFLAGS) -c $< -o $@
endif
$(SYNTH_LIB_PARSER_LEXER_OBJ): $(SYNTH_LIB_PARSER_LEXER_GEN) $(SYNTH_LIB_PARSER_PARSER_GEN)
ifeq "x$(VERBOSE_BUILD)" "x"
@echo "$(CXXPRINTNAME) `basename $(SYNTH_LIB_PARSER_LEXER_GEN)` --> `basename $@`"; \
$(CXX) $(CXXFLAGS) $(OPTFLAGS) -c $< -o $@
else
$(CXX) $(CXXFLAGS) $(OPTFLAGS) -c $< -o $@
endif
$(OBJ_DIR)/%.d: %.cpp
ifeq "x$(VERBOSE_BUILD)" "x"
@set -e; rm -f $@; \
echo "$(DEPPRINTNAME) `basename $<`"; \
$(CXX) -MM $(CXXFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,$(OBJ_DIR)/\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
else
@set -e; rm -f $@; \
echo "Calculating dependencies for `basename $<`..."; \
$(CXX) -MM $(CXXFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,$(OBJ_DIR)/\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
endif
$(OBJ_DIR)/%.o: %.cpp
ifeq "x$(VERBOSE_BUILD)" "x"
@echo "$(CXXPRINTNAME) `basename $<` --> `basename $@`"; \
$(CXX) $(CXXFLAGS) $(OPTFLAGS) -c $< -o $@
else
$(CXX) $(CXXFLAGS) $(OPTFLAGS) -c $< -o $@
endif
clean:
rm -rf obj/debug/*
rm -rf obj/opt/*
rm -rf obj/prof/*
rm -rf lib/debug/*
rm -rf lib/opt/*
rm -rf lib/prof/*
rm -rf bin/debug/*
rm -rf bin/opt/*
rm -rf bin/prof/*
rm -rf $(SYNTH_LIB_PARSER_LEXER_GEN) $(SYNTH_LIB_PARSER_PARSER_GEN) src/SynthLib2Parser.tab.h src/SynthLib2Parser.output
distclean: clean
ifneq ($(MAKECMDGOALS), clean)
ifneq ($(MAKECMDGOALS), distclean)
-include $(SYNTH_LIB_PARSER_DEPS)
endif
endif