1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
#########################################################################
# #
# OCaml #
# #
# Xavier Clerc, SED, INRIA Rocquencourt #
# #
# Copyright 2010 Institut National de Recherche en Informatique et #
# en Automatique. All rights reserved. This file is distributed #
# under the terms of the Q Public License version 1.0. #
# #
#########################################################################
BASEDIR=../..
EXECNAME=program$(EXE)
ABCDFILES=backtrace.ml
OTHERFILES=backtrace2.ml raw_backtrace.ml \
backtrace_deprecated.ml backtrace_slots.ml
OTHERFILESNOINLINING=backtraces_and_finalizers.ml
default:
$(MAKE) byte
@case `dpkg-architecture -qDEB_BUILD_ARCH` in \
sparc|powerpc*) : ;; \
*) if $(BYTECODE_ONLY) ; then : ; else $(MAKE) native; fi ;; \
esac
.PHONY: byte
byte:
@for file in $(ABCDFILES); do \
rm -f program program.exe; \
$(OCAMLC) -g -o $(EXECNAME) $$file; \
for arg in a b c d ''; do \
printf " ... testing '$$file' with ocamlc and argument '$$arg':"; \
F="`basename $$file .ml`"; \
(OCAMLRUNPARAM=b=1 $(OCAMLRUN) $(EXECNAME) $$arg || true) \
>$$F.$$arg.byte.result 2>&1; \
$(DIFF) $$F.$$arg.reference $$F.$$arg.byte.result >/dev/null \
&& echo " => passed" || echo " => failed"; \
done; \
done
@for file in $(OTHERFILES); do \
rm -f program program.exe; \
$(OCAMLC) -g -o $(EXECNAME) $$file; \
printf " ... testing '$$file' with ocamlc:"; \
F="`basename $$file .ml`"; \
(OCAMLRUNPARAM=b=1 $(OCAMLRUN) $(EXECNAME) $$arg || true) \
>$$F.byte.result 2>&1; \
$(DIFF) $$F.reference $$F.byte.result >/dev/null \
&& echo " => passed" || echo " => failed"; \
done
.PHONY: native
native:
@for file in $(ABCDFILES); do \
rm -f program program.exe; \
$(OCAMLOPT) -g -o $(EXECNAME) $$file; \
for arg in a b c d ''; do \
printf " ... testing '$$file' with ocamlopt and argument '$$arg':"; \
F="`basename $$file .ml`"; \
(OCAMLRUNPARAM=b=1 ./$(EXECNAME) $$arg || true) \
>$$F.$$arg.native.result 2>&1; \
$(DIFF) $$F.$$arg.reference $$F.$$arg.native.result >/dev/null \
&& echo " => passed" || echo " => failed"; \
done; \
done
@for file in $(OTHERFILES); do \
rm -f program program.exe; \
$(OCAMLOPT) -g -o $(EXECNAME) $$file; \
printf " ... testing '$$file' with ocamlopt:"; \
F="`basename $$file .ml`"; \
(OCAMLRUNPARAM=b=1 ./$(EXECNAME) $$arg || true) \
>$$F.native.result 2>&1; \
$(DIFF) $$F.reference $$F.native.result >/dev/null \
&& echo " => passed" || echo " => failed"; \
done;
@for file in $(OTHERFILESNOINLINING); do \
rm -f program program.exe; \
$(OCAMLOPT) -inline 0 -g -o $(EXECNAME) $$file; \
printf " ... testing '$$file' with ocamlopt:"; \
F="`basename $$file .ml`"; \
(OCAMLRUNPARAM=b=1 ./$(EXECNAME) $$arg || true) \
>$$F.native.result 2>&1; \
$(DIFF) $$F.reference $$F.native.result >/dev/null \
&& echo " => passed" || echo " => failed"; \
done
.PHONY: promote
promote: defaultpromote
.PHONY: clean
clean: defaultclean
@rm -f *.result program program.exe
include $(BASEDIR)/makefiles/Makefile.common
|