summaryrefslogtreecommitdiff
path: root/testsuite/makefiles/Makefile.several
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/makefiles/Makefile.several')
-rw-r--r--testsuite/makefiles/Makefile.several103
1 files changed, 74 insertions, 29 deletions
diff --git a/testsuite/makefiles/Makefile.several b/testsuite/makefiles/Makefile.several
index f4a675f111..d4a5caac34 100644
--- a/testsuite/makefiles/Makefile.several
+++ b/testsuite/makefiles/Makefile.several
@@ -1,4 +1,14 @@
-# $Id: Makefile.several 12959 2012-09-27 13:12:51Z maranget $
+#########################################################################
+# #
+# 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. #
+# #
+#########################################################################
CC=$(NATIVECC) $(NATIVECCCOMPOPTS)
FC=$(FORTAN_COMPILER)
@@ -8,54 +18,89 @@ CMA_FILES=$(LIBRARIES:=.cma)
CMXA_FILES=$(LIBRARIES:=.cmxa)
O_FILES=$(C_FILES:=.o)
-CUSTOM_FLAG=`if [ -z "$(C_FILES)" ]; then true; else echo '-custom'; fi`
+CUSTOM_FLAG=`if [ -n "$(C_FILES)" ]; then echo '-custom'; fi`
ADD_CFLAGS+=$(CUSTOM_FLAG)
-FORTRAN_LIB=`if [ -z "$(F_FILES)" ]; then true; else echo '$(FORTRAN_LIBRARY)'; fi`
+MYRUNTIME=`if [ -z "$(C_FILES)" ]; then echo '$(OCAMLRUN)'; fi`
+FORTRAN_LIB=`if [ -n "$(F_FILES)" ]; then echo '$(FORTRAN_LIBRARY)'; fi`
ADD_CFLAGS+=$(FORTRAN_LIB)
ADD_OPTFLAGS+=$(FORTRAN_LIB)
-ADD_COMPFLAGS+=-nojoin
+.PHONY: check
check:
- @if [ -n "$(FORTRAN_COMPILER)" -o -z "$(F_FILES)" ]; then $(MAKE) run-all; fi
+ @if [ -n "$(FORTRAN_COMPILER)" -o -z "$(F_FILES)" ]; then \
+ $(SET_LD_PATH) $(MAKE) run-all; \
+ fi
+.PHONY: run-all
run-all:
@for file in $(C_FILES); do \
- $(CC) -c -I$(PREFIX)/lib/ocaml/jocaml $$file.c; \
+ $(CC) -c -I$(PREFIX)/lib/ocaml/caml $$file.c; \
done;
@for file in $(F_FILES); do \
- $(FORTRAN_COMPILER) -c -I$(PREFIX)/lib/ocaml/jocaml $$file.f; \
+ $(FORTRAN_COMPILER) -c -I$(PREFIX)/lib/ocaml/caml $$file.f; \
done;
@for file in *.ml; do \
+ if [ -f `basename $$file ml`precheck ]; then \
+ CANKILL=$(CANKILL) sh `basename $$file ml`precheck || continue; \
+ fi; \
printf " ... testing '$$file':"; \
- $(MAKE) run-file DESC=jocamlc COMP='$(OCAMLC)' COMPFLAGS='$(ADD_COMPFLAGS) $(ADD_CFLAGS) $(O_FILES) -w a $(CMA_FILES) -I $(BASEDIR)/lib $(CMO_FILES)' FILE=$$file PROGRAM_ARGS=$(PROGRAM_ARGS) && \
- if [ -z "$(BYTECODE_ONLY)" ]; then \
- $(MAKE) run-file DESC=jocamlopt COMP=$(PREFIX)/bin/jocamlopt COMPFLAGS='$(ADD_COMPFLAGS) $(ADD_OPTFLAGS) $(O_FILES) -w a $(CMXA_FILES) -I $(BASEDIR)/lib $(CMX_FILES)' FILE=$$file PROGRAM_ARGS=$(PROGRAM_ARGS); \
- fi && \
- if [ ! -z $(UNSAFE) ]; then \
- $(MAKE) run-file DESC=jocamlc-unsafe COMP=$(PREFIX)/bin/jocamlc COMPFLAGS='-w a -unsafe -I $(BASEDIR)/lib $(CMO_FILES)' FILE=$$file && \
- if [ -z "$(BYTECODE_ONLY)" ]; then \
- $(MAKE) run-file DESC=jocamlopt-unsafe COMP=$(PREFIX)/bin/jocamlopt COMPFLAGS='-w a -unsafe -I $(BASEDIR)/lib $(CMX_FILES)' FILE=$$file; \
- fi; \
- fi && \
- echo " => passed"; \
- done;
+ $(MAKE) run-file DESC=ocamlc COMP='$(OCAMLC)' \
+ RUNTIME='$(MYRUNTIME)' \
+ COMPFLAGS='-w a $(ADD_COMPFLAGS) $(ADD_CFLAGS) $(O_FILES) \
+ $(CMA_FILES) -I $(OTOPDIR)/testsuite/lib \
+ $(CMO_FILES)' \
+ FILE=$$file PROGRAM_ARGS=$(PROGRAM_ARGS) \
+ && \
+ if $(BYTECODE_ONLY); then : ; else \
+ $(MAKE) run-file DESC=ocamlopt COMP='$(OCAMLOPT)' \
+ RUNTIME= \
+ COMPFLAGS='-w a $(ADD_COMPFLAGS) $(ADD_OPTFLAGS) \
+ $(O_FILES) $(CMXA_FILES) \
+ -I $(OTOPDIR)/testsuite/lib $(CMX_FILES)' \
+ FILE=$$file PROGRAM_ARGS=$(PROGRAM_ARGS); \
+ fi \
+ && \
+ if [ -n "$(UNSAFE)" ]; then \
+ $(MAKE) run-file DESC=ocamlc-unsafe COMP='$(OCAMLC)' \
+ RUNTIME='$(MYRUNTIME)' \
+ COMPFLAGS='-w a -unsafe $(ADD_COMPFLAGS) $(ADD_CFLAGS) \
+ $(O_FILES) $(CMA_FILES) \
+ -I $(OTOPDIR)/testsuite/lib $(CMO_FILES)' \
+ FILE=$$file \
+ && \
+ if $(BYTECODE_ONLY); then : ; else \
+ $(MAKE) run-file DESC=ocamlopt-unsafe COMP='$(OCAMLOPT)' \
+ RUNTIME= \
+ COMPFLAGS='-w a -unsafe $(ADD_COMPFLAGS) $(ADD_OPTFLAGS)\
+ $(O_FILES) $(CMXA_FILES) \
+ -I $(OTOPDIR)/testsuite/lib $(CMX_FILES)' \
+ FILE=$$file; \
+ fi; \
+ fi \
+ && echo " => passed" || echo " => failed"; \
+ done
+.PHONY: run-file
run-file:
@printf " $(DESC)"
@rm -f program program.exe
- @$(COMP) $(COMPFLAGS) $(FILE) -o program
- @if [ -f `basename $(FILE) ml`runner ]; then \
- sh `basename $(FILE) ml`runner; \
+ @$(COMP) $(COMPFLAGS) $(FILE) -o program$(EXE)
+ @F="`basename $(FILE) .ml`"; \
+ if [ -f $$F.runner ]; then \
+ RUNTIME="$(RUNTIME)" sh $$F.runner; \
else \
- ./program $(PROGRAM_ARGS) > `basename $(FILE) ml`result; \
- fi || (echo " => failed" && exit 1)
- @if [ -f `basename $(FILE) ml`checker ]; then \
- sh `basename $(FILE) ml`checker; \
+ $(RUNTIME) ./program$(EXE) $(PROGRAM_ARGS) >$$F.result; \
+ fi \
+ && \
+ if [ -f $$F.checker ]; then \
+ DIFF="$(DIFF)" SORT="$(SORT)" sh $$F.checker; \
else \
- $(DIFF) `basename $(FILE) ml`reference `basename $(FILE) ml`result > /dev/null; \
- fi || (echo " => failed" && exit 1)
+ $(DIFF) $$F.reference $$F.result >/dev/null; \
+ fi
+.PHONY: promote
promote: defaultpromote
+.PHONY: clean
clean: defaultclean
- @rm -f *.result ./program program.exe
+ @rm -f *.result program program.exe