/[svn]/Makefile
ViewVC logotype

Contents of /Makefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 400 - (show annotations)
Tue Jul 10 17:31:41 2007 UTC (5 years, 10 months ago) by abate
File size: 4190 byte(s)
[r2003-05-23 12:49:32 by cvscast] Empty log message

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

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