X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=Remakefile.in;h=f5ba98dba47ff5aef9c53147b2d5bb68597c71bb;hp=d173e8354efa3d2312315efac18531899bcfd4cb;hb=c6327064b172a54ee7fc03ee54d398fb34f00142;hpb=0ef88e3bb1cc9fea830978723813dd8d23837039 diff --git a/Remakefile.in b/Remakefile.in index d173e83..f5ba98d 100644 --- a/Remakefile.in +++ b/Remakefile.in @@ -6,10 +6,13 @@ OCAMLFINDFLAGS = -syntax $(OCAMLFINDSYNTAX) -package $(OCAMLFINDPACKAGES) \ $(OCAMLFINDPPOPTS) $(OCAMLFINDINCLUDES) OCAMLFINDLINKFLAGS = -linkpkg ODEP=tools/odeps.sh @OCAMLDEP@ -BIN=@PACKAGE_TARNAME@ +PACKAGE=@PACKAGE_TARNAME@ +BIN=src/@PACKAGE_TARNAME@.native@EXE@ EXE=@EXE@ +all: $(BIN) +tools: tools/xml_diff.native@EXE@ tools/XPathEval.class Remakefile: Remakefile.in config.status ./config.status Remakefile @@ -18,22 +21,47 @@ configure config.status: configure.in autoconf ./config.status --recheck -%.native: +clean: + for dir in src tools; do + find $dir -name '*.cm*' -o -name '*.o' -o -name '*.byte' -o \ + -name '*.native' -o -name '*.mll' -o -name '*.mly' -o \ + -name '*.class' | while read file; do + case "$file" in + *.mll) + rm -f "${file%.mll}.ml" + ;; + *.mly) + rm -f "${file%.mly}.ml" "${file%.mly}.mli" + ;; + *) + rm -f "$file" + ;; + esac + done + done + +distclean: clean test_clean + rm -rf config.status configure config.log autom4te.cache .remake Remakefile remake + +%.class: %.java + javac ${1%.class}.java + +%.native@EXE@: base=${1%.native} src=${base}.ml obj=${base}.cmx dir=$(dirname $1) - ./remake -v OCAMLDEPNATIVE=-native "$obj" + @REMAKE@ -v OCAMLDEPNATIVE=-native "$obj" SRCS=$(ls "$dir"/*.cmx | sed 's/\.cmx/.ml/g') OBJS=$(@OCAMLDEP@ $OCAMLDEPNATIVE $OCAMLFINDFLAGS -modules $SRCS | tools/osort.sh cmx) @OCAMLOPT@ -o "$1" @OCAMLFLAGS@ @OCAMLOPTFLAGS@ $OCAMLFINDLINKFLAGS $OCAMLFINDFLAGS $OBJS -%.byte: +%.byte@EXE@: base=${1%.byte} src=${base}.ml obj=${base}.cmo dir=$(dirname $1) - ./remake "$obj" + @REMAKE@ "$obj" OBJS="" for i in "$dir"/*.cmi; do ibase=${i%.cmi} @@ -41,7 +69,7 @@ configure config.status: configure.in OBJS="$OBJS ${ibase}.cmo" fi done - ./remake $OBJS + @REMAKE@ $OBJS SRCS=$(ls "$dir"/*.cmo | sed 's/\.cmo/.ml/g') SORTED_OBJS=$(@OCAMLDEP@ $OCAMLFINDFLAGS -modules $SRCS | tools/osort.sh cmo) @OCAMLC@ -o "$1" @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDLINKFLAGS $OCAMLFINDFLAGS $SORTED_OBJS @@ -51,22 +79,22 @@ configure config.status: configure.in base="${target%.cmx}" src="${base}.ml" if [ -f "$src" ]; then - ./remake "$src" + @REMAKE@ "$src" DEPS=$( $ODEP -native $OCAMLFINDFLAGS $PACKINCLUDE "$src" ) - echo "$DEPS" | ./remake -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE=-native -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target" + echo "$DEPS" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE=-native -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target" @OCAMLOPT@ -o "$target" -c @OCAMLFLAGS@ @OCAMLOPTFLAGS@ $OCAMLFORPACK $OCAMLFINDFLAGS $PACKINCLUDE "$src" elif [ -d "$base" ]; then modname=$(basename "$base") packname=$(echo "$modname" | sed 's/\(.*\)/\u\1/') OBJS=$(ls "$base"/*.ml | sed 's/\.ml/.cmx/g') - ./remake -v PACKINCLUDE="-I $base" -v OCAMLFORPACK="-for-pack $packname" $OBJS + @REMAKE@ -v PACKINCLUDE="-I $base" -v OCAMLFORPACK="-for-pack $packname" $OBJS SORTED_OBJS=$(@OCAMLDEP@ -native $OCAMLFINDFLAGS -I $base -modules "$base"/*.ml | tools/osort.sh cmx) @OCAMLOPT@ -o "$target" -pack $SORTED_OBJS elif [ -f "$base".mly ]; then - ./remake "$base".mly + @REMAKE@ "$base".mly @OCAMLYACC@ "$base".mly $ODEP $OCAMLDEPNATIVE $OCAMLFINDFLAGS "$src" | \ - ./remake -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE=-native -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target" + @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE=-native -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target" @OCAMLOPT@ -o "$target" -c @OCAMLFLAGS@ @OCAMLOPTFLAGS@ $OCAMLFORPACK $OCAMLFINDFLAGS $PACKINCLUDE "$src" fi @@ -76,21 +104,21 @@ configure config.status: configure.in base="${target%.cmo}" src="${base}.ml" if [ -f "$src" ]; then - ./remake "$src" + @REMAKE@ "$src" DEPS=$( $ODEP $OCAMLFINDFLAGS $PACKINCLUDE "$src" ) - echo "$DEPS" | ./remake -v PACKINCLUDE="$PACKINCLUDE" -r "$target" + echo "$DEPS" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -r "$target" @OCAMLC@ -o "$target" -c @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDFLAGS $PACKINCLUDE "$src" elif [ -d "$base" ]; then modname=$(basename "$base") packname=$(echo "$modname" | sed 's/\(.*\)/\u\1/') OBJS=$(ls "$base"/*.ml | sed 's/\.ml/.cmo/g') - ./remake -v PACKINCLUDE="-I $base" $OBJS + @REMAKE@ -v PACKINCLUDE="-I $base" $OBJS SORTED_OBJS=$(@OCAMLDEP@ $OCAMLFINDFLAGS -I $base -modules "$base"/*.ml | tools/osort.sh cmo) @OCAMLC@ -o "$target" -pack $SORTED_OBJS elif [ -f "$base".mly ]; then - ./remake "$base".mly + @REMAKE@ "$base".mly @OCAMLYACC@ "$base".mly - $ODEP $OCAMLFINDFLAGS $PACKINCLUDE "$src" | ./remake -v PACKINCLUDE="$PACKINCLUDE" -r "$target" + $ODEP $OCAMLFINDFLAGS $PACKINCLUDE "$src" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -r "$target" @OCAMLC@ -o "$target" -c @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDFLAGS $PACKINCLUDE "$src" fi @@ -100,10 +128,10 @@ configure config.status: configure.in target="$1" base=${target%.cmi} if test -f "$base".mli; then - ./remake "$base".mli + @REMAKE@ "$base".mli src=${base}.mli DEPS=$($ODEP $OCAMLDEPNATIVE $OCAMLFINDFLAGS $PACKINCLUDE "$src") - echo "$DEPS" | ./remake -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE="$OCAMLDEPNATIVE" -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target" + echo "$DEPS" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE="$OCAMLDEPNATIVE" -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target" if test -z "$OCAMLDEPNATIVE"; then @OCAMLC@ -o "$target" -c @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDFLAGS $PACKINCLUDE "$src" else @@ -115,24 +143,42 @@ configure config.status: configure.in else obj=${base}.cmx fi - ./remake -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE="$OCAMLDEPNATIVE" -v OCAMLFORPACK="$OCAMLFORPACK" "$obj" + @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE="$OCAMLDEPNATIVE" -v OCAMLFORPACK="$OCAMLFORPACK" "$obj" fi -clean: - find src -name '*.cm*' -o -name '*.o' -o -name '*.byte' -o -name '*.native' -o -name '*.mll' -o -name '*.mly' | while read file; do - case "$file" in - *.mll) - rm -f "${file%.mll}.ml" - ;; - *.mly) - rm -f "${file%.mly}.ml" "${file%.mly}.mli" - ;; - *) - rm -f "$file" - ;; - esac +## Tests + +test: + for i in tests/*.xml + do + @REMAKE@ "$i".summary done -distclean: clean - rm -rf config.status configure config.log autom4te.cache .remake Remakefile remake +test_clean: + rm -rf tests/*.summary tests/*.results/*_"$PACKAGE".* +%.summary: + base="${1%.xml.summary}" + @REMAKE@ "$base".xml "$base".xml.queries tools "$BIN" + rm -f "$1" + 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".xml + LOG="$base".xml.results/"$q"_"$PACKAGE".log + src/@PACKAGE_TARNAME@.native@EXE@ -s "$base".xml \ + "$query" "$OUTPUT" > "$LOG" 2>&1 + echo "Query: $q : $query" >> "$1" + cat "$LOG" | grep '^STATS' >> "$1" + echo -n "Diff: " >> "$1" + tools/xml_diff.native "$REF" "$OUTPUT" >/dev/null 2>&1 + if [ "$?" -eq 0 ]; then + echo ok + echo ok >> "$1" + else + echo failed + echo failed >> "$1" + fi + echo '-------------------------------------------' >> "$1" + done