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 tools: tools/xml_diff.native$(EXE) tools/XPathEval.class tools/split_path.native$(EXE)
31 Remakefile: Remakefile.in config.status
32 ./config.status Remakefile
34 configure config.status: configure.in
36 ./config.status --recheck
39 for dir in src tools; do
40 find $dir -name '*.cm*' -o -name '*.o' -o -name '*.byte' -o \
41 -name '*.native' -o -name '*.mll' -o -name '*.mly' -o \
42 -name '*.class' -o -name '*.depo' -o -name '*.depx' -o -name '*.ml.str' | while read file; do
45 rm -f "${file%.mll}.ml"
48 rm -f "${file%.mly}.ml" "${file%.mly}.mli"
51 rm -f "${file%.ml.str}.ml"
60 distclean: clean test_clean
61 rm -rf config.status configure config.log autom4te.cache .remake Remakefile remake Makefile
67 $(REMAKE) OCAMLNATIVE="-native" $*.cmx $*.depx
68 objects=`cat $*.depx | xargs | sed 's/[.]depx/.cmx/g'`
69 $(REMAKE) OCAMLNATIVE="-native" $objects #ensure all objects have been built
70 $(OCAMLOPT) -o $@ $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $*.cmx
74 $(REMAKE) OCAMLNATIVE="" $*.cmo $*.depo
75 objects=`cat $*.depo | xargs | sed 's/[.]depo/.cmo/g'`
76 $(REMAKE) OCAMLNATIVE="" $objects #ensure all objects have been built
77 $(OCAMLC) -o $@ $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $*.cmo
80 if test -f $*.mly; then
82 #Work around menhir warning
83 $(MENHIR) $*.mly 2>&1 | grep -v -- 'you are\|--infer'
84 #Work around crazy ulex chocking on identifier 'lexer', generated by menhir.
85 cat $*.ml | sed -e 's/\blexer\b/__lexer/g' > $*.tmp
87 elif test -f $*.mll; then
90 elif test -f $*.ml.str; then
92 echo -n 'let content = "' > $*.ml
93 sed -e 's/\(["\\]\)/\\\1/g' $*.ml.str | sed -e 's/^\(.*\)$/\1\\n\\/g' >> $*.ml
103 OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
104 OCAMLNATIVE=$(OCAMLNATIVE)
106 COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)"
107 . tools/ocamldriver.sh
115 OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
116 OCAMLNATIVE=$(OCAMLNATIVE)
118 COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)"
119 . tools/ocamldriver.sh
125 OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
127 OCAMLNATIVE=$(OCAMLNATIVE)
128 if test -z "$OCAMLNATIVE"; then
130 COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)"
132 COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)"
135 . tools/ocamldriver.sh
146 $(REMAKE) TEST=$(TEST) "$i".test"$j".summary
151 $(REMAKE) TEST=$(BYTE) real_test
153 $(REMAKE) TEST=$(BIN) real_test
158 rm -rf tests/*.summary tests/*.results/*_"$(PACKAGE)"_*.*
161 $(REMAKE) tools $(TEST)
168 SPLIT=tools/split_path.native$(EXE)
169 XMLDIFF=tools/xml_diff.native$(EXE)
171 $REMAKE $xml ${xml}.queries tests/${test}.sh