1 .OPTIONS = variable-propagation
3 OCAMLFINDPACKAGES = "ulex,unix,expat,camlp4.macro,bigarray"
4 OCAMLFINDSYNTAX = camlp4o
5 OCAMLFINDPPOPTS = $(addprefix "-ppopt ", @CAMLP4FLAGS@ -I include)
6 OCAMLFINDINCLUDES = $(addprefix "-I ", src)
7 OCAMLFINDFLAGSNOSYNTAX = -package $(OCAMLFINDPACKAGES) $(OCAMLFINDPPOPTS) $(OCAMLFINDINCLUDES)
8 OCAMLFINDFLAGS = -syntax $(OCAMLFINDSYNTAX) $(OCAMLFINDFLAGSNOSYNTAX)
9 OCAMLFINDLINKFLAGS = -linkpkg
10 PACKAGE = @PACKAGE_TARNAME@
12 BIN = src/@PACKAGE_TARNAME@.native@EXE@
13 BYTE = src/@PACKAGE_TARNAME@.byte@EXE@
20 OCAMLFLAGS = @OCAMLFLAGS@
21 OCAMLOPTFLAGS = @OCAMLOPTFLAGS@
22 OCAMLCFLAGS = @OCAMLCFLAGS@
25 .PHONY:clean real_test test_native test
29 src/xpath/xpath_internal_parser.cmx: OCAMLFINDFLAGS = $(OCAMLFINDFLAGSNOSYNTAX)
30 src/xpath/xpath_internal_parser.cmo: OCAMLFINDFLAGS = $(OCAMLFINDFLAGSNOSYNTAX)
32 tools: tools/xml_diff.native$(EXE) tools/XPathEval.class tools/split_path.native$(EXE)
34 Remakefile: Remakefile.in config.status
35 ./config.status Remakefile
37 configure config.status: configure.in
39 ./config.status --recheck
42 for dir in src tools; do
43 find $dir -name '*.cm*' -o -name '*.o' -o -name '*.byte' -o \
44 -name '*.native' -o -name '*.mll' -o -name '*.mly' -o \
45 -name '*.class' -o -name '*.depo' -o -name '*.depx' -o -name '*.ml.str' | while read file; do
48 rm -f "${file%.mll}.ml"
51 rm -f "${file%.mly}.ml" "${file%.mly}.mli"
54 rm -f "${file%.ml.str}.ml"
63 distclean: clean test_clean
64 rm -rf config.status configure config.log autom4te.cache .remake Remakefile remake Makefile
70 $(REMAKE) OCAMLNATIVE="-native" $*.cmx $*.depx
71 objects=`cat $*.depx | xargs | sed 's/[.]depx/.cmx/g'`
72 $(REMAKE) OCAMLNATIVE="-native" $objects #ensure all objects have been built
73 $(OCAMLOPT) -o $@ $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $*.cmx
77 $(REMAKE) OCAMLNATIVE="" $*.cmo $*.depo
78 objects=`cat $*.depo | xargs | sed 's/[.]depo/.cmo/g'`
79 $(REMAKE) OCAMLNATIVE="" $objects #ensure all objects have been built
80 $(OCAMLC) -o $@ $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $*.cmo
83 if test -f $*.mly; then
86 elif test -f $*.mll; then
89 elif test -f $*.ml.str; then
91 echo -n 'let content = "' > $*.ml
92 sed -e 's/\(["\\]\)/\\\1/g' $*.ml.str | sed -e 's/^\(.*\)$/\1\\n\\/g' >> $*.ml
102 OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
103 OCAMLNATIVE=$(OCAMLNATIVE)
105 COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)"
106 . tools/ocamldriver.sh
114 OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
115 OCAMLNATIVE=$(OCAMLNATIVE)
117 COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFIND_EXTRAFLAGS) "
118 . tools/ocamldriver.sh
124 OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
126 OCAMLNATIVE=$(OCAMLNATIVE)
127 if test -z "$OCAMLNATIVE"; then
129 COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)"
131 COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)"
134 . tools/ocamldriver.sh
145 $(REMAKE) TEST=$(TEST) "$i".test"$j".summary
150 $(REMAKE) TEST=$(BYTE) real_test
152 $(REMAKE) TEST=$(BIN) real_test
157 rm -rf tests/*.summary tests/*.results/*_"$(PACKAGE)"_*.*
160 $(REMAKE) tools $(TEST)
167 SPLIT=tools/split_path.native$(EXE)
168 XMLDIFF=tools/xml_diff.native$(EXE)
170 $REMAKE $xml ${xml}.queries tests/${test}.sh