/[svn]/cduce/trunk/Makefile
ViewVC logotype

Contents of /cduce/trunk/Makefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 370 - (show annotations)
Tue Jul 10 17:29:11 2007 UTC (5 years, 10 months ago) by abate
Original Path: Makefile
File size: 4152 byte(s)
[r2003-05-18 20:07:55 by cvscast] Preparation for a public release

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

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