OCAMLCFLAGS = @OCAMLCFLAGS@
MENHIR = @MENHIR@
-.PHONY: clean distclean
+.PHONY:clean real_test test_native test
all: $(BIN)
%.native$(EXE):
$(REMAKE) OCAMLNATIVE="-native" $*.cmx $*.depx
- objects=`cat $*.depx | xargs | sed 's/[.]depx/.cmx/g'`
+ objects=`cat $*.depx | xargs | sed 's/[.]depx/.cmx/g'`
$(REMAKE) OCAMLNATIVE="-native" $objects #ensure all objects have been built
- $(OCAMLOPT) -o $@ $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $*.cmx
+ $(OCAMLOPT) -o $@ $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDLINKFLAGS) $(OCAMLFINDFLAGS) $objects $*.cmx
%.byte$(EXE):
COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)"
. tools/ocamldriver.sh
+
%.cmo %.depo:
base=$*
target=$@
## Tests
-test_byte: tools $(BYTE)
- $(REMAKE) TEST=$(BYTE) real_test
-
-test_native: tools $(BIN)
- $(REMAKE) TEST=$(BIN) real_test
-
-test: test_native
real_test:
+ echo $(TEST)
for i in tests/*.xml
do
for j in 1 2 3
done
done
+test_byte:
+ $(REMAKE) TEST=$(BYTE) real_test
+test_native:
+ $(REMAKE) TEST=$(BIN) real_test
+
+test: test_native
+
test_clean:
rm -rf tests/*.summary tests/*.results/*_"$(PACKAGE)"_*.*
%.summary:
+ $(REMAKE) tools $(TEST)
target=$@
base=$*
test=${base#*.xml.}
MODULES=""
NATIVE=0
INTER=0
+OCAMLWHERE=$(ocamlc -where)
while true; do
case $1 in
-I)
- dir=`echo "$2" | sed "s:^+:$(ocamlc -where)/:"`
+ dir=`echo "$2" | sed "s:^+:${OCAMLWHERE}/:"`
INCLUDES="$INCLUDES
$dir"
shift
ext=cmo
fi
+
for MODULE in $MODULES; do
- module="$(echo $MODULE | cut -b1 | tr A-Z a-z)$(echo $MODULE | cut -b2-)"
+ module="$(echo ${MODULE} | sed -e 's:\(.*\):\l\1:')"
echo "$INCLUDES" | while read include; do
if test -z "$include"; then continue; fi
- base="$include/$module"
+ base="${include}/${module}"
if test \( "$INTER" = "1" \) -a \( -f "$base".mli \) ; then
## if we want to depend only on cmi of a module
- /bin/echo -n "$base"."cmi "
+ /bin/echo -n "${base}"."cmi "
elif test -f "$base".ml -o -f "$base".mly -o -f "$base".mll -o -f "$base".pack -o -f "$base".ml.str; then
## else we depend on the implementation
- /bin/echo -n "$base"."$ext "
+ /bin/echo -n "${base}"."${ext} "
break
- elif test -f "$base".mli; then
+ elif test -f "${base}".mli; then
## and fall back on depending on the cmi if the cmx is not available
## (which prevents cross-module inlining in the case of cmx)
- /bin/echo -n "$base"."cmi "
+ /bin/echo -n "${base}"."cmi "
break
fi
done