123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347 |
- dnl Process this file with autoconf to produce a configure script.
- AC_INIT(avram,0.13.0,[email protected])
- dnl Every other copy of the package version number gets its value from here
- AM_INIT_AUTOMAKE(avram, 0.13.0)
- AM_CONFIG_HEADER(config.h)
- AC_SUBST(VERSION)
- ISODATE=`date +%Y-%m-%d`
- AC_SUBST(ISODATE)
- dnl Checks for programs.
- AC_PROG_INSTALL
- AC_PROG_CC
- AC_PROG_MAKE_SET
- AM_PROG_CC_C_O
- dnl Checks for header files.
- AC_HEADER_STDC
- AC_CHECK_HEADERS(
- ctype.h fcntl.h strings.h time.h sys/file.h sys/time.h unistd.h math.h,,
- [AC_MSG_ERROR(missing one of ctype.h fcntl.h strings.h time.h sys/file.h sys/time.h unistd.h math.h)])
- AC_CHECK_HEADER(
- argz.h,
- [AC_DEFINE([HAVE_ARGZ_H],1,[if you have the argz library])],
- [AC_MSG_WARN(no argz.h so AVMINPUTS unsupported)])
- AC_CHECK_HEADER(
- fenv.h,
- [AC_DEFINE([HAVE_FENV],1,[if you have floating point math])],
- [AC_MSG_WARN(no fenv.h so floating math unsupported)])
- AC_CHECK_HEADER(
- complex.h,
- [AC_DEFINE([HAVE_COMPLEX],1,[if you have complex math])],
- [AC_MSG_WARN(no complex.h so complex math unsupported)])
- AC_CHECK_HEADER(
- setjmp.h,
- [AC_DEFINE([HAVE_SETJMP],1,[Define if you have setjmp functions])],
- [AC_MSG_WARN(setjmp not detected for memory management)])
- AC_CHECK_HEADER(
- malloc.h,
- [AC_CHECK_DECLS(
- __malloc_hook,
- [AC_CHECK_DECLS(
- __realloc_hook,
- [AC_CHECK_DECLS(
- __free_hook,
- [AC_DEFINE([HAVE_MALLOC],1,[Define if you have the standard malloc.h header])],
- [AC_MSG_WARN(__free_hook not detected for memory management)],
- [#include<malloc.h>])],
- [AC_MSG_WARN(__realloc_hook not detected for memory management)],
- [#include<malloc.h>])],
- [AC_MSG_WARN(__malloc_hook not detected for memory management)],
- [#include<malloc.h>])],
- [AC_MSG_WARN(malloc.h header not detected for memory management)])
- dnl Checks for typedefs, structures, and compiler characteristics.
- dnl AC_CANONICAL_HOST
- AC_C_CONST
- AC_TYPE_SIZE_T
- dnl Checks for library functions.
- AC_CHECK_FUNCS(
- strdup strstr,,
- [AC_MSG_ERROR(missing either strdup or strstr)])
- AC_CHECK_FUNCS(ctime_r,,[AC_MSG_WARN(no ctime_r so using non-reentrant ctime)])
- AC_CHECK_FUNCS(strerror,,[AC_MSG_WARN(no strerror so error messages truncated)])
- AC_REPLACE_FUNCS(memmove)
- dnl checks for libraries
- AM_PATH_LIBGCRYPT(
- ,
- [AC_DEFINE([HAVE_GCRYPT],1,[Define if you have libgcrypt]) LIBS="$LIBGCRYPT_LIBS $LIBS"],
- [AC_MSG_WARN(no gcrypt so remote execution disabled)])
- dnl allow for a non-root installation
- LDFLAGS="$LDFLAGS -L$HOME/lib"
- CPPFLAGS="$CPPFLAGS -I$HOME/include"
- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
- LDFLAGS="$LDFLAGS -L/usr/local/lib $LIBLTDL"
- dnl LDFLAGS="$LDFLAGS -L$HOME/lib $LIBLTDL"
- dnl CPPFLAGS="$CPPFLAGS -I$HOME/include $LTDLINCL"
- dnl is there a macro to check for a list of headers atomically?
- AC_CHECK_LIB(
- gslcblas,
- cblas_xerbla,
- LIBS="-lgslcblas "$LIBS; [AC_CHECK_LIB(
- gsl,
- gsl_sf_bessel_J0,
- [AC_CHECK_HEADER(
- gsl/gsl_deriv.h,
- [AC_CHECK_HEADER(
- gsl/gsl_sum.h,
- [AC_CHECK_HEADER(
- gsl/gsl_integration.h,
- [AC_CHECK_HEADER(
- gsl/gsl_math.h,
- [AC_CHECK_HEADER(
- gsl/gsl_sf_bessel.h,
- [AC_CHECK_HEADER(
- gsl/gsl_errno.h,
- [AC_DEFINE([HAVE_GSL],1,[Define if you have the GNU Scientific library]) LIBS="-lgsl "$LIBS],
- [AC_MSG_WARN(no gsl headers so numerical analysis functions disabled)])],
- [AC_MSG_WARN(no gsl headers so numerical analysis functions disabled)])],
- [AC_MSG_WARN(no gsl headers so numerical analysis functions disabled)])],
- [AC_MSG_WARN(no gsl headers so numerical analysis functions disabled)])],
- [AC_MSG_WARN(no gsl headers so numerical analysis functions disabled)])],
- [AC_MSG_WARN(no gsl headers so numerical analysis functions disabled)])],
- [])],
- [AC_MSG_WARN(no gsl cblas library so numerical functions disabled)],
- [])
- AC_CHECK_LIB(
- glpk,
- glp_create_index,
- [AC_CHECK_HEADER(
- glpk.h,
- [AC_DEFINE([HAVE_GLPK],1,[Define if you have the GNU linear programming kit]) LIBS="-lglpk "$LIBS],
- [AC_MSG_WARN(no glpk.h so linear programming functions disabled)])],
- [AC_MSG_WARN(no glpk lib so linear programming disabled)])
- AC_CHECK_LIB(
- colamd,
- symamd,
- LIBS="-lcolamd "$LIBS; [AC_CHECK_LIB(
- lpsolve55,
- make_lp,
- [AC_CHECK_HEADER(
- lpsolve/lp_lib.h,
- [AC_DEFINE([HAVE_LPSOLVE],1,[Define if you have lpsolve]) LIBS="-llpsolve55 "$LIBS],
- [AC_MSG_WARN(no lp_lib.h so linear programming functions disabled)])],
- [AC_MSG_WARN(no lpsolve55 lib so linear programming disabled)])],
- [AC_MSG_WARN(no libltdl so lpsolve disabled)])
- AC_CHECK_LIB(
- mpfr,
- mpfr_add,
- [AC_CHECK_HEADER(
- mpfr.h,
- AC_DEFINE([HAVE_MPFR],1,[Define if you have the mpfr arbitrary precision library]) LIBS="-lmpfr "$LIBS,
- [AC_MSG_WARN(no mpfr.h header so arbitrary precision math disabled)])],
- [AC_MSG_WARN(no mpfr library so arbitrary precision math disabled)])
- dnl the gmp header file isn't needed
- AC_CHECK_LIB(
- gmp,
- __gmp_randinit_default,
- [AC_DEFINE([HAVE_GMP],1,[Define if you have GNU multiple precision library]) LIBS="-lgmp "$LIBS],
- [AC_MSG_WARN(no libgmp so arbitrary precision math partly disabled)])
- dnl umfpak requires blas and amd libraries already defined or else the check for it won't work
- AC_CHECK_LIB(
- blas,
- dscal_,
- [AC_CHECK_LIB(
- amd,
- amd_free,
- LIBS="-lblas -lamd "$LIBS; [AC_CHECK_LIB(
- umfpack,
- umfpack_di_free_numeric,
- [AC_CHECK_HEADER(
- suitesparse/umfpack.h,
- [AC_DEFINE([HAVE_UMF],1,[Define if you have the ufsparse libraries]) LIBS="-lumfpack "$LIBS],
- [AC_MSG_WARN(no umfpack.h header so sparse matrices disabled)])],
- [AC_MSG_WARN(no umfpack library so sparse matrices disabled)],
- [])],
- [AC_MSG_WARN(no amd library so sparse matrices disabled)],
- [])],
- [AC_MSG_WARN(no blas so sparse matrices disabled)],
- [])
- dnl lapack has no header file so only the library is checked
- dnl harminv is checked only if lapack is present
- AC_CHECK_LIB(
- lapack,
- dgesvx_,
- [AC_DEFINE([HAVE_LAPACK],1,[Define if you have the lapack library]) LIBS="-llapack "$LIBS; AC_CHECK_LIB(
- harminv,
- harminv_solve,
- AC_DEFINE([HAVE_HARMINV],1,[Define if you have the harminv library]) LIBS="-lharminv "$LIBS,
- [AC_MSG_WARN(no harminv library so harmonic inversiondisabled)],
- [])],
- [AC_MSG_WARN(no lapack so some linear algebra functions disabled)],
- [])
- AC_CHECK_LIB(
- fftw3,
- fftw_plan_dft_1d,
- [AC_CHECK_HEADER(
- fftw3.h,
- [AC_DEFINE([HAVE_FFTW],1,[Define if you have the fftw library]) LIBS=$LIBS" -lfftw3"],
- [AC_MSG_WARN(no fftw.h header so fourier transforms disabled)])],
- [AC_MSG_WARN(no fftw library so fourier transforms disabled)],
- [])
- dnl minpack.h might be a Debian addition
- AC_CHECK_LIB(
- minpack,
- hybrd_,
- [AC_CHECK_HEADER(
- minpack.h,
- [AC_DEFINE([HAVE_MINPACK],1,[Define if you have the minpack library]) LIBS="-lminpack "$LIBS],
- [AC_MSG_WARN(no minpack.h header so non-linear optimization disabled)])],
- [AC_MSG_WARN(no minpack library so non-linear optimization disabled)],
- [])
- AC_CHECK_LIB(
- sundials_kinsol,
- KINCreate,
- [AC_CHECK_LIB(
- sundials_nvecserial,
- N_VNew_Serial,
- CPPFLAGS="$CPPFLAGS -I/usr/include/sundials -I/usr/include/kinsol -I/usr/include/nvector"; [AC_CHECK_HEADER(
- sundials_types.h,
- [AC_CHECK_HEADER(
- sundials_math.h,
- [AC_CHECK_HEADER(
- sundials_nvector.h,
- dnl [AC_CHECK_HEADER(
- dnl sundials_smalldense.h,
- [AC_CHECK_HEADER(
- kinsol.h,
- [AC_CHECK_HEADER(
- kinsol_dense.h,
- [AC_CHECK_HEADER(
- kinsol_spgmr.h,
- [AC_CHECK_HEADER(
- kinsol_spbcgs.h,
- [AC_CHECK_HEADER(
- kinsol_sptfqmr.h,
- [AC_CHECK_HEADER(
- kinsol_spils.h,
- [AC_CHECK_HEADER(
- nvector_serial.h,
- [AC_DEFINE(
- [HAVE_KINSOL],
- 1,
- [Define for sundials]) LIBS="-lsundials_kinsol -lsundials_nvecserial "$LIBS],
- [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- dnl [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- [AC_MSG_WARN(no kinsol headers so non-linear optimization disabled)])],
- [AC_MSG_WARN(no kinsol library so non-linear optimization disabled)],
- [])],
- [AC_MSG_WARN(no kinsol library so non-linear optimization disabled)],
- [])
- dnl checking for the Rmath header requires MATHLIB_STANDALONE to be defined or it won't work
- AC_CHECK_LIB(
- Rmath,
- bessel_i,
- CPPFLAGS="$CPPFLAGS -DMATHLIB_STANDALONE"; [AC_CHECK_HEADER(
- Rmath.h,
- [AC_DEFINE([HAVE_RMATH],1,[Define if you have the GNU R math library]) LIBS="-lRmath -lm "$LIBS],
- [AC_MSG_WARN(no Rmath.h header so statistical functions disabled)])],
- [AC_MSG_WARN(no Rmath library so statistical functions disabled)],
- [])
- dnl is there a right way to detect and link a shared library whose filename ends with .so.something?
- AC_CHECK_FILE(
- /usr/lib/libexpect.so.5,
- EXPATH=" /usr/lib/libexpect.so.5",
- [AC_CHECK_FILE(
- /usr/local/lib/libexpect.so.5,
- EXPATH=" /usr/local/lib/libexpect.so.5",
- [AC_CHECK_FILE(
- $HOME/lib/libexpect.so.5,
- EXPATH=" $HOME/lib/libexpect.so.5",
- [AC_CHECK_FILE(
- /lib/libexpect.so.5,
- EXPATH=" /lib/libexpect.so.5",
- [AC_CHECK_FILE(
- /usr/lib/libexpect.so,
- EXPATH=" /usr/lib/libexpect.so",
- [AC_CHECK_FILE(
- /usr/local/lib/libexpect.so,
- EXPATH=" /usr/local/lib/libexpect.so",
- [AC_CHECK_FILE(
- $HOME/lib/libexpect.so,
- EXPATH=" $HOME/lib/libexpect.so",
- [AC_CHECK_FILE(
- /lib/libexpect.so,
- EXPATH=" /lib/libexpect.so",
- [AC_CHECK_FILE(
- /usr/lib/libexpect5.43.so,
- EXPATH=" /usr/lib/libexpect5.43.so",
- [AC_CHECK_FILE(
- /usr/local/lib/libexpect5.43.so,
- EXPATH=" /usr/local/lib/libexpect5.43.so",
- [AC_CHECK_FILE(
- $HOME/lib/libexpect5.43.so,
- EXPATH=" $HOME/lib/libexpect5.43.so",
- [AC_CHECK_FILE(
- /lib/libexpect5.43.so,
- EXPATH=" /lib/libexpect5.43.so",
- [AC_CHECK_FILE(
- /lib/libexpect5.44.so,
- EXPATH=" /lib/libexpect5.44.so",
- [])])])])])])])])])])])])])
- AC_CHECK_LIB(
- util,
- openpty,
- [AC_CHECK_HEADER(
- tcl8.4/expect.h,
- AC_DEFINE([HAVE_EXPECT],1,[Define if you have libexpect]) LIBS="-lutil -ltcl8.4"$EXPATH" "$LIBS,
- [AC_CHECK_LIB(
- util,
- openpty,
- [AC_CHECK_HEADER(
- tcl8.5/expect.h,
- AC_DEFINE([HAVE_EXPECT],1,[Define if you have libexpect]) LIBS="-lutil -ltcl8.5"$EXPATH" "$LIBS,
- [AC_MSG_WARN(no libexpect so --interactive is disabled)])],
- [AC_MSG_WARN(no openpty in libutil so --interactive is disabled)])])],
- [AC_MSG_WARN(no openpty in libutil so --interactive is disabled)])
- dnl CPPFLAGS="$CPPFLAGS -pedantic -Wall"
- CFLAGS="-O3 -mtune=native -march=native"
- AC_OUTPUT(Makefile avram.lsm avram.spec avm/Makefile src/Makefile doc/Makefile)
|