/[svn]/Makefile.distrib
ViewVC logotype

Contents of /Makefile.distrib

Parent Directory Parent Directory | Revision Log Revision Log


Revision 468 - (show annotations)
Tue Jul 10 17:36:57 2007 UTC (5 years, 10 months ago) by abate
File size: 4091 byte(s)
[r2003-05-31 11:05:42 by cvscast] expat

Original author: cvscast
Date: 2003-05-31 11:05:42+00:00
1 NATIVE = true
2 PROFILE = false
3 PXP_WLEX = false
4 EXPAT = false
5
6 PACKAGES = -package "pxp-engine pxp-lex-iso88591 wlexing camlp4 num cgi"
7 ifeq ($(PXP_WLEX), true)
8 PACKAGES += -package pxp-wlex-utf8
9 else
10 PACKAGES += -package pxp-lex-utf8
11 endif
12
13 SYNTAX = camlp4o -I misc/ pa_extend.cmo \
14 q_symbol.cmo \
15 -symbol cduce_version=\"$(VERSION)\" \
16 -symbol build_date=\"$(shell date +%Y-%m-%d)\"
17
18 ifeq ($(NATIVE), true)
19 SYNTAX += -symbol ocaml_compiler=\"native\"
20 else
21 SYNTAX += -symbol ocaml_compiler=\"bytecode\"
22 endif
23
24 ifeq ($(EXPAT), true)
25 SYNTAX += -symbol EXPAT=
26 endif
27
28 VERSION = 0.0.9
29
30 SYNTAX_PARSER = -pp '$(SYNTAX)'
31
32 CAMLC_P = ocamlc
33 ifeq ($(PROFILE), true)
34 CAMLOPT_P = ocamlopt -p
35 ifeq ($(NATIVE), false)
36 CAMLC_P = ocamlcp -p a
37 SYNTAX_PARSER =
38 endif
39 else
40 CAMLOPT_P = ocamlopt -inline 25
41 endif
42
43 OPT = -warn-error A
44 CAMLC = ocamlfind $(CAMLC_P) $(OPT) $(PACKAGES)
45 CAMLOPT = ocamlfind $(CAMLOPT_P) $(OPT) $(PACKAGES)
46
47 ifeq ($(NATIVE), true)
48 EXTENSION = cmx
49 LINK = $(CAMLOPT) -linkpkg gramlib.cmxa
50 ifeq ($(EXPAT), true)
51 LINK += mlexpat.cmxa
52 endif
53 else
54 EXTENSION = cmo
55 LINK = $(CAMLC) -custom -linkpkg gramlib.cma mlexpat.cma
56 ifeq ($(EXPAT), true)
57 LINK += mlexpat.cma
58 endif
59 endif
60
61 all: cduce dtd2cduce local_website
62
63 # Source directories
64
65 DIRS = misc parser typing types runtime driver
66 CLEAN_DIRS = $(DIRS) tools tests
67
68 # Objects to build
69
70 OBJECTS = \
71 misc/state.cmo misc/pool.cmo misc/encodings.cmo misc/bool.cmo \
72 misc/pretty.cmo \
73 \
74 types/sortedList.cmo types/boolean.cmo types/ident.cmo \
75 types/intervals.cmo types/chars.cmo types/atoms.cmo types/normal.cmo \
76 types/types.cmo types/patterns.cmo types/sequence.cmo \
77 types/sample.cmo \
78 \
79 parser/location.cmo parser/wlexer.cmo parser/ast.cmo parser/parser.cmo \
80 \
81 typing/typed.cmo typing/typer.cmo \
82 \
83 runtime/value.cmo runtime/load_xml.cmo runtime/run_dispatch.cmo \
84 runtime/print_xml.cmo runtime/eval.cmo \
85 \
86 types/builtin.cmo driver/cduce.cmo
87
88 CDUCE = $(OBJECTS) driver/run.cmo
89 WEBIFACE = $(OBJECTS) driver/examples.cmo driver/webiface.cmo
90 DTD2CDUCE = tools/dtd2cduce.cmo
91
92 DEPEND = $(DIRS:=/*.ml) $(DIRS:=/*.mli)
93 INCLUDES = $(DIRS:%=-I %)
94
95 ifeq ($(EXPAT), true)
96 INCLUDES += -I expat
97 endif
98
99 cduce: $(CDUCE:.cmo=.$(EXTENSION))
100 $(LINK) $(INCLUDES) -o $@ $^
101
102 webiface: $(WEBIFACE:.cmo=.$(EXTENSION))
103 $(LINK) $(INCLUDES) -o $@ $^
104
105 dtd2cduce: $(DTD2CDUCE:.cmo=.$(EXTENSION))
106 $(LINK) $(INCLUDES) -o $@ $^
107
108 .PHONY: compute_depend
109 compute_depend: misc/q_symbol.cmo
110 @echo "Computing dependencies ..."
111 ocamldep $(INCLUDES) $(SYNTAX_PARSER) $(DEPEND) | \
112 sed -e "s|: |: misc/q_symbol.cmo |" > depend
113
114 parser/wlexer.ml: parser/wlexer.mll
115 wlex parser/wlexer.mll
116
117 clean:
118 for i in $(CLEAN_DIRS); do \
119 (cd $$i; rm -f *.cmi *.cmo *.cma *.cmx *.o *~); \
120 done
121 (cd expat; make clean)
122 rm -f `find . -name "*~"`
123 rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~
124 rm -f cduce ocamlprof.dump
125 rm -f dtd2cduce pool webiface
126 rm -Rf prepro package
127 rm -f web/www/*.php web/www/*.html web/*~
128
129
130 .SUFFIXES: .ml .mli .cmo .cmi .cmx
131
132 misc/q_symbol.cmo: misc/q_symbol.ml
133 $(CAMLC) -c -pp 'camlp4o pa_extend.cmo q_MLast.cmo' $<
134
135 .PHONY: expat
136 expat:
137 (cd expat; make)
138
139 .ml.cmo:
140 $(CAMLC) -c $(SYNTAX_PARSER) $(INCLUDES) $<
141
142 .ml.cmx:
143 $(CAMLOPT) -c $(SYNTAX_PARSER) $(INCLUDES) $<
144
145 .mli.cmi:
146 $(CAMLC) -c $(SYNTAX_PARSER) $(INCLUDES) $<
147
148 include depend
149
150 # CDuce-generated files
151
152 driver/examples.ml: cduce web/examples/build.cd web/examples/examples.xml
153 (cd web/examples; ../../cduce --quiet build.cd)
154
155 web/files: cduce web/site.cd
156 (cd web; ../cduce --quiet site.cd --arg -php site.xml)
157
158 #
159 # Customize the following variables to match the settings
160 # of your local web server
161 #
162 WEB_PREFIX = /var/www
163 CGI_DIR = $(WEB_PREFIX)/cgi-bin
164 CDUCE_HTML_DIR = $(WEB_PREFIX)/html
165
166 install_web_local:web/files webiface
167 cp web/www/*.php web/cduce.css $(CDUCE_HTML_DIR)/
168 cp webiface $(CGI_DIR)/
169 if test ! -d "$(CDUCE_HTML_DIR)/img" ; then \
170 mkdir $(CDUCE_HTML_DIR)/img; \
171 fi;
172 cp web/img/*.* $(CDUCE_HTML_DIR)/img
173
174
175 local_website: cduce
176 (cd web; ../cduce --quiet site.cd --arg site.xml)

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