Index: trunk/circe2/src/opam_versions.sh =================================================================== --- trunk/circe2/src/opam_versions.sh (revision 8322) +++ trunk/circe2/src/opam_versions.sh (revision 8323) @@ -1,39 +1,61 @@ #! /bin/sh ######################################################################## # This script is for developers only and needs not to be portable. # This script assumes an opam installation with many versions of # O'Caml available as switches. ######################################################################## # tl;dr : don't try this at home, kids ;) ######################################################################## src=$(dirname $(realpath $0)) root=$(dirname $(dirname $src)) build=$root/_build log=$src/opam_versions.out versions="$1" if [ -z "$versions" ]; then versions="$(opam switch -s)" fi rm -f $log for switch in $versions; do opam switch $switch >/dev/null || exit 2 opam switch show eval $(opam env) cd $root ./build_master.sh CIRCE2 rm -fr $build/$switch mkdir -p $build/$switch cd $build/$switch $root/configure --enable-distribution --disable-static make -j $(getconf _NPROCESSORS_ONLN) && \ - make -j $(getconf _NPROCESSORS_ONLN) check distcheck + make -j $(getconf _NPROCESSORS_ONLN) check && \ + make -j $(getconf _NPROCESSORS_ONLN) dist && \ + make -j $(getconf _NPROCESSORS_ONLN) distcheck if [ "$?" = 0 ]; then echo "$switch PASS" >> $log else echo "$switch FAIL" >> $log fi done + +for dist_switch in $versions; do + for build_switch in $versions; do + cd $build/$dist_switch + rm -fr whizard_circe2-[0-9].[0-9].[0-9] + tar xzf whizard_circe2-[0-9].[0-9].[0-9].tar.gz + cd whizard_circe2-[0-9].[0-9].[0-9] + opam switch $build_switch >/dev/null || exit 2 + echo "Building with $(opam switch show) in $(pwd)" + eval $(opam env) + $root/configure --enable-distribution --disable-static + make -j $(getconf _NPROCESSORS_ONLN) && \ + make -j $(getconf _NPROCESSORS_ONLN) check + if [ "$?" = 0 ]; then + echo "build: $build_switch dist: $dist_switch PASS" >> $log + else + echo "build: $build_switch dist: $dist_switch FAIL" >> $log + fi + done +done Index: trunk/m4/ocaml.m4 =================================================================== --- trunk/m4/ocaml.m4 (revision 8322) +++ trunk/m4/ocaml.m4 (revision 8323) @@ -1,361 +1,358 @@ dnl autoconf macros for OCaml dnl dnl JR added check for ocaml binary dnl JR added check for ocamlcp dnl JR added check for ocamlweb dnl JR added routine for lablgtk dnl JR added check for ocaml version dnl JR added conditional for CAMLP4 dnl dnl Copyright © 2009 Richard W.M. Jones dnl Copyright © 2009 Stefano Zacchiroli dnl Copyright © 2000-2005 Olivier Andrieu dnl Copyright © 2000-2005 Jean-Christophe Filliâtre dnl Copyright © 2000-2005 Georges Mariano dnl dnl For documentation, please read the ocaml.m4 man page. AC_DEFUN([AC_PROG_OCAML], [dnl AC_ARG_ENABLE([ocaml], [AC_HELP_STRING([--disable-ocaml], [disable the OCaml parts, even if OCaml available [[no]]])]) if test "$enable_ocaml" != "no"; then # checking for ocamlc AC_PATH_TOOL([OCAML], [ocaml], []) AC_PATH_TOOL([OCAMLC],[ocamlc],[no]) if test "$OCAMLC" != "no"; then OCAMLVERSION=`$OCAMLC -v | $SED -n -e 's|.*version* *\(.*\)$|\1|p'` ##### # JR inserted this ocamlintegerversion for version checking # [tho] made it rubust for OCaml 4.00 ##### AC_CACHE_VAL([wo_ocaml_cv_integer_version], [wo_ocaml_cv_integer_version="`echo "$OCAMLVERSION" | \ $AWK 'NR==1 { changequote(<<,>>)dnl split (<<$>>1, version, "[.+]+"); printf ("%d%02d%03d", version[1], version[2], version[3])}'`" changequote([,])]) OCAMLINTEGERVERSION=$wo_ocaml_cv_integer_version ##### AC_MSG_RESULT([OCaml version is $OCAMLVERSION]) OCAMLLIB=`$OCAMLC -where 2>/dev/null || $OCAMLC -v|tail -1|cut -d ' ' -f 4` AC_MSG_RESULT([OCaml library path is $OCAMLLIB]) AC_SUBST([OCAMLVERSION]) AC_SUBST([OCAMLINTEGERVERSION]) AC_SUBST([OCAMLLIB]) AM_CONDITIONAL([OCAML_304], [test $OCAMLINTEGERVERSION -ge 304000]) # checking for ocamlopt AC_PATH_TOOL([OCAMLOPT],[ocamlopt],[no]) OCAMLBEST=byte if test "$OCAMLOPT" = "no"; then AC_MSG_WARN([Cannot find ocamlopt; bytecode compilation only.]) else TMPVERSION=`$OCAMLOPT -v | $SED -n -e 's|.*version* *\(.*\)$|\1|p' ` if test "$TMPVERSION" != "$OCAMLVERSION" ; then AC_MSG_RESULT([versions differs from ocamlc; ocamlopt discarded.]) OCAMLOPT=no else OCAMLBEST=opt fi fi AC_SUBST([OCAMLBEST]) # checking for ocamlc.opt AC_PATH_TOOL([OCAMLCDOTOPT],[ocamlc.opt],[no]) if test "$OCAMLCDOTOPT" != "no"; then TMPVERSION=`$OCAMLCDOTOPT -v | $SED -n -e 's|.*version* *\(.*\)$|\1|p' ` if test "$TMPVERSION" != "$OCAMLVERSION" ; then AC_MSG_RESULT([versions differs from ocamlc; ocamlc.opt discarded.]) else OCAMLC=$OCAMLCDOTOPT fi fi # checking for ocamlopt.opt if test "$OCAMLOPT" != "no" ; then AC_PATH_TOOL([OCAMLOPTDOTOPT],[ocamlopt.opt],[no]) if test "$OCAMLOPTDOTOPT" != "no"; then TMPVERSION=`$OCAMLOPTDOTOPT -v | $SED -n -e 's|.*version* *\(.*\)$|\1|p' ` if test "$TMPVERSION" != "$OCAMLVERSION" ; then AC_MSG_RESULT([version differs from ocamlc; ocamlopt.opt discarded.]) else OCAMLOPT=$OCAMLOPTDOTOPT fi fi fi AC_SUBST([OCAMLOPT]) fi AC_SUBST([OCAMLC]) # Allow to use flags set by environment variable OCAMLFLAGS - if test $OCAMLINTEGERVERSION -ge 406000; then - OCAMLFLAGS="-unsafe-string $OCAMLFLAGS" - fi AC_SUBST([OCAMLFLAGS],[$OCAMLFLAGS]) # checking for ocamldep AC_PATH_TOOL([OCAMLDEP],[ocamldep],[no]) # checking for ocamlmktop AC_PATH_TOOL([OCAMLMKTOP],[ocamlmktop],[no]) # checking for ocamlmklib AC_PATH_TOOL([OCAMLMKLIB],[ocamlmklib],[no]) # checking for ocamldoc AC_PATH_TOOL([OCAMLDOC],[ocamldoc],[no]) # checking for ocamlbuild AC_PATH_TOOL([OCAMLBUILD],[ocamlbuild],[no]) else AM_CONDITIONAL([OCAML_304], false) fi AM_CONDITIONAL([OCAML_AVAILABLE], [test "$enable_ocaml" != "no"]) ]) ]) AC_DEFUN([AC_PROG_OCAMLLEX], [dnl # checking for ocamllex AC_PATH_TOOL([OCAMLLEX],[ocamllex],[no]) if test "$OCAMLLEX" != "no"; then AC_PATH_TOOL([OCAMLLEXDOTOPT],[ocamllex.opt],[no]) if test "$OCAMLLEXDOTOPT" != "no"; then OCAMLLEX=$OCAMLLEXDOTOPT fi fi AC_SUBST([OCAMLLEX]) ]) AC_DEFUN([AC_PROG_OCAMLYACC], [dnl AC_PATH_TOOL([OCAMLYACC],[ocamlyacc],[no]) AC_SUBST([OCAMLYACC]) ]) AC_DEFUN([AC_PROG_OCAMLCP], [dnl AC_PATH_TOOL([OCAMLCP],[ocamlcp],[no]) AC_SUBST([OCAMLCP]) ]) AC_DEFUN([AC_PROG_CAMLP4], [dnl AC_REQUIRE([AC_PROG_OCAML])dnl # checking for camlp4 AC_PATH_TOOL([CAMLP4],[camlp4],[no]) if test "$CAMLP4" != "no"; then TMPVERSION=`$CAMLP4 -v 2>&1| $SED -n -e 's|.*version *\(.*\)$|\1|p'` if test "$TMPVERSION" != "$OCAMLVERSION" ; then AC_MSG_RESULT([versions differs from ocamlc]) CAMLP4=no fi fi AC_SUBST([CAMLP4]) AM_CONDITIONAL([CAMLP4_AVAILABLE], [test "$CAMLP4" != "no"]) # checking for companion tools AC_PATH_TOOL([CAMLP4BOOT],[camlp4boot],[no]) AC_PATH_TOOL([CAMLP4O],[camlp4o],[no]) AC_PATH_TOOL([CAMLP4OF],[camlp4of],[no]) AC_PATH_TOOL([CAMLP4OOF],[camlp4oof],[no]) AC_PATH_TOOL([CAMLP4ORF],[camlp4orf],[no]) AC_PATH_TOOL([CAMLP4PROF],[camlp4prof],[no]) AC_PATH_TOOL([CAMLP4R],[camlp4r],[no]) AC_PATH_TOOL([CAMLP4RF],[camlp4rf],[no]) AC_SUBST([CAMLP4BOOT]) AC_SUBST([CAMLP4O]) AC_SUBST([CAMLP4OF]) AC_SUBST([CAMLP4OOF]) AC_SUBST([CAMLP4ORF]) AC_SUBST([CAMLP4PROF]) AC_SUBST([CAMLP4R]) AC_SUBST([CAMLP4RF]) ]) AC_DEFUN([AC_PROG_FINDLIB], [dnl AC_REQUIRE([AC_PROG_OCAML])dnl # checking for ocamlfind AC_PATH_TOOL([OCAMLFIND],[ocamlfind],[no]) AC_SUBST([OCAMLFIND]) ]) dnl Thanks to Jim Meyering for working this next bit out for us. dnl XXX We should define AS_TR_SH if it's not defined already dnl (eg. for old autoconf). AC_DEFUN([AC_CHECK_OCAML_PKG], [dnl AC_REQUIRE([AC_PROG_FINDLIB])dnl AC_MSG_CHECKING([for OCaml findlib package $1]) unset found unset pkg found=no for pkg in $1 $2 ; do if $OCAMLFIND query $pkg >/dev/null 2>/dev/null; then AC_MSG_RESULT([found]) AS_TR_SH([OCAML_PKG_$1])=$pkg found=yes break fi done if test "$found" = "no" ; then AC_MSG_RESULT([not found]) AS_TR_SH([OCAML_PKG_$1])=no fi AC_SUBST(AS_TR_SH([OCAML_PKG_$1])) ]) AC_DEFUN([AC_CHECK_OCAML_MODULE], [dnl AC_MSG_CHECKING([for OCaml module $2]) cat > conftest.ml <&5 2>&5 ; then found=yes break fi done if test "$found" ; then AC_MSG_RESULT([$$1]) else AC_MSG_RESULT([not found]) $1=no fi AC_SUBST([$1]) ]) dnl XXX Cross-compiling AC_DEFUN([AC_CHECK_OCAML_WORD_SIZE], [dnl AC_MSG_CHECKING([for OCaml compiler word size]) cat > conftest.ml </dev/null || exit 2 opam switch show eval $(opam env) + cd $root + ./build_master.sh OMEGA + rm -fr $build/$switch mkdir -p $build/$switch cd $build/$switch - if [ ! -e config.status ]; then - cp -a $build/default/config.status . - ./config.status --recheck - ./config.status - fi - make -j $(getconf _NPROCESSORS_ONLN) -C omega && \ - make -j $(getconf _NPROCESSORS_ONLN) -C omega check + $root/configure --enable-distribution --disable-static + make -j $(getconf _NPROCESSORS_ONLN) && \ + make -j $(getconf _NPROCESSORS_ONLN) check && \ + make -j $(getconf _NPROCESSORS_ONLN) dist && \ + make -j $(getconf _NPROCESSORS_ONLN) distcheck if [ "$?" = 0 ]; then echo "$switch PASS" >> $log else echo "$switch FAIL" >> $log fi done + +for dist_switch in $versions; do + for build_switch in $versions; do + cd $build/$dist_switch + rm -fr whizard_omega-[0-9].[0-9].[0-9] + tar xzf whizard_omega-[0-9].[0-9].[0-9].tar.gz + cd whizard_omega-[0-9].[0-9].[0-9] + opam switch $build_switch >/dev/null || exit 2 + echo "Building with $(opam switch show) in $(pwd)" + eval $(opam env) + $root/configure --enable-distribution --disable-static + make -j $(getconf _NPROCESSORS_ONLN) && \ + make -j $(getconf _NPROCESSORS_ONLN) check + if [ "$?" = 0 ]; then + echo "build: $build_switch dist: $dist_switch PASS" >> $log + else + echo "build: $build_switch dist: $dist_switch FAIL" >> $log + fi + done +done