summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac98
1 files changed, 98 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..6dee52c
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,98 @@
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.59)
+AC_INIT([Cuba], [3.0], [hahn@feynarts.de])
+AC_CONFIG_SRCDIR([cuba.h])
+
+LIBS=-lm
+USER_CFLAGS="$CFLAGS"
+
+AC_ARG_VAR(MCFLAGS, [MathLink C compiler flags])
+
+AC_PROG_CC
+AC_PROG_F77
+AC_PROG_RANLIB
+AC_PROG_INSTALL
+
+AS_IF([test "$GCC" = yes],
+ [AS_CASE([`$CC --version 2>&1 < /dev/null`],
+ [*LLVM*], [opt=-O3],
+ [*gcc*4.2* | *gcc*4.4.3*], [opt=-O0],
+ [opt=-O3])
+ CFLAGS=${USER_CFLAGS:-$opt -fomit-frame-pointer -ffast-math}],
+ [CFLAGS=${USER_CFLAGS:--O}])
+
+AC_C_CONST
+AC_C_INLINE
+AC_C_LONG_DOUBLE
+
+AC_CHECK_FUNCS([powl])
+AC_CHECK_FUNCS([erf])
+AC_CHECK_FUNCS([getloadavg])
+
+MAXDIM=${MAXDIM:-16}
+AC_ARG_WITH(maxdim,
+ [AS_HELP_STRING([--with-maxdim=N],
+ [the maximum dimension for integration,
+ if variable-size array are not supported])],
+ [MAXDIM=$withval])
+
+MAXCOMP=${MAXCOMP:-4}
+AC_ARG_WITH(maxcomp,
+ [AS_HELP_STRING([--with-maxcomp=N],
+ [the maximum number of components of the integrand,
+ if variable-size array are not supported])],
+ [MAXCOMP=$withval])
+
+AC_MSG_CHECKING([for variable-size arrays])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE(,[[
+ void test(int n) {
+ char s[n];
+ }
+ ]])],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no, using MAXDIM=$MAXDIM and MAXCOMP=$MAXCOMP])
+ AC_DEFINE_UNQUOTED([NDIM], [$MAXDIM], [Maximum number of components])
+ AC_DEFINE_UNQUOTED([NCOMP], [$MAXCOMP], [Maximum number of dimensions])]
+)
+
+AC_MSG_CHECKING([for MathLink])
+cat > conftest.tm << _EOF_
+:Begin:
+:Function: inc
+:Pattern: Inc[i_Integer]
+:Arguments: {i}
+:ArgumentTypes: {Integer}
+:ReturnType: Integer
+:End:
+
+#include "mathlink.h"
+
+static int inc(const int i) { return i + 1; }
+
+int main(int argc, char **argv) {
+ return MLMain(argc, argv);
+}
+_EOF_
+FCC="$srcdir/tools/fcc"
+rm -f conftest$EXEEXT
+REALCC="$CC" CC="$FCC" CXX="$FCC" PATH="$PATH:$srcdir/tools" \
+ mcc $MCFLAGS $CFLAGS -o conftest$EXEEXT conftest.tm > /dev/null 2>&1
+AS_IF([test -x conftest$EXEEXT],
+ [AC_MSG_RESULT([yes])
+ MATH_DEFAULT=math],
+ [AC_MSG_RESULT([no])])
+AC_SUBST([MATH_DEFAULT])
+
+AC_CHECK_PROGS([HAVE_QMAKE], [qmake])
+test -n "$HAVE_QMAKE" && TOOLS_DEFAULT=tools
+AC_SUBST([TOOLS_DEFAULT])
+
+test -n "$F77" && DEMO_FORTRAN_DEFAULT=demo-fortran
+AC_SUBST([DEMO_FORTRAN_DEFAULT])
+
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_FILES([makefile])
+
+AC_OUTPUT
+