encoding
[scilab.git] / scilab / modules / scicos / src / translator / translation / Makefile
1 #
2 #   Translator from Modelica 2.x to flat Modelica
3
4 #   Copyright (C) 2005 - 2007 Imagine S.A.
5 #   For more information or commercial use please contact us at www.amesim.com
6
7 #   This program is free software; you can redistribute it and/or
8 #   modify it under the terms of the GNU General Public License
9 #   as published by the Free Software Foundation; either version 2
10 #   of the License, or (at your option) any later version.
11
12 #   This program is distributed in the hope that it will be useful,
13 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 #   GNU General Public License for more details.
16
17 #   You should have received a copy of the GNU General Public License
18 #   along with this program; if not, write to the Free Software
19 #   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20
21 #
22
23 EXE=translator
24 OCAMLDEP=ocamldep
25 OCAMLC=ocamlc
26 OCAMLOPT=ocamlopt
27 CAMLP4=camlp4
28 INCLUDES=-I ../parsing -I ../compilation -I ../instantiation -I ../exceptionHandling
29
30 ifeq ($(RELEASE),yes)
31 OCAMLFLAGS=$(INCLUDES)
32 else
33 OCAMLFLAGS=-g $(INCLUDES)
34 endif
35
36 OCAMLOPTFLAGS=$(INCLUDES)
37 LIBS=../parsing/parsing.cma ../compilation/compilation.cma \
38         ../instantiation/instantiation.cma ../exceptionHandling/exceptionHandling.cma \
39         unix.cma
40 LIBSOPT=$(LIBS:.cma=.cmxa)
41
42 SRCS=codeGeneration.ml libraryManager.ml versiondate.ml
43
44
45 OBJS=$(SRCS:.ml=.cmo)
46 OBJSOPT=$(SRCS:.ml=.cmx)
47
48 # Avoid problems with svn command
49 LANG:=C
50 export LANG
51
52 SVNLASTCHANGEDATESTR:=$(shell svn info .. | grep "Last Changed Date:")
53 SVNLASTCHANGEREVSTR:=$(shell svn info .. | grep "Last Changed Rev:")
54
55 .SUFFIXES: .ml .mli .cmo .cmi .cmx .mlp .mpi
56
57 %.cmo:  %mlp
58         $(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -impl $< > $(@:.cmo=.tmp)
59         $(OCAMLC) $(OCAMLFLAGS) -c -impl $(@:.cmo=.tmp)
60         rm -f $(@:.cmo=.tmp)
61
62 %.cmi:  %.mpi
63         $(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -intf $< > $(@:.cmi=.tmp)
64         $(OCAMLC) $(OCAMLFLAGS) -c -intf $(@:.cmi=.tmp)
65         rm -f $(@:.cmi=.tmp)
66
67 %.cmx:  %.mlp
68         $(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -impl $< > $(@:.cmx=.tmp)
69         $(OCAMLOPT) $(OCAMLOPTFLAGS) -c -impl $(@:.cmx=.tmp)
70         rm -f $(@:.cmx=.tmp)
71
72 %.cmo:  %.ml %.cmi
73         $(OCAMLC) $(OCAMLFLAGS) -c $<
74
75 %.cmi:  %.mli
76         $(OCAMLC) $(OCAMLFLAGS) -c $<
77
78 %.cmx:  %.ml
79         $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $<
80
81
82 all: bytecode
83
84 opt: $(OBJSOPT)
85         $(OCAMLOPT) -verbose $(OCAMLOPTFLAGS) -o $(EXE) $(LFLAGS) $(LIBSOPT) $(OBJSOPT)  translator.ml
86         cp $(EXE) ../../../
87         rm -f $(EXE)
88
89 bytecode: $(OBJS)
90         $(OCAMLC) $(OCAMLFLAGS) -o $(EXE) $(LFLAGS) $(LIBS) $(OBJS)     translator.ml
91
92 custom: $(OBJS)
93         $(OCAMLC) -verbose -custom $(OCAMLFLAGS) -o $(EXE) $(LFLAGS) $(LIBS) $(OBJS) translator.ml 
94
95 depend: version $(SRCS)
96         $(OCAMLDEP) $(INCLUDES) $(SRCS:.ml=.mli) $(SRCS) > .depend
97
98 versiontarget : 
99 ifeq ("$(strip $(SVNLASTCHANGEDATESTR))", "")
100 ifeq ("$(strip $(wildcard versiondate.ml))", "")
101         @echo "***********************************************"
102         @echo "*** Could not expand the SVN version date *****"
103         @echo "*** using the template file as it is      *****"
104         @echo "*** The build date will not be correct    *****"
105         @echo "***********************************************"
106         cp -p versiondate.ml.tmpl versiondate.ml
107 else
108         @echo "***********************************************"
109         @echo "*** Reusing existing versiondate.ml      ******"
110         @echo "***********************************************"
111 endif
112 else
113         sed -e '/let/s/AUTO_UPDATE_DATE/$(SVNLASTCHANGEDATESTR)/' -e '/let/s/AUTO_UPDATE_REV/$(SVNLASTCHANGEREVSTR)/' < versiondate.ml.tmpl > versiondate.ml
114 endif
115
116 version:
117         $(MAKE) versiontarget
118
119 versiondate.ml: $(filter-out versiondate.ml, $(SRCS))
120         $(MAKE) versiontarget
121
122 -include .depend
123
124 clean:
125         rm -f *.cmxa
126         rm -f *.cm[aiox]
127         rm -f *.o
128         rm -f *.obj
129         rm -f $(EXE)
130         rm -f *~
131