/
Makefile.in
123 lines (90 loc) · 3.3 KB
/
Makefile.in
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
top_builddir= ../..
builddir_bin=$(top_builddir)/build/bin
builddir_lib=$(top_builddir)/build/lib
builddir_inc=$(top_builddir)/build/include
builddir_doc=$(top_builddir)/build/doc
CC=gcc
CXX=g++
ANTLR_HOME = @antlrhome@
ANTLR_INCP = -I@antlrinc@
ANTLR_LIBP = -L@antlrlib@
RML_HOME = @rmlhome@
RML_INCP = -I@rmlinc@
FLAT_PARSE_HOME = $(top_builddir)/flat_modelica_parser
FLAT_PARSE_INCP = -I$(FLAT_PARSE_HOME)/src
FLAT_PARSE_LIBP = -L$(FLAT_PARSE_HOME)/src
PARSE_HOME = $(top_builddir)/modelica_parser
PARSE_INCP = -I$(PARSE_HOME)/src
PARSE_LIBP = -L$(PARSE_HOME)/src
INCP = $(ANTLR_INCP) $(PARSE_INCP) $(FLAT_PARSE_INCP) $(RML_INCP)
LIBP = $(ANTLR_LIBP) $(PARSE_LIBP) $(FLAT_PARSE_LIBP)
CFLAGS = $(INCP) -O3 -Wall
CXXFLAGS = $(CFLAGS)
LINKFLAGS = $(LIBP)
LIBS = -lantlr -lmodelica_parser -lflat_modelica_parser
PARSER_OBJS = $(FLAT_PARSE_HOME)/src/flat_modelica_parser.o \
$(FLAT_PARSE_HOME)/src/flat_modelica_lexer.o \
$(PARSE_HOME)/src/modelica_parser.o $(PARSE_HOME)/src/modelica_lexer.o \
$(PARSE_HOME)/src/token_names.o $(PARSE_HOME)/src/parse_tree_dumper.o
walkergen= modelica_tree_parser.cpp modelica_tree_parser.hpp \
modelica_tree_parserTokenTypes.hpp modelica_tree_parserTokenTypes.txt
walkersrcs=$(filter %.cpp,$(walkergen))
walkerobjs=$(walkersrcs:.cpp=.o)
exprparsegen = modelica_expression_parser.cpp modelica_expression_parser.hpp
exprparsesrcs=$(filter %.cpp,$(exprparsegen))
exprparseobjs=$(exprparsesrcs:.cpp=.o)
OBJS += $(walkerobjs) $(exprparseobjs) parse.o
ANTLR = java -cp $(top_builddir)/@omc_antlr_jar@ antlr.Tool
all : absyn_builder.a
.PHONY: parser flat_parser exprparseonce walkeronce
vctarget: vcparser $(walkergen) $(exprparsegen)
vcparser:
cd $(PARSE_HOME)/src; $(MAKE) -f Makefile vctarget
cd $(FLAT_PARSE_HOME)/src; $(MAKE) -f Makefile vctarget
parser:
$(MAKE) -C $(PARSE_HOME)/src
flat_parser:
$(MAKE) -C $(FLAT_PARSE_HOME)/src
absyn_builder.a : parser flat_parser $(OBJS)
ar -sr $@ $(OBJS) $(PARSER_OBJS)
$(PARSER_OBJS) : parser flat_parser
walker.stamp: walker.g modelica_parserTokenTypes.txt
@rm -f walker.tmp
@touch walker.tmp
$(ANTLR) $(ANTLRFLAGS) $<
touch $(walkergen)
@mv -f walker.tmp $@
$(walkergen): walker.stamp
## Recover from the removal of $@
@if test -f $@; then :; else \
rm -f walker.stamp; \
$(MAKE) walker.stamp; \
fi
exprparse.stamp: expression_parser.g modelica_parserTokenTypes.txt
rm -f exprparse.tmp
touch exprparse.tmp
$(ANTLR) $(ANTLRFLAGS) $<
touch $(exprparsegen)
mv -f exprparse.tmp $@
$(exprparsegen): exprparse.stamp
## Recover from the removal of $@
@if test -f $@; then :; else \
rm -f exprparse.stamp; \
$(MAKE) exprparse.stamp; \
fi
$(PARSE_HOME)/src/modelica_parserTokenTypes.txt: parser flat_parser
modelica_parserTokenTypes.txt : $(PARSE_HOME)/src/modelica_parserTokenTypes.txt
cp $< $@
clean:
-rm -f *.o *~ core *.core walker absyn_builder.a
-rm -f $(walkergen) modelica_parserTokenTypes.txt
-rm -f expandedexpression_parser.g modelica_expression_parser*
reallyclean: clean
parse.o : parse.cpp $(PARSE_HOME)/src/modelica_lexer.hpp $(PARSE_HOME)/src/modelica_parser.hpp \
$(FLAT_PARSE_HOME)/src/flat_modelica_parser.hpp \
$(FLAT_PARSE_HOME)/src/flat_modelica_lexer.hpp \
modelica_tree_parser.hpp \
modelica_expression_parser.hpp \
$(PARSE_HOME)/src/parse_tree_dumper.hpp
Makefile: Makefile.in
cd $(top_builddir); ./config.status