1 OCAMLFINDPACKAGES = "ulex,unix,expat,camlp4.macro"
2 OCAMLFINDSYNTAX = camlp4o
3 OCAMLFINDPPOPTS = $(addprefix "-ppopt ", @CAMLP4FLAGS@ -I include)
4 OCAMLFINDINCLUDES = $(addprefix "-I ", src)
5 OCAMLFINDFLAGS = -syntax $(OCAMLFINDSYNTAX) -package $(OCAMLFINDPACKAGES) \
6 $(OCAMLFINDPPOPTS) $(OCAMLFINDINCLUDES)
7 OCAMLFINDLINKFLAGS = -linkpkg
8 PACKAGE = @PACKAGE_TARNAME@
10 BIN = src/@PACKAGE_TARNAME@.native@EXE@
15 ODEPS = tools/odeps.sh $(OCAMLDEP)
18 OCAMLFLAGS = @OCAMLFLAGS@
19 OCAMLOPTFLAGS = @OCAMLOPTFLAGS@
20 OCAMLCFLAGS = @OCAMLCFLAGS@
21 OCAMLYACC = @OCAMLYACC@
25 tools: tools/xml_diff.native$(EXE) tools/XPathEval.class tools/split_path.native$(EXE)
27 Remakefile: Remakefile.in config.status
28 ./config.status Remakefile
30 configure config.status: configure.in
32 ./config.status --recheck
35 for dir in src tools; do
36 find $dir -name '*.cm*' -o -name '*.o' -o -name '*.byte' -o \
37 -name '*.native' -o -name '*.mll' -o -name '*.mly' -o \
38 -name '*.class' -o -name '*.dep' | while read file; do
41 rm -f "${file%.mll}.ml"
44 rm -f "${file%.mly}.ml" "${file%.mly}.mli"
53 distclean: clean test_clean
54 rm -rf config.status configure config.log autom4te.cache .remake Remakefile remake
59 %.native$(EXE): %.cmx %.dep
60 objects=`cat $*.dep | xargs | sed 's/[.]dep/.cmx/g'`
61 $(OCAMLOPT) -o $@ $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $<
63 %.byte$(EXE): %.cmo %.dep
64 objects=`cat $*.dep | xargs | sed 's/[.]dep/.cmo/g'`
65 $(OCAMLC) -o $@ $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $<
68 if test -f $*.mly; then
70 elif test -f $*.mll; then
78 REMAKE="$(REMAKE) -v OCAMLNATIVE=$NATIVE"
79 OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
81 COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)"
82 . tools/ocamldriver.sh
88 REMAKE="$(REMAKE) -v OCAMLNATIVE=$NATIVE"
89 OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)"
91 COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)"
92 . tools/ocamldriver.sh
96 if test -z "$(OCAMLNATIVE)"; then
97 $(OCAMLC) -c $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS) $(PACKINCLUDE) $*.mli
99 $(OCAMLOPT) -c $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) $(PACKINCLUDE) $*.mli
110 $(REMAKE) "$i".test"$j".summary
115 rm -rf tests/*.summary tests/*.results/*_"$(PACKAGE)"_*.*
119 base=${base%.xml.test1.summary}
120 $(REMAKE) "$base".xml "$base".xml.queries
122 MSG="Test 1 (single query: tatoo vs java implementation)"
125 cat "$base".xml.queries | grep -v '^#' | while read q query; do
126 echo -n "$base"".xml $q $query ... "
127 REF="$base".xml.results/"$q"_jaxp.xml
129 OUTPUT="$base".xml.results/"$q"_"$(PACKAGE)"_test1.xml
130 LOG="$base".xml.results/"$q"_"$(PACKAGE)"_test1.log
132 src/@PACKAGE_TARNAME@.native@EXE@ -s -d "$base".xml \
133 "$query" -o "$OUTPUT" > "$LOG" 2>&1
135 echo "Query: $q : $query" >> "$@"
136 cat "$LOG" | grep '^STATS' >> "$@"
137 echo -n "Diff: " >> "$@"
138 if tools/xml_diff.native "$REF" "$OUTPUT" >/dev/null 2>&1; then
146 echo '-------------------------------------------' >> "$@"
151 base=${base%.xml.test2.summary}
152 $(REMAKE) "$base".xml "$base".xml.queries
154 MSG="Test 2 (all queries sequentially vs all queries in parallel)"
157 allqueries=`cat "$base".xml.queries | grep -v '^#' | while read q query; do echo "'$query'"; done`
158 echo -n "Running all queries ... "
159 OUTPUTA="$base".xml.results/test2a_"$(PACKAGE)".xml
160 LOG="$base".xml.results/test2a_"$(PACKAGE)".log
161 echo -n "sequential ... "
162 echo "$allqueries" | xargs src/@PACKAGE_TARNAME@.native@EXE@ -s -d "$base".xml \
163 -o "$OUTPUTA" > "$LOG" 2>&1
164 cat "$LOG" | grep '^STATS' >> "$@"
166 OUTPUTB="$base".xml.results/test2b_"$(PACKAGE)".xml
167 LOG="$base".xml.results/test2b_"$(PACKAGE)".log
168 echo -n "parallel ... "
169 echo "$allqueries" | xargs src/@PACKAGE_TARNAME@.native@EXE@ -p -s -d "$base".xml \
170 -o "$OUTPUTB" > "$LOG" 2>&1
171 cat "$LOG" | grep '^STATS' >> "$@"
172 echo -n "Diff: " >> "$@"
173 if diff "$OUTPUTA" "$OUTPUTB" >/dev/null 2>&1; then
181 echo '-------------------------------------------' >> "$@"
185 base=${base%.xml.test3.summary}
186 $(REMAKE) "$base".xml "$base".xml.queries
188 MSG="Test 3 (multiple queries composition: sequential vs parallel)"
191 cat "$base".xml.queries | grep -v '^#' | while read q query; do
192 echo -n "$base"".xml $q $query ... sequential ... "
193 OUTPUTA="$base".xml.results/"$q"_"$(PACKAGE)"_test3a.xml
194 LOG="$base".xml.results/"$q"_"$(PACKAGE)"_test3a.log
195 src/@PACKAGE_TARNAME@.native@EXE@ -s -d -C "$base".xml \
196 -o "$OUTPUTA" $(tools/split_path.native$(EXE) "$query") > "$LOG" 2>&1
197 echo "Query: $q : $query" >> "$@"
198 cat "$LOG" | grep '^STATS' >> "$@"
200 echo -n "parallel ... "
201 OUTPUTB="$base".xml.results/"$q"_"$(PACKAGE)"_test3a.xml
202 LOG="$base".xml.results/"$q"_"$(PACKAGE)"_test3a.log
203 src/@PACKAGE_TARNAME@.native@EXE@ -s -d -p -C "$base".xml \
204 -o "$OUTPUTB" $(tools/split_path.native$(EXE) "$query") > "$LOG" 2>&1
205 echo "Query: $q : $query" >> "$@"
206 cat "$LOG" | grep '^STATS' >> "$@"
209 echo -n "Diff: " >> "$@"
210 if diff "$OUTPUTA" "$OUTPUTB" >/dev/null 2>&1; then
218 echo '-------------------------------------------' >> "$@"