/[svn]/Makefile
ViewVC logotype

Contents of /Makefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 290 - (show annotations)
Tue Jul 10 17:22:54 2007 UTC (5 years, 10 months ago) by abate
File size: 4610 byte(s)
[r2003-04-04 14:49:02 by cvscast] Empty log message

Original author: cvscast
Date: 2003-04-04 14:49:02+00:00
1 # Source directories
2
3 DIRS = misc parser typing types runtime driver toplevel
4 CLEAN_DIRS = $(DIRS) tools tests
5
6 # Objects to build
7
8 MISC = misc/state.cmo misc/pool.cmo misc/encodings.cmo misc/bool.cmo
9
10 PARSER = parser/lexer.cmo parser/location.cmo \
11 parser/wlexer.cmo \
12 parser/ast.cmo parser/parser.cmo
13
14 TYPING = typing/typed.cmo typing/typer.cmo
15
16 TYPES = \
17 types/sortedList.cmo types/sortedMap.cmo types/boolean.cmo \
18 types/ident.cmo \
19 types/intervals.cmo types/chars.cmo types/atoms.cmo \
20 types/normal.cmo \
21 types/types.cmo \
22 types/patterns.cmo \
23 types/sequence.cmo \
24 types/builtin.cmo
25
26 RUNTIME = runtime/value.cmo \
27 runtime/load_xml.cmo runtime/run_dispatch.cmo \
28 runtime/print_xml.cmo \
29 runtime/eval.cmo
30
31 DRIVER = driver/cduce.cmo
32
33 OBJECTS = $(MISC) $(TYPES) $(PARSER) $(TYPING) $(RUNTIME)
34
35 CDUCE = $(OBJECTS) $(DRIVER) driver/run.cmo
36 WEBIFACE = $(OBJECTS) $(DRIVER) driver/examples.cmo driver/webiface.cmo
37 TOPLEVEL = $(OBJECTS) toplevel/toploop.cmo
38
39 XOBJECTS = $(OBJECTS:.cmo=.cmx)
40 XCDUCE = $(CDUCE:.cmo=.cmx)
41 XWEBIFACE = $(WEBIFACE:.cmo=.cmx)
42
43
44 DEBUG = -g
45 PACKAGES = pxp-engine,pxp-lex-iso88591,wlexing,camlp4,num,cgi
46 OCAMLCP = ocamlc
47 OCAMLC = ocamlfind $(OCAMLCP) -package $(PACKAGES)
48 OCAMLOPT = ocamlfind ocamlopt -package $(PACKAGES)
49 # extra options:
50 # -inline 25
51 # -p (profiling)
52 # -noassert
53
54 DEPEND = $(DIRS:=/*.ml) $(DIRS:=/*.mli)
55 INCLUDES = $(DIRS:%=-I %)
56
57 SYNTAX = camlp4o pa_extend.cmo
58 SYNTAX_PARSER = -pp '$(SYNTAX)'
59 PREPRO = $(SYNTAX) pr_o.cmo
60
61 all.cma: $(OBJECTS)
62 $(OCAMLC) $(DEBUG) -o $@ -linkpkg gramlib.cma -a $(OBJECTS)
63
64 all.cmxa: $(XOBJECTS)
65 $(OCAMLOPT) -a -o $@ $(XOBJECTS)
66
67
68 OCAMLDEFUN = /home/frisch/defun/bin/ocamldefun
69 DEFUN_FILES = $(OBJECTS:%.cmo=%)
70
71 build_defun:
72 for i in $(DEFUN_FILES); do \
73 $(OCAMLDEFUN) $(DIRS:%=-I defun/%) -p -d defun $$i.mli $$i.ml; \
74 $(OCAMLDEFUN) $(DIRS:%=-I defun/%) -p -d defun $$i.ml; \
75 done
76
77 cduce: $(CDUCE)
78 $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $(CDUCE)
79
80 toplevel.out: $(TOPLEVEL)
81 $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $(TOPLEVEL)
82
83 webiface: $(WEBIFACE)
84 $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $(WEBIFACE)
85
86
87 dtd2cduce: tools/dtd2cduce.cmo
88 $(OCAMLC) $(DEBUG) -linkpkg -o $@ $<
89
90 pull: tools/pull.cmo
91 $(OCAMLC) $(DEBUG) -linkpkg -o $@ $<
92
93 cduce.opt: $(XCDUCE)
94 $(OCAMLOPT) -linkpkg -o $@ gramlib.cmxa $(XCDUCE)
95
96 webiface.opt: $(XWEBIFACE)
97 $(OCAMLOPT) -linkpkg -o $@ gramlib.cmxa $(XWEBIFACE)
98
99 compute_depend:
100 @echo "Computing dependencies ..."
101 ocamldep $(INCLUDES) $(SYNTAX_PARSER) $(DEPEND) > depend
102
103 parser/wlexer.ml: parser/wlexer.mll
104 wlex parser/wlexer.mll
105
106 run_top: all.cma
107 ledit ocaml $(INCLUDES) `ocamlfind use pxp` all.cma
108
109 clean:
110 for i in $(CLEAN_DIRS); do \
111 (cd $$i; rm -f *.cmi *.cmo *.cma *.cmx *.o *~); \
112 done
113 rm -f parser/wlexer.ml
114 rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~
115 rm -f cduce cduce.opt webiface.opt ocamlprof.dump
116 rm -f dtd2cduce pool webiface
117 rm -Rf prepro
118 rm -f web/*.php web/*~
119
120
121 .SUFFIXES: .ml .mli .cmo .cmi .cmx
122
123 profile:
124 rm -Rf prepro
125 mkdir prepro
126 for i in $(DIRS); do \
127 mkdir prepro/$$i; \
128 for j in $$i/*.ml $$i/*.mli; do \
129 if [ -f "$$j" ]; then \
130 echo $$j; \
131 $(PREPRO) $$j -o prepro/$$j; \
132 fi; \
133 done; \
134 done
135 cp parser/wlexer.mll prepro/parser/
136 cp Makefile depend prepro/
137 (cd prepro; make cduce OCAMLCP="ocamlcp -p a" SYNTAX_PARSER=)
138
139 .ml.cmo:
140 $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<
141
142 .ml.cmx:
143 $(OCAMLOPT) -c $(SYNTAX_PARSER) $(INCLUDES) $<
144
145 .mli.cmi:
146 $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<
147
148 # FORTPATH = /users/formel8/frisch/solaris/fort/fort
149 #FORTPATH = /home/frisch/fort
150 #FORTBIN = $(FORTPATH)/fort
151 #FORTLIB = $(FORTPATH)
152
153 test: all.cma
154 fort all.cma $(INCLUDES) tests/test_fort.ml
155
156 include depend
157
158
159 driver/examples.ml: cduce.opt web/examples/build.cd web/examples/examples.xml
160 (cd web/examples; ../../cduce.opt -quiet build.cd)
161
162
163 web/files: cduce.opt web/site.cd
164 (cd web; ../cduce.opt -quiet site.cd)
165
166
167 write_header:
168 headache -h header $(DEPEND)
169
170 remove_header:
171 headache -r $(DEPEND)
172
173 # Site-specific installation
174 build_web:
175 rsh cedre ". .env; cd IMPLEM/CDUCE; make webiface.opt"
176 install_web:
177 ssh cduce@iris.ens.fr "cp ~frisch/IMPLEM/CDUCE/webiface.opt cgi-bin/cduce; chmod +s cgi-bin/cduce"
178 install_web_local:
179 ssh root@localhost "cp ~beppe/IMPLEM/CDUCE/webiface.opt /var/www/cgi-bin/cduce; cp ~beppe/IMPLEM/CDUCE/web/*.php /var/www/html/; chmod +s /var/www/cgi-bin/cduce;"
180
181 build_website:
182 rsh cedre ". .env; cd IMPLEM/CDUCE; make web/files"
183 scp web/*.php web/cduce.css cduce@iris:public_html/
184

CVS Admin">CVS Admin
ViewVC Help
Powered by ViewVC 1.1.5