diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -1,196 +1,199 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ([2.59]) AC_INIT([ThePEG],[2.0.0],[http://www.thep.lu.se/ThePEG/],[ThePEG]) AC_CONFIG_AUX_DIR([Config]) AC_CONFIG_MACRO_DIR([m4]) THEPEG_LIBTOOL_VERSION_INFO(18,1,0) AC_CONFIG_SRCDIR([EventRecord/SubProcess.h]) AC_CONFIG_HEADERS([Config/config.h Config/LWH.h Config/ThePEG_Qty.h:Config/ThePEG_Qty.h.a:Config/ThePEG_Qty.h.in:Config/ThePEG_Qty.h.b]) AC_CANONICAL_HOST case "${host}" in *-darwin[[0156]].*) AC_MSG_ERROR([ThePEG requires OS X 10.3 or later]) ;; *-darwin7.*) if test "x$MACOSX_DEPLOYMENT_TARGET" != "x10.3"; then AC_MSG_ERROR( [Please export the MACOSX_DEPLOYMENT_TARGET variable, set to 10.3]) fi - ;; + ;; esac AC_LANG(C++) AM_INIT_AUTOMAKE([1.9 gnu dist-bzip2 subdir-objects -Wall]) dnl also include std-options once --version and --help exist m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) dnl Checks for C++ compiler. Handle C++11 flags. AC_PROG_CXX dnl this block can go once we decide to have C++11 always on AC_MSG_CHECKING([whether to include C++11 flag for testing]) AC_ARG_ENABLE(stdcxx11, AC_HELP_STRING([--enable-stdcxx11], - [turn on C++11 flag (only for testing, do not use in production!)]), + [turn on C++11 flag (only for testing, do not use in production!)]), [], [enable_stdcxx11=no] ) if test "x$enable_stdcxx11" = "xyes"; then AC_MSG_RESULT([yes]) dnl remove the wrapper if block and "optional" once we decide to have C++11 always on AX_CXX_COMPILE_STDCXX_11([noext],[optional]) if test "x$HAVE_CXX11" != "x1"; then AC_MSG_ERROR([compiler does not recognize requested c++11 option]) fi else AC_MSG_RESULT([no]) fi dnl check for unistd AC_CHECK_HEADER([unistd.h],[], [AC_MSG_ERROR([ThePEG needs "unistd.h". Check your system is POSIX-compliant.])]) dnl Checks for programs. AC_PROG_INSTALL AC_PROG_MAKE_SET AC_PROG_LN_S LT_PREREQ([2.2]) LT_INIT([disable-static dlopen pic-only]) VL_LIB_READLINE THEPEG_UNIT_CHECKING THEPEG_CHECK_GSL THEPEG_SEARCH_LHAPDF THEPEG_CHECK_HEPMC THEPEG_CHECK_RIVET FASTJET_CHECK_FASTJET AX_CHECK_ZLIB dnl AX_CHECK_BZ2LIB THEPEG_DEFINE_ENVDEFAULT(ThePEG_GZREAD_FILE,GZREAD_FILE,gunzip -c,[The command which, taking the name of a gzipped file as argument, unzips it and prints it to stdout. Default is "gunzip -c"]) THEPEG_DEFINE_ENVDEFAULT(ThePEG_GZWRITE_FILE,GZWRITE_FILE,[gzip -c > ],[The command which, taking the name of a gzipped file as argument, reads stdin, zips it and writes it to the file. Default is "gzip -c > ".]) THEPEG_DEFINE_ENVDEFAULT(ThePEG_BZ2READ_FILE,BZ2READ_FILE,bunzip2 -c,[The command which, taking the name of a bzipped file as argument, unzips it and prints it to stdout. Default is "bunzip2 -c".]) THEPEG_DEFINE_ENVDEFAULT(ThePEG_BZ2WRITE_FILE,BZ2WRITE_FILE,[bzip2 -c > ],[The command which, taking the name of a bzipped file as argument, reads stdin, zips it and writes it to the file. Default is "bzip2 -c > ".]) THEPEG_CHECK_EXPM1 THEPEG_CHECK_LOG1P THEPEG_CHECK_DLOPEN + +AX_COMPILER_VENDOR +case "${ax_cv_cxx_compiler_vendor}" in + clang) + case "${host}" in + *linux*) + AC_MSG_WARN([ +***************************************************************************** + clang/LLVM ignores the CPU floating-point environment. + All floating point exception trapping will be disabled. +*****************************************************************************]) + ;; + esac +esac THEPEG_CHECK_FPUCONTROL THEPEG_CHECK_FENV + THEPEG_CHECK_AIDA AM_CPPFLAGS="-I\$(top_builddir)/include \$(GSLINCLUDE)" -AX_COMPILER_VENDOR - case "${ax_cv_cxx_compiler_vendor}" in gnu) - AM_CXXFLAGS="-ansi -pedantic -Wall -W" - ;; + AM_CXXFLAGS="-ansi -pedantic -Wall -W" + ;; clang) - case "${host}" in - *linux*) - AC_MSG_WARN([ -***************************************************************************** - WARNING - Usage of clang on Linux is currently not recommended. - Please use a different compiler if possible. -*****************************************************************************]) - ;; - esac - AM_CXXFLAGS="-ansi -pedantic -Wall -Wno-overloaded-virtual -Wno-unused-function" + AM_CXXFLAGS="-ansi -pedantic -Wall -Wno-overloaded-virtual -Wno-unused-function" dnl -Wno-unneeded-internal-declaration - ;; + ;; intel) - AM_CXXFLAGS="-strict-ansi -Wall -wd13000,1418,981,444,383,1599,1572,2259,980" - ;; + AM_CXXFLAGS="-strict-ansi -Wall -wd13000,1418,981,444,383,1599,1572,2259,980" + ;; esac THEPEG_CHECK_ABS_BUG AC_SUBST(AM_CPPFLAGS) AC_SUBST(AM_CXXFLAGS) dnl do an actual capability check on ld instead of this workaround case "${host}" in *-darwin*) ;; *) AM_LDFLAGS="-Wl,--enable-new-dtags" ;; esac AC_SUBST(AM_LDFLAGS) THEPEG_EMPTY_SUBST AC_PATH_PROG(PERL, perl) AC_ARG_WITH(javagui, [ --with-javagui Compile and install the java-based GUI.]) if test "x$with_javagui" != "xno"; then THEPEG_HAS_JAVA([1.4], [], [with_javagui=no; AC_MSG_NOTICE([Java GUI disabled])]) fi AM_CONDITIONAL([JAVAGUI], [test "x$with_javagui" != "xno"]) AC_CONFIG_FILES([Helicity/Makefile Helicity/WaveFunction/Makefile Helicity/Vertex/Makefile Helicity/Vertex/Scalar/Makefile Helicity/Vertex/Vector/Makefile Helicity/Vertex/Tensor/Makefile Utilities/Makefile include/Makefile Interface/Makefile LesHouches/Makefile Vectors/Makefile PDT/Makefile PDF/Makefile Persistency/Makefile Config/Makefile Handlers/Makefile MatrixElement/Makefile Pointer/Makefile lib/Makefile lib/Makefile.common.install src/Makefile ACDC/Makefile Repository/Makefile EventRecord/Makefile StandardModel/Makefile Cuts/Makefile Analysis/Makefile Doc/Makefile Doc/MakeDocs.in Doc/refman.h Doc/refman.conf java/Makefile Makefile]) AC_CONFIG_FILES([Doc/fixinterfaces.pl],[chmod +x Doc/fixinterfaces.pl]) BOOST_REQUIRE([1.41],[AC_SUBST([BOOST_NOT_FOUND],[true])]) BOOST_TEST() THEPEG_BOOST_UNIT_TEST THEPEG_OVERVIEW AC_CONFIG_COMMANDS([summary],[cat config.thepeg]) AC_OUTPUT diff --git a/m4/thepeg.m4 b/m4/thepeg.m4 --- a/m4/thepeg.m4 +++ b/m4/thepeg.m4 @@ -1,478 +1,492 @@ # check for gcc bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34130 AC_DEFUN([THEPEG_CHECK_ABS_BUG], [ if test "$GCC" = "yes"; then AC_MSG_CHECKING([for gcc abs bug]) AC_RUN_IFELSE([ AC_LANG_PROGRAM( [[ int foo (int i) { return -2 * __builtin_abs(i - 2); } ]], [[ if ( foo(1) != -2 || foo(3) != -2 ) return 1; ]] )], [ AC_MSG_RESULT([not found. Compiler is ok.]) ], [ AC_MSG_RESULT([found. Builtin abs() is buggy.]) AC_MSG_CHECKING([if -fno-builtin-abs works]) oldcxxflags=$CXXFLAGS CXXFLAGS="$CXXFLAGS -fno-builtin-abs" AC_RUN_IFELSE([ AC_LANG_PROGRAM( [[ #include <cstdlib> int foo (int i) { return -2 * std::abs(i - 2); } ]], [[ if (foo(1) != -2 || foo(3) != -2) return 1; ]] )], [ AC_MSG_RESULT([yes. Setting -fno-builtin-abs.]) AM_CXXFLAGS="$AM_CXXFLAGS -fno-builtin-abs" AM_CFLAGS="$AM_CFLAGS -fno-builtin-abs" ], [ AC_MSG_RESULT([no. Setting -fno-builtin.]) AC_MSG_WARN([ ***************************************************************************** For this version of gcc, -fno-builtin-abs alone did not work to avoid the gcc abs() bug. Instead, all gcc builtin functions are now disabled. Update gcc if possible. *****************************************************************************]) AM_CXXFLAGS="$AM_CXXFLAGS -fno-builtin" AM_CFLAGS="$AM_CFLAGS -fno-builtin" ] ) CXXFLAGS=$oldcxxflags ] ) fi ]) # Check for ThePEG. AC_DEFUN([THEPEG_CHECK_THEPEG], [THEPEGBUILD="no" AC_MSG_CHECKING([if THEPEGPATH is set]) if test -z "$THEPEGPATH"; then if test -f "../ThePEG/Config/config.h"; then THEPEGPATH="\$(top_builddir)/../ThePEG" THEPEGBUILD="yes" AC_MSG_RESULT([no (using ../ThePEG)]) AM_CPPFLAGS="-I\$(top_builddir)/include -I\$(top_builddir)/../ThePEG/include " SETUPTHEPEG="$THEPEGPATH/src/setupThePEG -L $THEPEGPATH/lib" RUNTHEPEG="$THEPEGPATH/src/runThePEG -L $THEPEGPATH/lib" THEPEGDOC="\$(top_builddir)/../ThePEG/Doc" THEPEGLIB="\$(top_builddir)/../ThePEG/lib" else if test "x$prefix" == "xNONE"; then THEPEGPATH=$ac_default_prefix else THEPEGPATH=$prefix fi AC_MSG_RESULT([no (using $THEPEGPATH)]) fi else AC_MSG_RESULT([yes ($THEPEGPATH)]) fi if test "$THEPEGBUILD" == "no"; then AM_CPPFLAGS="-I\$(top_builddir)/include -I$THEPEGPATH/include " SETUPTHEPEG="$THEPEGPATH/bin/setupThePEG" RUNTHEPEG="$THEPEGPATH/bin/runThePEG" THEPEGDOC="$THEPEGPATH/share/ThePEG/Doc" THEPEGLIB="$THEPEGPATH/lib/ThePEG" AC_MSG_CHECKING([if the installed ThePEG works]) if test -x $SETUPTHEPEG && $SETUPTHEPEG /dev/null; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR(ThePEG must be installed and THEPEGPATH set properly.) fi fi AC_ARG_VAR(THEPEGPATH,[The path to where ThePEG is installed. Default is $prefix unless we are working in a sister of the build directory of ThePEG.]) pkglibdir="\$(libdir)/ThePEG" AC_SUBST(pkglibdir) AC_SUBST(THEPEGPATH) AC_SUBST(THEPEGINCLUDE) AC_SUBST(THEPEGDOC) AC_SUBST(THEPEGLIB) AC_SUBST(SETUPTHEPEG) AC_SUBST(RUNTHEPEG) AC_SUBST(AM_CPPFLAGS) ]) # Search for ThePEG in standard places. AC_DEFUN([THEPEG_SEARCH_THEPEG], [THEPEGBUILD="no" AC_MSG_CHECKING([if THEPEGPATH is set]) if test -z "$THEPEGPATH"; then if test -f "../ThePEG/Config/config.h"; then THEPEGPATH="\$(top_builddir)/../ThePEG" THEPEGBUILD="yes" AC_MSG_RESULT([no (found ../ThePEG)]) AM_CPPFLAGS="-I\$(top_builddir)/include -I\$(top_builddir)/../ThePEG/include " SETUPTHEPEG="$THEPEGPATH/src/setupThePEG -L $THEPEGPATH/lib" RUNTHEPEG="$THEPEGPATH/src/runThePEG -L $THEPEGPATH/lib" THEPEGDOC="\$(top_builddir)/../ThePEG/Doc" THEPEGLIB="\$(top_builddir)/../ThePEG/lib" else for dirbase in / /usr $ac_default_prefix $prefix; do if test -f $dirbase/include/ThePEG/Config/config.h; then THEPEGPATH=$dirbase fi done if test -z "$THEPEGPATH"; then AC_MSG_RESULT([no]) AC_MSG_ERROR(Could not find a valid ThePEG installation or build directory) else AC_MSG_RESULT([no (found $THEPEGPATH)]) fi fi else AC_MSG_RESULT([yes ($THEPEGPATH)]) fi if test "$THEPEGBUILD" == "no"; then AM_CPPFLAGS="-I\$(top_builddir)/include -I$THEPEGPATH/include " SETUPTHEPEG="$THEPEGPATH/bin/setupThePEG" RUNTHEPEG="$THEPEGPATH/bin/runThePEG" THEPEGDOC="$THEPEGPATH/share/ThePEG/Doc" THEPEGLIB="$THEPEGPATH/lib/ThePEG" AC_MSG_CHECKING([if the installed ThePEG works]) if test -x $SETUPTHEPEG && $SETUPTHEPEG /dev/null; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR(ThePEG must be installed and THEPEGPATH set properly.) fi fi AC_ARG_VAR(THEPEGPATH,[The path to where ThePEG is installed. Default is $prefix unless we are working in a sister of the build directory of ThePEG.]) pkglibdir="\$(libdir)/ThePEG" AC_SUBST(pkglibdir) AC_SUBST(THEPEGPATH) AC_SUBST(THEPEGINCLUDE) AC_SUBST(THEPEGDOC) AC_SUBST(THEPEGLIB) AC_SUBST(SETUPTHEPEG) AC_SUBST(RUNTHEPEG) AC_SUBST(AM_CPPFLAGS) ]) AC_DEFUN([THEPEG_EMPTY_SUBST], [EMPTY="" AC_SUBST(EMPTY) ]) AC_DEFUN([THEPEG_SEARCH_PREFIXDIR_FILES], [AC_MSG_CHECKING([if $1 and $2 is set]) if test -z "$$1"; then for dirbase in / /usr $ac_default_prefix $prefix; do if test -z "$$2"; then for filename in $4; do if test -f $dirbase/$3/$filename; then $1=$dirbase/$3 $2=$filename fi done else if test -f $dirbase/$3/$$2; then $1=$dirbase/$3 fi fi done if test -z "$$1" -o -z "$$2"; then AC_MSG_ERROR(no. Could not guess appropriate value for $1 and $2) else AC_MSG_RESULT([no (found $$1 and $$2)]) fi else if test -z "$$2"; then for filename in $4; do if test -f $$1/$filename; then $2=$filename fi done AC_MSG_RESULT([no (found $$1 and $$2)]) else if test -f $$1/$$2; then AC_MSG_RESULT([yes ($$1 and $$2)]) else AC_MSG_ERROR(no. Could not guess appropriate value for $1 and $2) fi fi fi AC_ARG_VAR($1,[$5]) AC_ARG_VAR($2,[$6]) ]) AC_DEFUN([THEPEG_CHECK_PREFIXDIR], [AC_MSG_CHECKING([if $1 is set]) if test -z "$$1"; then if test -d $prefix/$2; then $1=$prefix/$2 elif test -d $ac_default_prefix/$2; then $1=$ac_default_prefix/$2 elif test -d /usr/$2; then $1=/usr/$2 elif test -d /$2; then $1=/$2 else AC_MSG_ERROR(no. Could not guess appropriate value for $1) fi AC_MSG_RESULT([no (using $$1)]) else AC_MSG_RESULT([yes ($$1)]) fi AC_ARG_VAR($1,[$3]) ]) AC_DEFUN([THEPEG_CHECK_ENVDEFAULT], [AC_MSG_CHECKING([if $1 is set]) if test -z "$$1"; then $1="$2" AC_MSG_RESULT([no (using $$1)]) else AC_MSG_RESULT([yes ($$1)]) fi AC_ARG_VAR($1,[$3]) ]) AC_DEFUN([THEPEG_DEFINE_ENVDEFAULT], [AC_MSG_CHECKING([if $2 is set]) if test -z "$$2"; then $2="$3" AC_MSG_RESULT([no (using $$2)]) else AC_MSG_RESULT([yes ($$2)]) fi AC_ARG_VAR($2,[$4]) AC_DEFINE_UNQUOTED($1,"$$2",[$4]) ]) AC_DEFUN([THEPEG_CHECK_EXPM1], [echo $ECHO_N "checking for expm1... $ECHO_C" 1>&6 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <cmath> ]], [[expm1(1.0); ]])],[AC_DEFINE(ThePEG_HAS_EXPM1,1,define if expm1 is available) echo "${ECHO_T}yes" 1>&6 ],[echo "${ECHO_T}no" 1>&6])]) AC_DEFUN([THEPEG_CHECK_LOG1P], [echo $ECHO_N "checking for log1p... $ECHO_C" 1>&6 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <cmath> ]], [[log1p(1.0); ]])],[AC_DEFINE(ThePEG_HAS_LOG1P,1,define if log1p is available) echo "${ECHO_T}yes" 1>&6 ],[echo "${ECHO_T}no" 1>&6])]) AC_DEFUN([THEPEG_CHECK_AIDA], [ AC_REQUIRE([THEPEG_CHECK_RIVET]) echo $ECHO_N "checking for installed AIDA headers... $ECHO_C" 1>&6 dnl if test "x$with_rivet" != "xno"; then dnl echo "using rivet aida" dnl LWHINCLUDE="\$(RIVETINCLUDE)/LWH" dnl else LWHINCLUDE="-I\$(top_builddir)/include/ThePEG/Analysis/LWH" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "AIDA/IAnalysisFactory.h" ]], [[AIDA::IAnalysisFactory * af; ]])],[AC_DEFINE(LWH_USING_AIDA,1,define if AIDA headers are installed) echo "${ECHO_T}yes" 1>&6 ],[echo "${ECHO_T}no" 1>&6]) dnl fi AC_SUBST([LWHINCLUDE]) ]) AC_DEFUN([THEPEG_CHECK_DLOPEN], [echo $ECHO_N "checking for dlopen... $ECHO_C" 1>&6 # do this with libtool! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <dlfcn.h> ]], [[dlopen("", 1); ]])],[AC_DEFINE(ThePEG_HAS_DLOPEN,1,define if dlopen is available) echo "${ECHO_T}yes" 1>&6 ],[echo "${ECHO_T}no" 1>&6])]) AC_DEFUN([THEPEG_CHECK_SSTREAM], [echo $ECHO_N "checking for <sstream>... $ECHO_C" 1>&6 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sstream> ]], [[std::ostringstream os; ]])],[AC_DEFINE(ThePEG_HAS_SSTREAM,1,define if sstream is available) echo "${ECHO_T}yes" 1>&6 ],[echo "${ECHO_T}no" 1>&6])]) AC_DEFUN([THEPEG_CHECK_FPUCONTROL], -[echo $ECHO_N "checking for <fpu_control>... $ECHO_C" 1>&6 +[ +AC_REQUIRE([AX_COMPILER_VENDOR]) +echo $ECHO_N "checking for <fpu_control>... $ECHO_C" 1>&6 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <fpu_control.h> ]], [[fpu_control_t cw; _FPU_GETCW(cw); cw &= ~(_FPU_MASK_IM|_FPU_MASK_DM|_FPU_MASK_ZM|_FPU_MASK_OM); _FPU_SETCW(cw); -]])],[AC_DEFINE(ThePEG_HAS_FPU_CONTROL,1,define if fpucontrol is available) +]])],[ +if test "${ax_cv_cxx_compiler_vendor}" == "clang"; then +echo "${ECHO_T}not useable with clang/llvm" 1>&6 +else +AC_DEFINE(ThePEG_HAS_FPU_CONTROL,1,define if fpucontrol is available) echo "${ECHO_T}yes" 1>&6 +fi ],[echo "${ECHO_T}no" 1>&6])]) AC_DEFUN([THEPEG_CHECK_FENV], -[echo $ECHO_N "checking for <fenv.h>... $ECHO_C" 1>&6 +[ +AC_REQUIRE([AX_COMPILER_VENDOR]) +echo $ECHO_N "checking for <fenv.h>... $ECHO_C" 1>&6 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <fenv.h> -]], [[feenableexcept(FE_DIVBYZERO|FE_OVERFLOW|FE_INVALID);]])],[AC_DEFINE(ThePEG_HAS_FENV,1,define if fenv is available) +]], [[feenableexcept(FE_DIVBYZERO|FE_OVERFLOW|FE_INVALID);]])],[ +if test "${ax_cv_cxx_compiler_vendor}" == "clang"; then +echo "${ECHO_T}not useable with clang/llvm" 1>&6 +else +AC_DEFINE(ThePEG_HAS_FENV,1,define if fenv is available) echo "${ECHO_T}yes" 1>&6 +fi ],[echo "${ECHO_T}no" 1>&6])]) AC_DEFUN([THEPEG_ADD_THEPEG_PATH], [if test "$THEPEGBUILD" == "yes"; then if test -f "../$2/Config/config.h"; then $1="\$(top_builddir)/../$2/lib" SETUPTHEPEG="$SETUPTHEPEG -L\$(top_builddir)/../$2/lib" RUNTHEPEG="$RUNTHEPEG -L\$(top_builddir)/../$2/lib" AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_builddir)/../$2/include" fi else $1="$THEPEGLIB" fi AC_SUBST($1) ]) AC_DEFUN([THEPEG_HAS_JAVA], [ hasjava=yes AC_PATH_PROG(JAVAC, javac) AC_PATH_PROG(JAVA, java) AC_PATH_PROG(JAR, jar) if test -z "$JAR" -o -z "$JAVA" -o -z "$JAVAC"; then hasjava=no; else AC_MSG_CHECKING([if java works]) echo 'public class conftest { public static void main(String[[]]arg){}}' > conftest.java $JAVAC -source $1 conftest.java 1>&5 2>&5 if test $? -ne 0; then hasjava=no; fi echo "Main-Class: conftest" > conftest.manifest $JAR cmf conftest.manifest conftest.jar conftest.class 1>&5 2>&5 if test $? -ne 0; then hasjava=no; fi $JAVA -jar conftest.jar 1>&5 2>&5 if test $? -ne 0; then hasjava=no; fi rm -f conftest.java conftest.err conftest.class conftest.manifest conftest.jar fi if test "x$hasjava" != "xno"; then AC_MSG_RESULT([yes]) $2 else AC_MSG_RESULT([no]) $3 fi ]) AC_DEFUN([THEPEG_LIBTOOL_VERSION_INFO], [ LIBTOOLVERSIONINFO="-version-info $1:$2:$3" AC_SUBST(LIBTOOLVERSIONINFO)]) AC_DEFUN([THEPEG_UNIT_CHECKING], [ AC_MSG_CHECKING([whether to include dimension checking]) AC_ARG_ENABLE(unitchecks, AC_HELP_STRING([--enable-unitchecks],[turns on dimension checking for physical quantities.]), [], [enable_unitchecks=no] ) AC_MSG_RESULT([$enable_unitchecks]) if test "x$enable_unitchecks" = "xyes"; then AC_DEFINE([ThePEG_HAS_UNITS_CHECKING],[1],[define if units should be checked]) fi ]) AC_DEFUN([THEPEG_CHECK_GSL], [ AC_MSG_CHECKING([for gsl location]) GSLINCLUDE="" GSLLIBS="" AC_ARG_WITH(gsl, AC_HELP_STRING([--with-gsl=path],[location of gsl installation. Default: system lib]), [], [with_gsl=system]) if test "x$with_gsl" = "xno"; then AC_MSG_ERROR([libgsl is required. Please install the GNU scientific library and header files.]) fi if test "x$with_gsl" = "xsystem"; then AC_MSG_RESULT([in system libraries]) oldlibs="$LIBS" AC_CHECK_LIB(m,sqrt) AC_CHECK_LIB(gslcblas,cblas_srot) AC_CHECK_LIB(gsl,gsl_ran_poisson,[], [ AC_MSG_ERROR([Cannot find libgsl. Please install the GNU scientific library.]) ] ) GSLLIBS="$LIBS" LIBS=$oldlibs GSLPATH="$with_gsl" else if test "`uname -m`" = "x86_64" -a -e "$with_gsl/lib64/libgsl.a" -a -d "$with_gsl/include/gsl"; then AC_MSG_RESULT([found in $with_gsl]) GSLLIBS="-L$with_gsl/lib64 -R$with_gsl/lib64 -lgsl -lgslcblas" GSLINCLUDE="-I$with_gsl/include" GSLPATH="$with_gsl" elif test -e "$with_gsl/lib/libgsl.a" -a -d "$with_gsl/include/gsl"; then AC_MSG_RESULT([found in $with_gsl]) GSLLIBS="-L$with_gsl/lib -R$with_gsl/lib -lgsl -lgslcblas" GSLINCLUDE="-I$with_gsl/include" GSLPATH="$with_gsl" else AC_MSG_RESULT([not found]) AC_MSG_ERROR([Can't find $with_gsl/lib/libgsl.a or the headers in $with_gsl/include]) fi fi dnl AM_CONDITIONAL(HAVE_GSL,[test "x$with_HepMC" != "xno"]) AC_SUBST(GSLINCLUDE) AC_SUBST(GSLLIBS) AC_SUBST(GSLPATH) ]) AC_DEFUN([THEPEG_BOOST_UNIT_TEST], [ AC_REQUIRE([BOOST_REQUIRE]) if test "x$BOOST_NOT_FOUND" = "xtrue"; then BOOSTMESSAGE="Deactived, BOOST was not found." AC_SUBST([BOOST_ACTIVATE_UNIT_TESTS],[false]) elif test -z "$BOOST_UNIT_TEST_FRAMEWORK_LDPATH"; then BOOSTMESSAGE="Deactivated, BOOST unit test libs were not found." AC_SUBST([BOOST_ACTIVATE_UNIT_TESTS],[false]) AC_SUBST([BOOST_NOT_FOUND],[false]) else BOOSTMESSAGE="Activated, BOOST unit test libs found at $BOOST_UNIT_TEST_FRAMEWORK_LDPATH" AC_SUBST([BOOST_ACTIVATE_UNIT_TESTS],[true]) AC_SUBST([BOOST_NOT_FOUND],[false]) fi AC_SUBST(BOOSTMESSAGE) AM_CONDITIONAL([COND_BOOSTTEST], [test "x$BOOST_ACTIVATE_UNIT_TESTS" = "xtrue"]) ]) AC_DEFUN([THEPEG_OVERVIEW], [ CXXSTRING=`$CXX --version | head -1` cat << _THEPEG_EOF_ > config.thepeg ***************************************************** *** $PACKAGE_STRING configuration summary *** Please include this information in bug reports! ***-------------------------------------------------- *** Prefix: $prefix *** *** Dimension checks: $enable_unitchecks *** *** GSL: $with_gsl *** *** LHAPDF: $lhaconfig ($lhapdf_version) $warnlhapdf *** HepMC: $with_hepmc *** Rivet: $with_rivet *** FastJet: $fjconfig $warnfastjet *** *** Boost Unit Tests: ${BOOSTMESSAGE} *** *** Host: $host *** CXX: $CXXSTRING *** *** CXXFLAGS: $CXXFLAGS ***************************************************** _THEPEG_EOF_ ])