From bc3b353cb2f26cf10aa5c5caebddf6d3d5b1e318 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 21 Sep 2018 22:31:29 +0200 Subject: [PATCH] fix camlp4 in another directory --- Makefile | 11 ++++++----- configure | 13 ++++++++++++- tests/Makefile | 2 +- tests/camlp4-comments/Makefile | 2 +- tests/camlp4-exclude-file/Makefile | 2 +- tests/camlp4-exclude/Makefile | 2 +- tests/camlp4-instrument-fast/Makefile | 2 +- tests/camlp4-instrument/Makefile | 2 +- tests/combine-expr/Makefile | 2 +- tests/ppx-comments/Makefile | 2 +- tests/ppx-exclude-file/Makefile | 2 +- tests/ppx-exclude/Makefile | 2 +- tests/ppx-instrument-fast/Makefile | 2 +- tests/ppx-instrument/Makefile | 2 +- tests/report/Makefile | 2 +- 15 files changed, 31 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index b0980ee..6697922 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ PATH_BUILD=$(PATH_BASE)/_build PATH_OCAMLDOC=$(PATH_BASE)/ocamldoc PATH_SRC=$(PATH_BASE)/src PATH_TESTS=$(PATH_BASE)/tests -PATH_INSTALL=$(PATH_OCAML_PREFIX)/lib/ocaml/bisect +PATH_INSTALL=$(PREFIX)/lib/ocaml/bisect # DEFINITIONS @@ -33,7 +33,8 @@ PATH_INSTALL=$(PATH_OCAML_PREFIX)/lib/ocaml/bisect PROJECT_NAME=bisect OCAMLBUILD=ocamlbuild OCAMLBUILD_ENV=WARNINGS=$(WARNINGS) PATH_OCAML_PREFIX=$(PATH_OCAML_PREFIX) -OCAMLBUILD_FLAGS=-classic-display -no-links +CAMLP4_INCLUDE=$(shell test -z $(CAMLP4_LIBDIR) || echo "-cflags -I,$(CAMLP4_LIBDIR)") +OCAMLBUILD_FLAGS=-classic-display -no-links $(CAMLP4_INCLUDE) MODULES_ODOCL=$(PROJECT_NAME).odocl MODULES_MLPACK=$(PROJECT_NAME).mlpack MODULES_MLPACK_PP=$(PROJECT_NAME)_pp.mlpack @@ -80,11 +81,11 @@ veryclean: clean rm -f $(PATH_OCAMLDOC)/*.html $(PATH_OCAMLDOC)/*.css install: FORCE - cp $(PATH_BUILD)/src/report/report.byte $(PATH_OCAML_PREFIX)/bin/bisect-report; \ + cp $(PATH_BUILD)/src/report/report.byte $(PREFIX)/bin/bisect-report; \ if [ "$(PPX)" = "TRUE" ]; then \ - cp $(PATH_BUILD)/src/syntax/bisect_ppx.byte $(PATH_OCAML_PREFIX)/bin; \ + cp $(PATH_BUILD)/src/syntax/bisect_ppx.byte $(PREFIX)/bin; \ fi; \ - (which ocamlopt && cp $(PATH_BUILD)/src/report/report.native $(PATH_OCAML_PREFIX)/bin/bisect-report.opt || true); \ + (which ocamlopt && cp $(PATH_BUILD)/src/report/report.native $(PREFIX)/bin/bisect-report.opt || true); \ if [ -x "$(PATH_OCAMLFIND)" ]; then \ $(PATH_OCAMLFIND) query $(PROJECT_NAME) && $(PATH_OCAMLFIND) remove $(PROJECT_NAME) || true; \ $(PATH_OCAMLFIND) install $(PROJECT_NAME) META -optional \ diff --git a/configure b/configure index bb7ebf4..43ef46b 100755 --- a/configure +++ b/configure @@ -21,7 +21,9 @@ # default values ocamlbuild=`which ocamlbuild || echo '/usr/local/bin/ocamlbuild'` bin_path=`dirname $ocamlbuild` +prefix='' ocaml_prefix=`dirname $bin_path` +camlp4_prefix=`dirname $(dirname $(which camlp4of))` ocamlfind=`which ocamlfind 2> /dev/null || echo ''` native_dynlink='TRUE' devel='FALSE' @@ -32,8 +34,12 @@ ppx='FALSE' while [ $# -gt 0 ] do case "$1" in + -prefix) + prefix="$2"; shift;; -ocaml-prefix) ocaml_prefix="$2"; shift;; + -camlp4-prefix) + camlp4_prefix="$2"; shift;; -ocamlfind) ocamlfind="$2"; shift;; -no-native-dynlink) @@ -45,7 +51,7 @@ do -ppx) ppx='TRUE';; *) - echo "usage: $0 [-ocaml-prefix ] [-ocamlfind ] [-no-native-dynlink] [-devel]"; + echo "usage: $0 [-prefix ] [-ocaml-prefix ] [-camlp4-prefix ] [-ocamlfind ] [-no-native-dynlink] [-devel]"; exit 1;; esac shift @@ -57,6 +63,9 @@ if [ "$no_camlp4" = "TRUE" -a "$ppx" = "FALSE" ]; then exit 1 fi +# prefix default value +test -z $prefix && prefix=$ocaml_prefix + # make options make_quiet=`make -f - < Makefile.config +echo "PREFIX=$prefix" >> Makefile.config echo "PATH_OCAML_PREFIX=$ocaml_prefix" >> Makefile.config +echo "PATH_CAMLP4_PREFIX=$camlp4_prefix" >> Makefile.config echo "PATH_OCAMLFIND=$ocamlfind" >> Makefile.config echo "NATIVE_DYNLINK=$native_dynlink" >> Makefile.config echo "WARNINGS=$devel" >> Makefile.config diff --git a/tests/Makefile b/tests/Makefile index 1aba27f..9642323 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -41,7 +41,7 @@ one: FORCE else \ echo "Running tests for '$(NAME)'..." | tee -a _log; \ (cd $(NAME) && \ - $(MAKE) PATH_OCAML_BIN=$(PATH_OCAML_PREFIX)/bin \ + $(MAKE) PATH_OCAML_BIN=$(PATH_OCAML_PREFIX)/bin PATH_CAMLP4_PREFIX=$(PATH_CAMLP4_PREFIX) \ COMPILER=ocamlc EXECUTABLE=bytecode RUN=./ LIB_EXT=cma EXE_SUFFIX='' \ REPORT=../../_build/src/report/report.byte && \ cd ..) || echo '*** error' >> _log; \ diff --git a/tests/camlp4-comments/Makefile b/tests/camlp4-comments/Makefile index 33fca72..a918118 100644 --- a/tests/camlp4-comments/Makefile +++ b/tests/camlp4-comments/Makefile @@ -2,7 +2,7 @@ default: @rm -fr *.result *.cmp @for file in *.ml; do \ echo " testing '$$file' ..."; \ - $(PATH_OCAML_BIN)/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -o $$file.result; \ + $(PATH_CAMLP4_PREFIX)/bin/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -o $$file.result; \ diff -q $$file.reference $$file.result || exit 1; \ done @rm -fr *.result *.cmp diff --git a/tests/camlp4-exclude-file/Makefile b/tests/camlp4-exclude-file/Makefile index ab13983..e2520fa 100644 --- a/tests/camlp4-exclude-file/Makefile +++ b/tests/camlp4-exclude-file/Makefile @@ -2,7 +2,7 @@ default: @rm -fr *.result *.cmp @for file in *.ml; do \ echo " testing '$$file' ..."; \ - $(PATH_OCAML_BIN)/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -exclude-file exclusions -o $$file.result; \ + $(PATH_CAMLP4_PREFIX)/bin/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -exclude-file exclusions -o $$file.result; \ diff -q $$file.reference $$file.result || exit 1; \ done @rm -fr *.result *.cmp diff --git a/tests/camlp4-exclude/Makefile b/tests/camlp4-exclude/Makefile index 18aada4..d71a7bc 100644 --- a/tests/camlp4-exclude/Makefile +++ b/tests/camlp4-exclude/Makefile @@ -2,7 +2,7 @@ default: @rm -fr *.result *.cmp @for file in *.ml; do \ echo " testing '$$file' ..."; \ - $(PATH_OCAML_BIN)/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -exclude 'f.*' -o $$file.result; \ + $(PATH_CAMLP4_PREFIX)/bin/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -exclude 'f.*' -o $$file.result; \ diff -q $$file.reference $$file.result || exit 1; \ done @rm -fr *.result *.cmp diff --git a/tests/camlp4-instrument-fast/Makefile b/tests/camlp4-instrument-fast/Makefile index f60767f..8506e38 100644 --- a/tests/camlp4-instrument-fast/Makefile +++ b/tests/camlp4-instrument-fast/Makefile @@ -2,7 +2,7 @@ default: @rm -fr *.result *.cmp @for file in *.ml; do \ echo " testing '$$file' ..."; \ - $(PATH_OCAML_BIN)/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo -mode fast $$file -o $$file.result; \ + $(PATH_CAMLP4_PREFIX)/bin/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo -mode fast $$file -o $$file.result; \ diff -q $$file.reference $$file.result || exit 1; \ done @rm -fr *.result *.cmp diff --git a/tests/camlp4-instrument/Makefile b/tests/camlp4-instrument/Makefile index 33fca72..a918118 100644 --- a/tests/camlp4-instrument/Makefile +++ b/tests/camlp4-instrument/Makefile @@ -2,7 +2,7 @@ default: @rm -fr *.result *.cmp @for file in *.ml; do \ echo " testing '$$file' ..."; \ - $(PATH_OCAML_BIN)/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -o $$file.result; \ + $(PATH_CAMLP4_PREFIX)/bin/camlp4o$(EXE_SUFFIX) str.cma ../../_build/bisect_pp.cmo $$file -o $$file.result; \ diff -q $$file.reference $$file.result || exit 1; \ done @rm -fr *.result *.cmp diff --git a/tests/combine-expr/Makefile b/tests/combine-expr/Makefile index 46ae9eb..e8e2af2 100644 --- a/tests/combine-expr/Makefile +++ b/tests/combine-expr/Makefile @@ -1,4 +1,4 @@ -COMPILE_FLAGS=-I ../../_build -pp '$(PATH_OCAML_BIN)/camlp4o str.cma -I ../../_build bisect_pp.cmo' bisect.$(LIB_EXT) $(FLAGS) +COMPILE_FLAGS=-I ../../_build -pp '$(PATH_CAMLP4_PREFIX)/bin/camlp4o str.cma -I ../../_build bisect_pp.cmo' bisect.$(LIB_EXT) $(FLAGS) default: clean compile run report diff --git a/tests/ppx-comments/Makefile b/tests/ppx-comments/Makefile index f8c645a..667526f 100644 --- a/tests/ppx-comments/Makefile +++ b/tests/ppx-comments/Makefile @@ -2,7 +2,7 @@ default: @rm -fr *.result *.cm* @for file in *.ml; do \ echo " testing '$$file' ..."; \ - $(PATH_OCAML_BIN)/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte' -dsource $$file 2> $$file.result; \ + $(PATH_CAMLP4_PREFIX)/bin/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte' -dsource $$file 2> $$file.result; \ diff -q $$file.reference $$file.result || exit 1; \ done @rm -fr *.result *.cm* diff --git a/tests/ppx-exclude-file/Makefile b/tests/ppx-exclude-file/Makefile index a575a77..0dd1a20 100644 --- a/tests/ppx-exclude-file/Makefile +++ b/tests/ppx-exclude-file/Makefile @@ -2,7 +2,7 @@ default: @rm -fr *.result *.cm* @for file in *.ml; do \ echo " testing '$$file' ..."; \ - $(PATH_OCAML_BIN)/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte -exclude-file exclusions' -dsource $$file 2> $$file.result; \ + $(PATH_CAMLP4_PREFIX)/bin/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte -exclude-file exclusions' -dsource $$file 2> $$file.result; \ diff -q $$file.reference $$file.result || exit 1; \ done @rm -fr *.result *.cm* diff --git a/tests/ppx-exclude/Makefile b/tests/ppx-exclude/Makefile index a517af4..f502a42 100644 --- a/tests/ppx-exclude/Makefile +++ b/tests/ppx-exclude/Makefile @@ -2,7 +2,7 @@ default: @rm -fr *.result *.cm* @for file in *.ml; do \ echo " testing '$$file' ..."; \ - $(PATH_OCAML_BIN)/ocamlc -c -I ../../_build -ppx "../../_build/src/syntax/bisect_ppx.byte -exclude 'f.*'" -dsource $$file 2> $$file.result; \ + $(PATH_CAMLP4_PREFIX)/bin/ocamlc -c -I ../../_build -ppx "../../_build/src/syntax/bisect_ppx.byte -exclude 'f.*'" -dsource $$file 2> $$file.result; \ diff -q $$file.reference $$file.result || exit 1; \ done @rm -fr *.result *.cm* diff --git a/tests/ppx-instrument-fast/Makefile b/tests/ppx-instrument-fast/Makefile index da78bb6..1195988 100644 --- a/tests/ppx-instrument-fast/Makefile +++ b/tests/ppx-instrument-fast/Makefile @@ -2,7 +2,7 @@ default: @rm -fr *.result *.cm* @for file in *.ml; do \ echo " testing '$$file' ..."; \ - $(PATH_OCAML_BIN)/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte -mode fast' -dsource $$file 2> $$file.result; \ + $(PATH_CAMLP4_PREFIX)/bin/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte -mode fast' -dsource $$file 2> $$file.result; \ diff -q $$file.reference $$file.result || exit 1; \ done @rm -fr *.result *.cm* diff --git a/tests/ppx-instrument/Makefile b/tests/ppx-instrument/Makefile index f8c645a..667526f 100644 --- a/tests/ppx-instrument/Makefile +++ b/tests/ppx-instrument/Makefile @@ -2,7 +2,7 @@ default: @rm -fr *.result *.cm* @for file in *.ml; do \ echo " testing '$$file' ..."; \ - $(PATH_OCAML_BIN)/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte' -dsource $$file 2> $$file.result; \ + $(PATH_CAMLP4_PREFIX)/bin/ocamlc -c -I ../../_build -ppx '../../_build/src/syntax/bisect_ppx.byte' -dsource $$file 2> $$file.result; \ diff -q $$file.reference $$file.result || exit 1; \ done @rm -fr *.result *.cm* diff --git a/tests/report/Makefile b/tests/report/Makefile index a7ffe44..a968bf9 100644 --- a/tests/report/Makefile +++ b/tests/report/Makefile @@ -1,4 +1,4 @@ -COMPILE_FLAGS=-I ../../_build -pp '$(PATH_OCAML_BIN)/camlp4o str.cma -I ../../_build bisect_pp.cmo' bisect.$(LIB_EXT) $(FLAGS) +COMPILE_FLAGS=-I ../../_build -pp '$(PATH_CAMLP4_PREFIX)/bin/camlp4o str.cma -I ../../_build bisect_pp.cmo' bisect.$(LIB_EXT) $(FLAGS) XMLLINT=$(shell which xmllint) default: clean compile run report -- 2.18.0