X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=Remakefile.in;h=f8552fe32185270f60a771c6eccb677e0893f653;hp=cb9fc4a90996fdea476b74551813050cfb98a2a6;hb=aade6d9ba2e2b65e021de8a1c3a2d3874aa5742e;hpb=31514b441ce29f78c114e9d912ba09f37f91d257 diff --git a/Remakefile.in b/Remakefile.in index cb9fc4a..f8552fe 100644 --- a/Remakefile.in +++ b/Remakefile.in @@ -51,7 +51,7 @@ clean: done distclean: clean test_clean - rm -rf config.status configure config.log autom4te.cache .remake Remakefile remake + rm -rf config.status configure config.log autom4te.cache .remake Remakefile remake Makefile %.class: %.java javac $< @@ -72,115 +72,42 @@ distclean: clean test_clean fi %.cmx %.dep: - REMAKE="$(REMAKE) -v OCAMLNATIVE=-native" base=$* - dirname=${base%/*} - if test -f "$dirname".pack; then - #we are below a pack directory - PACKDIR=`basename $dirname` - PACKINCLUDE="-I $dirname" - elif test -f $*.pack -a -d $*; then - $(REMAKE) $*.pack - PACKINCLUDE="-I $*" - PACKDIR=`basename $*` - DOPACK=1 - fi - if test "$PACKDIR"; then - PACKNAME=`echo $PACKDIR | cut -b1 | tr a-z A-Z`${PACKDIR#?} - FORPACK="-for-pack $PACKNAME" - fi - - if test "$DOPACK"; then - modules=`cat $*.pack` - objects=`echo $modules | xargs tools/ocamlmoduledep.sh -native $PACKINCLUDE -I $(SRC) ` - else - $REMAKE $*.ml - modules=`$(OCAMLDEP) $(OCAMLFINDFLAGS) -modules $*.ml | cut -f 2- -d ':'` - objects=`tools/ocamlmoduledep.sh -native $PACKINCLUDE -I $(SRC) $modules` - fi - - $REMAKE $objects - - deps=`echo $objects | sed 's/[.]cm[ix]/.dep/g'` - rm -f $*.dep; touch $*.dep - $(REMAKE) $deps - for f in $deps; do - for g in `cat $f`; do - if grep -q $g $*.dep; then continue; fi - echo $g >> $*.dep - done - if grep -q $f $*.dep; then continue; fi - echo $f >> $*.dep - done - if test -f $*.mli; then $REMAKE -v PACKINCLUDE="$PACKINCLUDE" $*.cmi; fi - if test "$DOPACK"; then - sorted_objects=`cat $*.dep | grep "$PACKDIR" | sed 's/[.]dep/.cmx/' | xargs` - cat $*.dep | grep -v "$PACKDIR" > $*.tmp - mv $*.tmp $*.dep - $(OCAMLOPT) -o $@ -pack $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) $sorted_objects - else - $(OCAMLOPT) -o $@ $FORPACK -c $PACKINCLUDE $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) $*.ml - fi + target=$@ + NATIVE=-native + REMAKE="$(REMAKE) -v OCAMLNATIVE=$NATIVE" + OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)" + SRC=$(SRC) + COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)" + . tools/ocamldriver.sh %.cmo %.dep: - REMAKE="$(REMAKE)" base=$* - dirname=${base%/*} - if test -f "$dirname".pack; then - #we are below a pack directory - PACKDIR=`basename $dirname` - PACKINCLUDE="-I $dirname" - elif test -f $*.pack -a -d $*; then - PACKINCLUDE="-I $*" - PACKDIR=`basename $*` - DOPACK=1 - fi - - if test "$DOPACK"; then - modules=`cat $*.pack` - objects=`echo $modules | xargs tools/ocamlmoduledep.sh $PACKINCLUDE -I $(SRC) ` - $REMAKE $objects - else - $REMAKE $*.ml - modules=`$(OCAMLDEP) $(OCAMLFINDFLAGS) -modules $*.ml | cut -f 2- -d ':'` - objects=`tools/ocamlmoduledep.sh $PACKINCLUDE -I $(SRC) $modules` - $REMAKE $objects - fi - - deps=`echo $objects | sed 's/[.]cm[io]/.dep/g'` - rm -f $*.dep; touch $*.dep - $(REMAKE) $deps - for f in $deps; do - for g in `cat $f`; do - if grep -q $g $*.dep; then continue; fi - echo $g >> $*.dep - done - if grep -q $f $*.dep; then continue; fi - echo $f >> $*.dep - done - - if test -f $*.mli; then $REMAKE -v PACKINCLUDE="$PACKINCLUDE" $*.cmi; fi - if test "$DOPACK"; then - sorted_objects=`cat $*.dep | grep "$PACKDIR" | sed 's/[.]dep/.cmo/' | xargs` - cat $*.dep | grep -v "$PACKDIR" > $*.tmp - mv $*.tmp $*.dep - $(OCAMLC) -o $@ -pack $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS) $sorted_objects - else - $(OCAMLC) -o $@ -c $PACKINCLUDE $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS) $*.ml - fi + target=$@ + NATIVE= + REMAKE="$(REMAKE) -v OCAMLNATIVE=$NATIVE" + OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)" + SRC=$(SRC) + COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)" + . tools/ocamldriver.sh %.cmi: - $(REMAKE) $*.mli - if test -z "$(OCAMLNATIVE)"; then - $(OCAMLC) -c $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS) $(PACKINCLUDE) $*.mli + base=$* + target=$@ + NATIVE=$(OCAMLNATIVE) + REMAKE="$(REMAKE) -v OCAMLNATIVE=$NATIVE" + OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)" + SRC=$(SRC) + if test -z "$NATIVE"; then + COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)" else - $(OCAMLOPT) -c $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) $(PACKINCLUDE) $*.mli - + COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)" fi + . tools/ocamldriver.sh ## Tests -test: tools $(BIN) +test: for i in tests/*.xml do for j in 1 2 3 @@ -192,106 +119,16 @@ test: tools $(BIN) test_clean: rm -rf tests/*.summary tests/*.results/*_"$(PACKAGE)"_*.* -%.test1.summary: - base="$@" - base=${base%.xml.test1.summary} - $(REMAKE) "$base".xml "$base".xml.queries - rm -f "$@" - MSG="Test 1 (single query: tatoo vs java implementation)" - echo "$MSG" >> "$@" - echo "$MSG" - cat "$base".xml.queries | grep -v '^#' | while read q query; do - echo -n "$base"".xml $q $query ... " - REF="$base".xml.results/"$q"_jaxp.xml - $(REMAKE) "$REF" - OUTPUT="$base".xml.results/"$q"_"$(PACKAGE)"_test1.xml - LOG="$base".xml.results/"$q"_"$(PACKAGE)"_test1.log - cp "$@" /tmp - src/@PACKAGE_TARNAME@.native@EXE@ -s -d "$base".xml \ - "$query" -o "$OUTPUT" > "$LOG" 2>&1 - cp "$@" /tmp - echo "Query: $q : $query" >> "$@" - cat "$LOG" | grep '^STATS' >> "$@" - echo -n "Diff: " >> "$@" - if tools/xml_diff.native "$REF" "$OUTPUT" >/dev/null 2>&1; then - echo ok - echo ok >> "$@" - else - echo failed - echo failed >> "$@" - exit 1 - fi - echo '-------------------------------------------' >> "$@" - done - -%.test2.summary: - base="$@" - base=${base%.xml.test2.summary} - $(REMAKE) "$base".xml "$base".xml.queries - rm -f "$@" - MSG="Test 2 (all queries sequentially vs all queries in parallel)" - echo "$MSG" >> "$@" - echo "$MSG" - allqueries=`cat "$base".xml.queries | grep -v '^#' | while read q query; do echo "'$query'"; done` - echo -n "Running all queries ... " - OUTPUTA="$base".xml.results/test2a_"$(PACKAGE)".xml - LOG="$base".xml.results/test2a_"$(PACKAGE)".log - echo -n "sequential ... " - echo "$allqueries" | xargs src/@PACKAGE_TARNAME@.native@EXE@ -s -d "$base".xml \ - -o "$OUTPUTA" > "$LOG" 2>&1 - cat "$LOG" | grep '^STATS' >> "$@" - - OUTPUTB="$base".xml.results/test2b_"$(PACKAGE)".xml - LOG="$base".xml.results/test2b_"$(PACKAGE)".log - echo -n "parallel ... " - echo "$allqueries" | xargs src/@PACKAGE_TARNAME@.native@EXE@ -p -s -d "$base".xml \ - -o "$OUTPUTB" > "$LOG" 2>&1 - cat "$LOG" | grep '^STATS' >> "$@" - echo -n "Diff: " >> "$@" - if diff "$OUTPUTA" "$OUTPUTB" >/dev/null 2>&1; then - echo ok - echo ok >> "$@" - else - echo failed - echo failed >> "$@" - exit 1 - fi - echo '-------------------------------------------' >> "$@" - -%.test3.summary: - base="$@" - base=${base%.xml.test3.summary} - $(REMAKE) "$base".xml "$base".xml.queries - rm -f "$@" - MSG="Test 3 (multiple queries composition: sequential vs parallel)" - echo "$MSG" >> "$@" - echo "$MSG" - cat "$base".xml.queries | grep -v '^#' | while read q query; do - echo -n "$base"".xml $q $query ... sequential ... " - OUTPUTA="$base".xml.results/"$q"_"$(PACKAGE)"_test3a.xml - LOG="$base".xml.results/"$q"_"$(PACKAGE)"_test3a.log - src/@PACKAGE_TARNAME@.native@EXE@ -s -d -C "$base".xml \ - -o "$OUTPUTA" $(tools/split_path.native$(EXE) "$query") > "$LOG" 2>&1 - echo "Query: $q : $query" >> "$@" - cat "$LOG" | grep '^STATS' >> "$@" - - echo -n "parallel ... " - OUTPUTB="$base".xml.results/"$q"_"$(PACKAGE)"_test3a.xml - LOG="$base".xml.results/"$q"_"$(PACKAGE)"_test3a.log - src/@PACKAGE_TARNAME@.native@EXE@ -s -d -p -C "$base".xml \ - -o "$OUTPUTB" $(tools/split_path.native$(EXE) "$query") > "$LOG" 2>&1 - echo "Query: $q : $query" >> "$@" - cat "$LOG" | grep '^STATS' >> "$@" - - - echo -n "Diff: " >> "$@" - if diff "$OUTPUTA" "$OUTPUTB" >/dev/null 2>&1; then - echo ok - echo ok >> "$@" - else - echo failed - echo failed >> "$@" - exit 1 - fi - echo '-------------------------------------------' >> "$@" - done +%.summary: tools $(BIN) + target=$@ + base=$* + test=${base#*.xml.} + xml=${base%.$test} + REMAKE=$(REMAKE) + BIN=$(BIN) + SPLIT=tools/split_path.native$(EXE) + XMLDIFF=tools/xml_diff.native$(EXE) + PACKAGE=$(PACKAGE) + $REMAKE $xml ${xml}.queries tests/${test}.sh + rm -f "$target" + . tests/${test}.sh