diff options
Diffstat (limited to 'testsuite/makefiles/Makefile.several')
-rw-r--r-- | testsuite/makefiles/Makefile.several | 103 |
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 |