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 ODEP=tools/odeps.sh @OCAMLDEP@
9 PACKAGE=@PACKAGE_TARNAME@
10 BIN=src/@PACKAGE_TARNAME@.native@EXE@
15 tools: tools/xml_diff.native@EXE@ tools/XPathEval.class
17 Remakefile: Remakefile.in config.status
18 ./config.status Remakefile
20 configure config.status: configure.in
22 ./config.status --recheck
25 for dir in src tools; do
26 find $dir -name '*.cm*' -o -name '*.o' -o -name '*.byte' -o \
27 -name '*.native' -o -name '*.mll' -o -name '*.mly' -o \
28 -name '*.class' | while read file; do
31 rm -f "${file%.mll}.ml"
34 rm -f "${file%.mly}.ml" "${file%.mly}.mli"
43 distclean: clean test_clean
44 rm -rf config.status configure config.log autom4te.cache .remake Remakefile remake
47 javac ${1%.class}.java
54 @REMAKE@ -v OCAMLDEPNATIVE=-native "$obj"
55 SRCS=$(ls "$dir"/*.cmx | sed 's/\.cmx/.ml/g')
56 OBJS=$(@OCAMLDEP@ $OCAMLDEPNATIVE $OCAMLFINDFLAGS -modules $SRCS | tools/osort.sh cmx)
57 @OCAMLOPT@ -o "$1" @OCAMLFLAGS@ @OCAMLOPTFLAGS@ $OCAMLFINDLINKFLAGS $OCAMLFINDFLAGS $OBJS
66 for i in "$dir"/*.cmi; do
68 if test -f "${ibase}.ml" -o -d "${ibase}" -o -f "${ibase}.mly" -o -f "${ibase}.mll"; then
69 OBJS="$OBJS ${ibase}.cmo"
73 SRCS=$(ls "$dir"/*.cmo | sed 's/\.cmo/.ml/g')
74 SORTED_OBJS=$(@OCAMLDEP@ $OCAMLFINDFLAGS -modules $SRCS | tools/osort.sh cmo)
75 @OCAMLC@ -o "$1" @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDLINKFLAGS $OCAMLFINDFLAGS $SORTED_OBJS
81 if [ -f "$src" ]; then
83 DEPS=$( $ODEP -native $OCAMLFINDFLAGS $PACKINCLUDE "$src" )
84 echo "$DEPS" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE=-native -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target"
85 @OCAMLOPT@ -o "$target" -c @OCAMLFLAGS@ @OCAMLOPTFLAGS@ $OCAMLFORPACK $OCAMLFINDFLAGS $PACKINCLUDE "$src"
86 elif [ -d "$base" ]; then
87 modname=$(basename "$base")
88 packname=$(echo "$modname" | sed 's/\(.*\)/\u\1/')
89 OBJS=$(ls "$base"/*.ml | sed 's/\.ml/.cmx/g')
90 @REMAKE@ -v PACKINCLUDE="-I $base" -v OCAMLFORPACK="-for-pack $packname" $OBJS
91 SORTED_OBJS=$(@OCAMLDEP@ -native $OCAMLFINDFLAGS -I $base -modules "$base"/*.ml | tools/osort.sh cmx)
92 @OCAMLOPT@ -o "$target" -pack $SORTED_OBJS
93 elif [ -f "$base".mly ]; then
95 @OCAMLYACC@ "$base".mly
96 $ODEP $OCAMLDEPNATIVE $OCAMLFINDFLAGS "$src" | \
97 @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE=-native -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target"
98 @OCAMLOPT@ -o "$target" -c @OCAMLFLAGS@ @OCAMLOPTFLAGS@ $OCAMLFORPACK $OCAMLFINDFLAGS $PACKINCLUDE "$src"
104 base="${target%.cmo}"
106 if [ -f "$src" ]; then
108 DEPS=$( $ODEP $OCAMLFINDFLAGS $PACKINCLUDE "$src" )
109 echo "$DEPS" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -r "$target"
110 @OCAMLC@ -o "$target" -c @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDFLAGS $PACKINCLUDE "$src"
111 elif [ -d "$base" ]; then
112 modname=$(basename "$base")
113 packname=$(echo "$modname" | sed 's/\(.*\)/\u\1/')
114 OBJS=$(ls "$base"/*.ml | sed 's/\.ml/.cmo/g')
115 @REMAKE@ -v PACKINCLUDE="-I $base" $OBJS
116 SORTED_OBJS=$(@OCAMLDEP@ $OCAMLFINDFLAGS -I $base -modules "$base"/*.ml | tools/osort.sh cmo)
117 @OCAMLC@ -o "$target" -pack $SORTED_OBJS
118 elif [ -f "$base".mly ]; then
120 @OCAMLYACC@ "$base".mly
121 $ODEP $OCAMLFINDFLAGS $PACKINCLUDE "$src" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -r "$target"
122 @OCAMLC@ -o "$target" -c @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDFLAGS $PACKINCLUDE "$src"
130 if test -f "$base".mli; then
133 DEPS=$($ODEP $OCAMLDEPNATIVE $OCAMLFINDFLAGS $PACKINCLUDE "$src")
134 echo "$DEPS" | @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE="$OCAMLDEPNATIVE" -v OCAMLFORPACK="$OCAMLFORPACK" -r "$target"
135 if test -z "$OCAMLDEPNATIVE"; then
136 @OCAMLC@ -o "$target" -c @OCAMLFLAGS@ @OCAMLCFLAGS@ $OCAMLFINDFLAGS $PACKINCLUDE "$src"
138 @OCAMLOPT@ -o "$target" -c @OCAMLFLAGS@ @OCAMLOPTFLAGS@ $OCAMLFINDFLAGS $PACKINCLUDE "$src"
141 if test -z "$OCAMLDEPNATIVE"; then
146 @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE="$OCAMLDEPNATIVE" -v OCAMLFORPACK="$OCAMLFORPACK" "$obj"
154 @REMAKE@ "$i".summary
158 rm -rf tests/*.summary tests/*.results/*_"$PACKAGE".*
161 base="${1%.xml.summary}"
162 @REMAKE@ "$base".xml "$base".xml.queries tools "$BIN"
164 cat "$base".xml.queries | grep -v '^#' | while read q query; do
165 echo -n "$base"".xml $q $query ... "
166 REF="$base".xml.results/"$q"_jaxp.xml
168 OUTPUT="$base".xml.results/"$q"_"$PACKAGE".xml
169 LOG="$base".xml.results/"$q"_"$PACKAGE".log
170 src/@PACKAGE_TARNAME@.native@EXE@ -s "$base".xml \
171 "$query" "$OUTPUT" > "$LOG" 2>&1
172 echo "Query: $q : $query" >> "$1"
173 cat "$LOG" | grep '^STATS' >> "$1"
174 echo -n "Diff: " >> "$1"
175 tools/xml_diff.native "$REF" "$OUTPUT" >/dev/null 2>&1
176 if [ "$?" -eq 0 ]; then
183 echo '-------------------------------------------' >> "$1"