98d0ae5a8053b940aa480714a0af872d38cfb261
[scilab.git] / scilab / modules / scicos / src / translator / parsing / Makefile
1 #\r
2 #   Translator from Modelica 2.x to flat Modelica\r
3\r
4 #   Copyright (C) 2005 - 2007 Imagine S.A.\r
5 #   For more information or commercial use please contact us at www.amesim.com\r
6\r
7 #   This program is free software; you can redistribute it and/or\r
8 #   modify it under the terms of the GNU General Public License\r
9 #   as published by the Free Software Foundation; either version 2\r
10 #   of the License, or (at your option) any later version.\r
11\r
12 #   This program is distributed in the hope that it will be useful,\r
13 #   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15 #   GNU General Public License for more details.\r
16\r
17 #   You should have received a copy of the GNU General Public License\r
18 #   along with this program; if not, write to the Free Software\r
19 #   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.\r
20\r
21 #\r
22 \r
23 OCAMLDEP=ocamldep\r
24 OCAMLC=ocamlc\r
25 OCAMLOPT=ocamlopt\r
26 CAMLP4=camlp4\r
27 INCLUDES=\r
28 \r
29 ifeq ($(RELEASE),yes)\r
30 OCAMLFLAGS=$(INCLUDES)\r
31 else\r
32 OCAMLFLAGS=-g $(INCLUDES)\r
33 endif\r
34 \r
35 OCAMLOPTFLAGS=$(INCLUDES)\r
36 LIBS=\r
37 LIBSOPT=$(LIBS:.cma=.cmxa)\r
38 SRCS=syntax.ml linenum.ml parser.ml lexer.ml\r
39 \r
40 \r
41 OBJS=$(SRCS:.ml=.cmo)\r
42 OBJSOPT=$(SRCS:.ml=.cmx)\r
43 LIB=parsing.cma\r
44 LIBOPT=$(LIB:.cma=.cmxa)\r
45 \r
46 .SUFFIXES: .ml .mli .cmo .cmi .cmx .mlp .mpi\r
47 \r
48 %.cmo:  %mlp\r
49         $(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -impl $< > $(@:.cmo=.tmp)\r
50         $(OCAMLC) $(OCAMLFLAGS) -c -impl $(@:.cmo=.tmp)\r
51         rm -f $(@:.cmo=.tmp)\r
52 \r
53 %.cmi:  %.mpi\r
54         $(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -intf $< > $(@:.cmi=.tmp)\r
55         $(OCAMLC) $(OCAMLFLAGS) -c -intf $(@:.cmi=.tmp)\r
56         rm -f $(@:.cmi=.tmp)\r
57 \r
58 %.cmx:  %.mlp\r
59         $(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -impl $< > $(@:.cmx=.tmp)\r
60         $(OCAMLOPT) $(OCAMLOPTFLAGS) -c -impl $(@:.cmx=.tmp)\r
61         rm -f $(@:.cmx=.tmp)\r
62 \r
63 %.cmo:  %.ml\r
64         $(OCAMLC) $(OCAMLFLAGS) -c $<\r
65 \r
66 %.cmi:  %.mli\r
67         $(OCAMLC) $(OCAMLFLAGS) -c $<\r
68 \r
69 %.cmx:  %.ml\r
70         $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $<\r
71 \r
72 %.ml %.mli: %.mly\r
73         ocamlyacc $(<)\r
74         rm -f $(<:.mly=.mli)\r
75 \r
76 %.ml: %.mll\r
77         ocamllex $(<)\r
78 all: bytecode\r
79 \r
80 opt: $(OBJSOPT)\r
81         $(OCAMLOPT) $(OCAMLOPTFLAGS) -a -o $(LIBOPT) $(LFLAGS) $(LIBSOPT) $(OBJSOPT)\r
82 \r
83 bytecode: $(OBJS)\r
84         $(OCAMLC) $(OCAMLFLAGS) -a -o $(LIB) $(LFLAGS) $(LIBS) $(OBJS)\r
85 \r
86 parser.ml : parser.mly\r
87         ocamlyacc parser.mly\r
88         rm -f parser.mli\r
89 \r
90 lexer.ml : lexer.mll\r
91         ocamllex lexer.mll\r
92 \r
93 linenum.ml : linenum.mll\r
94         ocamllex linenum.mll\r
95 \r
96 depend:\r
97         $(OCAMLDEP) $(INCLUDES) $(SRCS:.ml=.mli) $(SRCS) > .depend\r
98 \r
99 -include .depend\r
100 \r
101 clean:\r
102         rm -f *.cmxa\r
103         rm -f *.cm[aiox]\r
104         rm -f *.o\r
105         rm -f *.obj\r
106         rm -f *.a\r
107         rm -f *.lib\r
108         rm -f parser.mli\r
109         rm -f parser.output\r
110         rm -f lexer.mli\r
111         rm -f linenum.mli\r
112         rm -f *~\r
113 \r