1 # Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 # Copyright (C) 2008 - INRIA - Sylvestre Ledru <sylvestre.ledru@inria.fr>
3 # Copyright (C) 2010 - DIGITEO - Sylvestre Ledru
4 # Copyright (C) 2014 - Scilab Enterprises - Clement DAVID
6 # Copyright (C) 2012 - 2016 - Scilab Enterprises
8 # This file is hereby licensed under the terms of the GNU GPL v2.0,
9 # pursuant to article 5.3.4 of the CeCILL v.2.1.
10 # This file was originally licensed under the terms of the CeCILL v2.1,
11 # and continues to be available under such terms.
12 # For more information, see the COPYING file which you should have received
13 # along with this program.
16 # * see if we can do more factorization (on the lexer for example)
18 ######### Common Modelica elements #############
22 TARGET = modelicac XML2Modelica modelicat
23 BASE_PATH = $(srcdir)/src/
24 bin_PROGRAMS = $(TARGET)
30 XML2Modelica_SOURCES = \
31 $(srcdir)/src/xml2modelica/xMLTree.ml \
32 $(srcdir)/src/xml2modelica/linenum.mll \
33 $(srcdir)/src/xml2modelica/stringParser.ml \
34 $(srcdir)/src/xml2modelica/stringLexer.ml \
35 $(srcdir)/src/xml2modelica/xMLParser.ml \
36 $(srcdir)/src/xml2modelica/xMLLexer.ml \
37 $(srcdir)/src/xml2modelica/modelicaCodeGenerator.ml \
38 $(srcdir)/src/xml2modelica/xML2Modelica.ml
40 XML2Modelica_SOURCES_mly = $(XML2Modelica_SOURCES:.mly=.ml)
41 MLS_XML2Modelica = $(XML2Modelica_SOURCES_mly:.mll=.ml)
42 MLIS_XML2Modelica = $(MLS_XML2Modelica:.ml=.mli)
44 BASE_PATH_XML2Modelica = $(srcdir)/src/xml2modelica
50 $(srcdir)/src/translator/parsing/syntax.ml \
51 $(srcdir)/src/translator/parsing/parser.mly \
52 $(srcdir)/src/translator/parsing/lexer.mll \
53 $(srcdir)/src/translator/parsing/linenum.mll \
54 $(srcdir)/src/translator/compilation/types.ml \
55 $(srcdir)/src/translator/compilation/nameResolve.ml \
56 $(srcdir)/src/translator/instantiation/instantiation.ml \
57 $(srcdir)/src/translator/exceptionHandling/msgDico.ml \
58 $(srcdir)/src/translator/exceptionHandling/errorDico.ml \
59 $(srcdir)/src/translator/exceptionHandling/exceptHandler.ml \
60 $(srcdir)/src/translator/translation/libraryManager.ml \
61 $(srcdir)/src/translator/translation/codeGeneration.ml \
62 $(srcdir)/src/translator/translation/versiondate.ml \
63 $(srcdir)/src/translator/translation/translator.ml
65 modelicat_SOURCES_mly = $(modelicat_SOURCES:.mly=.ml)
66 MLS_modelicat = $(modelicat_SOURCES_mly:.mll=.ml)
67 MLIS_modelicat = $(MLS_modelicat:.ml=.mli)
69 INCLUDE_modelicat = -I $(srcdir)/src/translator/compilation \
70 -I $(srcdir)/src/translator/exceptionHandling \
71 -I $(srcdir)/src/translator/parsing \
72 -I $(srcdir)/src/translator/instantiation \
73 -I $(srcdir)/src/translator/translation
78 $(srcdir)/src/modelica_compiler/parseTree.ml \
79 $(srcdir)/src/modelica_compiler/linenum.mll \
80 $(srcdir)/src/modelica_compiler/parser.mly \
81 $(srcdir)/src/modelica_compiler/lexer.mll \
82 $(srcdir)/src/modelica_compiler/precompilation.ml \
83 $(srcdir)/src/modelica_compiler/compilation.ml \
84 $(srcdir)/src/modelica_compiler/instantiation.ml \
85 $(srcdir)/src/modelica_compiler/graphNodeSet.ml \
86 $(srcdir)/src/modelica_compiler/symbolicExpression.ml \
87 $(srcdir)/src/modelica_compiler/squareSparseMatrix.ml \
88 $(srcdir)/src/modelica_compiler/bipartiteGraph.ml \
89 $(srcdir)/src/modelica_compiler/hungarianMethod.ml \
90 $(srcdir)/src/modelica_compiler/causalityGraph.ml \
91 $(srcdir)/src/modelica_compiler/optimization.ml \
92 $(srcdir)/src/modelica_compiler/xMLCodeGeneration.ml \
93 $(srcdir)/src/modelica_compiler/optimizingCompiler.ml \
94 $(srcdir)/src/modelica_compiler/scicosCodeGeneration.ml \
95 $(srcdir)/src/modelica_compiler/scicosOptimizingCompiler.ml
97 modelicac_SOURCES_mly = $(modelicac_SOURCES:.mly=.ml)
98 MLS_modelicac = $(modelicac_SOURCES_mly:.mll=.ml)
99 MLIS_modelicac = $(MLS:.ml=.mli)
101 BASE_PATH_MODELICAC = $(srcdir)/src/modelica_compiler
103 INCLUDE = -I $(BASE_PATH_MODELICAC) -I $(BASE_PATH_XML2Modelica)
106 SUFFIXES += .ml .mli .mll .mly .cmo .cmi .cmx
108 # @TODO check how to avoid the rebuild of the parser/lexer
111 @if echo "$<"|grep src/translator; then \
112 echo $(OCAMLC) $(INCLUDE_modelicat) $(OCAMLCFLAGS) -c $*.ml; \
113 $(OCAMLC) $(INCLUDE_modelicat) $(OCAMLCFLAGS) -c $*.ml; \
115 echo $(OCAMLC) $(INCLUDE) $(OCAMLCFLAGS) -c $*.ml; \
116 $(OCAMLC) $(INCLUDE) $(OCAMLCFLAGS) -c $*.ml; \
120 @if echo "$<"|grep src/translator; then \
121 echo $(OCAMLOPT) $(INCLUDE_modelicat) $(OCAMLOPTFLAGS) -c $*.ml; \
122 $(OCAMLOPT) $(INCLUDE_modelicat) $(OCAMLOPTFLAGS) -c $*.ml; \
124 echo $(OCAMLOPT) $(INCLUDE) $(OCAMLOPTFLAGS) -c $*.ml; \
125 $(OCAMLOPT) $(INCLUDE) $(OCAMLOPTFLAGS) -c $*.ml; \
129 @if echo "$<"|grep src/translator; then \
130 echo $(OCAMLC) $(INCLUDE_modelicat) $(OCAMLCFLAGS) -c $<; \
131 $(OCAMLC) $(INCLUDE_modelicat) $(OCAMLCFLAGS) -c $<; \
133 echo $(OCAMLC) $(INCLUDE) $(OCAMLCFLAGS) -c $<; \
134 $(OCAMLC) $(INCLUDE) $(OCAMLCFLAGS) -c $<; \
138 @if echo "$<"|grep src/translator; then \
139 echo $(OCAMLC) $(INCLUDE_modelicat) $(OCAMLCFLAGS) -i $< > $@; \
140 $(OCAMLC) $(INCLUDE_modelicat) $(OCAMLCFLAGS) -i $< > $@; \
142 echo $(OCAMLC) $(INCLUDE) $(OCAMLCFLAGS) -i $< > $@; \
143 $(OCAMLC) $(INCLUDE) $(OCAMLCFLAGS) -i $< > $@; \
152 # Build the binaries, disabling parallel building
154 modelicac: $(modelicac_SOURCES) $(MLIS_modelicac) $(MLS_modelicac:.ml=.cmx)
155 $(OCAMLOPT) -o $@ $(INCLUDE) $(OCAMLOPTFLAGS) $(OCAMLLIBS:.cma=.cmxa) $(MLS_modelicac:.ml=.cmx)
157 modelicac.ocamlc: $(modelicac_SOURCES) $(MLIS_modelicac) $(MLS_modelicac:.ml=.cmo)
158 $(OCAMLC) -o $@ $(INCLUDE) $(OCAMLOPTFLAGS) $(OCAMLLIBS) $(MLS_modelicac:.ml=.cmo)
160 XML2Modelica: $(XML2Modelica_SOURCES) $(MLIS_XML2Modelica) $(MLS_XML2Modelica:.ml=.cmx)
161 $(OCAMLOPT) -o $@ $(INCLUDE) $(OCAMLCFLAGS) $(OCAMLLIBS:.cma=.cmxa) $(MLS_XML2Modelica:.ml=.cmx)
163 XML2Modelica.ocamlc: $(XML2Modelica_SOURCES) $(MLIS_XML2Modelica) $(MLS_XML2Modelica:.ml=.cmo)
164 $(OCAMLC) -o $@ $(INCLUDE) $(OCAMLCFLAGS) $(OCAMLLIBS) $(MLS_XML2Modelica:.ml=.cmo)
166 modelicat: $(modelicat_SOURCES) $(MLIS_modelicat) $(MLS_modelicat:.ml=.cmx)
167 $(OCAMLOPT) -o $@ $(INCLUDE_modelicat) $(OCAMLOPTFLAGS) $(OCAMLLIBS:.cma=.cmxa) $(MLS_modelicat:.ml=.cmx)
169 modelicat.ocamlc: $(modelicat_SOURCES) $(MLIS_modelicat) $(MLS_modelicat:.ml=.cmo)
170 $(OCAMLC) -o $@ $(INCLUDE_modelicat) $(OCAMLOPTFLAGS) $(OCAMLLIBS) $(MLS_modelicat:.ml=.cmo)
172 CLEANFILES = $(BASE_PATH)/*/*.cmi \
174 $(BASE_PATH)/*/*.cmo \
175 $(BASE_PATH)/*/*.cm[aiox] \
176 $(BASE_PATH)/*/parser.mli \
177 $(BASE_PATH)/*/lexer.mli \
178 $(BASE_PATH)/*/linenum.mli \
179 $(BASE_PATH)/*/parser.ml \
180 $(BASE_PATH)/*/lexer.ml \
181 $(BASE_PATH)/*/linenum.ml \
182 $(BASE_PATH)/translator/*/*.cmi \
183 $(BASE_PATH)/translator/*/*.o \
184 $(BASE_PATH)/translator/*/*.a \
185 $(BASE_PATH)/translator/*/*.cmo \
186 $(BASE_PATH)/translator/*/*.cmxa \
187 $(BASE_PATH)/translator/*/*.cm[aiox] \
188 $(BASE_PATH)/translator/*/parser.mli \
189 $(BASE_PATH)/translator/*/lexer.mli \
190 $(BASE_PATH)/translator/*/parser.ml \
191 $(BASE_PATH)/translator/*/linenum.ml \
192 $(BASE_PATH)/translator/*/lexer.ml \
194 $(BASE_PATH)/modelica_compiler/linenum.mli \
195 $(BASE_PATH)/modelica_compiler/scicosOptimizingCompiler.mli \
196 $(BASE_PATH)/translator/compilation/nameResolve.mli \
197 $(BASE_PATH)/translator/compilation/types.mli \
198 $(BASE_PATH)/translator/exceptionHandling/errorDico.mli \
199 $(BASE_PATH)/translator/exceptionHandling/exceptHandler.mli \
200 $(BASE_PATH)/translator/exceptionHandling/msgDico.mli \
201 $(BASE_PATH)/translator/instantiation/instantiation.mli \
202 $(BASE_PATH)/translator/parsing/linenum.mli \
203 $(BASE_PATH)/translator/parsing/syntax.mli \
204 $(BASE_PATH)/translator/translation/codeGeneration.mli \
205 $(BASE_PATH)/translator/translation/libraryManager.mli \
206 $(BASE_PATH)/translator/translation/translator.mli \
207 $(BASE_PATH)/translator/translation/versiondate.mli
209 #BUILT_SOURCES = depend
211 depend: $(MLS_XML2Modelica) $(MLS_modelicac) $(MLS_modelicat)
212 $(OCAMLDEP) -all $(INCLUDE) $(MLS_XML2Modelica) $(MLIS_XML2Modelica) > .depend
213 $(OCAMLDEP) -all $(INCLUDE_modelicat) $(MLS_modelicat) $(MLIS_modelicat) >> .depend
214 $(OCAMLDEP) -all $(INCLUDE) $(MLS_modelicac) $(MLIS_modelicac) >> .depend