297 lines
9.7 KiB
Plaintext
297 lines
9.7 KiB
Plaintext
AC_PREREQ(2.59)
|
|
AC_INIT(musrfit, 0.5.0, andreas.suter@psi.ch)
|
|
AC_CONFIG_AUX_DIR(admin)
|
|
|
|
dnl -----------------------------------------------
|
|
dnl Package names and version numbers
|
|
dnl -----------------------------------------------
|
|
|
|
MUSR_PROGRAM_NAME=musrfit
|
|
MUSR_LIBRARY_NAME=PMusr
|
|
LEM_LIBRARY_NAME=TLemRunHeader
|
|
|
|
#release versioning
|
|
MUSR_MAJOR_VERSION=0
|
|
MUSR_MINOR_VERSION=5
|
|
MUSR_MICRO_VERSION=0
|
|
|
|
#release versioning
|
|
LEM_MAJOR_VERSION=1
|
|
LEM_MINOR_VERSION=5
|
|
LEM_MICRO_VERSION=0
|
|
|
|
#API version
|
|
MUSR_API_VERSION=MUSR_MAJOR_VERSION.MUSR_MINOR_VERSION
|
|
AC_SUBST(MUSR_API_VERSION)
|
|
|
|
LEM_API_VERSION=LEM_MAJOR_VERSION.LEM_MINOR_VERSION
|
|
AC_SUBST(LEM_API_VERSION)
|
|
|
|
#shared library versioning
|
|
LEM_LIBRARY_VERSION=1:5:0
|
|
MUSR_LIBRARY_VERSION=0:5:0
|
|
# | | |
|
|
# +------+ | +---+
|
|
# | | |
|
|
# current:revision:age
|
|
# | | |
|
|
# | | +- increment if interfaces have been added
|
|
# | | set to zero if interfaces have been removed
|
|
# or changed
|
|
# | +- increment if source code has changed
|
|
# | set to zero if current is incremented
|
|
# +- increment if interfaces have been added, removed or changed
|
|
|
|
AC_SUBST(MUSR_LIBRARY_VERSION)
|
|
AC_SUBST(LEM_LIBRARY_VERSION)
|
|
|
|
PACKAGE=$MUSR_PROGRAM_NAME
|
|
AC_SUBST(MUSR_LIBRARY_NAME)
|
|
AC_SUBST(LEM_LIBRARY_NAME)
|
|
|
|
LEM_VERSION=$LEM_MAJOR_VERSION.$LEM_MINOR_VERSION.$LEM_MICRO_VERSION
|
|
LEM_RELEASE=$LEM_MAJOR_VERSION.$LEM_MINOR_VERSION
|
|
AC_SUBST(LEM_RELEASE)
|
|
AC_SUBST(LEM_VERSION)
|
|
|
|
MUSR_VERSION=$MUSR_MAJOR_VERSION.$MUSR_MINOR_VERSION.$MUSR_MICRO_VERSION
|
|
MUSR_RELEASE=$MUSR_MAJOR_VERSION.$MUSR_MINOR_VERSION
|
|
AC_SUBST(MUSR_RELEASE)
|
|
AC_SUBST(MUSR_VERSION)
|
|
|
|
VERSION=$MUSR_VERSION
|
|
|
|
dnl -----------------------------------------------
|
|
dnl Automake initialization and program checks
|
|
dnl -----------------------------------------------
|
|
|
|
AM_INIT_AUTOMAKE(@PACKAGE_NAME@, @PACKAGE_VERSION@)
|
|
AC_CONFIG_HEADER([config.h])
|
|
AC_LANG(C++)
|
|
|
|
# Checks for programs.
|
|
AC_PROG_AWK
|
|
AC_PROG_CXX
|
|
AC_PROG_CC
|
|
AC_PROG_LEX
|
|
AC_PROG_LN_S
|
|
AC_PROG_YACC
|
|
AC_PROG_INSTALL
|
|
AM_PROG_LIBTOOL
|
|
ROOT_PATH
|
|
|
|
dnl -----------------------------------------------
|
|
dnl Ask user for path to fftw3 stuff
|
|
dnl -----------------------------------------------
|
|
|
|
FFTW3_FOUND=0
|
|
AC_ARG_WITH([fftw3],
|
|
[AC_HELP_STRING([--with-fftw3],[prefix of FFTW3 installation. e.g. /usr/local or /usr])],
|
|
[FFTW3_PREFIX=$with_fftw3
|
|
if !(test -r ${FFTW3_PREFIX}/include/fftw3.h); then
|
|
AC_MSG_ERROR(FFTW3 cannot be found at the specified path!)
|
|
fi
|
|
AC_MSG_RESULT([using ${FFTW3_PREFIX} as prefix of the FFTW3 installation...])],
|
|
[PKG_CHECK_MODULES(FFTW3, fftw3 >= 3.1.0, [FFTW3_FOUND=1],
|
|
[if test -r /usr/local/include/fftw3.h; then
|
|
FFTW3_PREFIX="/usr/local"
|
|
AC_MSG_RESULT([using ${FFTW3_PREFIX} as prefix of the FFTW3 installation... (ignore the no just above)])
|
|
elif test -r /usr/include/fftw3.h; then
|
|
FFTW3_PREFIX="/usr"
|
|
AC_MSG_RESULT([using ${FFTW3_PREFIX} as prefix of the FFTW3 installation... (ignore the no just above)])
|
|
elif test -r /sw/include/fftw3.h; then
|
|
FFTW3_PREFIX="/sw"
|
|
AC_MSG_RESULT([using ${FFTW3_PREFIX} as prefix of the FFTW3 installation... (ignore the no just above)])
|
|
else
|
|
AC_MSG_ERROR(
|
|
[FFTW3 not found. Please call configure with the --with-fftw3 option.
|
|
This tells configure where to find the FFTW3 C libraries and headers.
|
|
e.g. --with-fftw3=/usr/local or --with-fftw3=/usr]
|
|
)
|
|
fi
|
|
]
|
|
)
|
|
]
|
|
)
|
|
AC_SUBST(FFTW3_PREFIX)
|
|
if test "${FFTW3_FOUND}" != "1"; then
|
|
FFTW3_LIBS="-L${FFTW3_PREFIX}/lib -lfftw3 -lm"
|
|
FFTW3_CFLAGS="-I${FFTW3_PREFIX}/include"
|
|
fi
|
|
AC_SUBST(FFTW3_LIBS)
|
|
AC_SUBST(FFTW3_CFLAGS)
|
|
|
|
|
|
dnl -----------------------------------------------
|
|
dnl Ask user for path to gsl stuff
|
|
dnl -----------------------------------------------
|
|
|
|
GSL_FOUND=0
|
|
AC_ARG_WITH([gsl],
|
|
[AC_HELP_STRING([--with-gsl],[prefix of GSL installation. e.g. /usr/local or /usr])],
|
|
[GSL_PREFIX=$with_gsl
|
|
if !(test -r ${GSL_PREFIX}/include/gsl/gsl_sf_hyperg.h); then
|
|
AC_MSG_ERROR(GSL cannot be found at the specified path!)
|
|
fi
|
|
AC_MSG_RESULT([using ${GSL_PREFIX} as prefix of the GSL installation...])],
|
|
[PKG_CHECK_MODULES(GSL, gsl >= 1.9, [GSL_FOUND=1],
|
|
[if test -r /usr/local/include/gsl/gsl_sf_hyperg.h; then
|
|
GSL_PREFIX="/usr/local"
|
|
AC_MSG_RESULT([using ${GSL_PREFIX} as prefix of the GSL installation... (ignore the no just above)])
|
|
elif test -r /usr/include/gsl/gsl_sf_hyperg.h; then
|
|
GSL_PREFIX="/usr"
|
|
AC_MSG_RESULT([using ${GSL_PREFIX} as prefix of the GSL installation... (ignore the no just above)])
|
|
elif test -r /sw/include/gsl/gsl_sf_hyperg.h; then
|
|
GSL_PREFIX="/sw"
|
|
AC_MSG_RESULT([using ${GSL_PREFIX} as prefix of the GSL installation... (ignore the no just above)])
|
|
else
|
|
AC_MSG_ERROR(
|
|
[GSL not found. Please call configure with the --with-gsl option.
|
|
This tells configure where to find the GSL C libraries and headers.
|
|
e.g. --with-gsl=/usr/local or --with-gsl=/usr]
|
|
)
|
|
fi
|
|
]
|
|
)
|
|
]
|
|
)
|
|
AC_SUBST(GSL_PREFIX)
|
|
if test "${GSL_FOUND}" != "1"; then
|
|
GSL_LIBS="-L${GSL_PREFIX}/lib -lgsl -lgslcblas -lm"
|
|
GSL_CFLAGS="-I${GSL_PREFIX}/include/gsl"
|
|
fi
|
|
AC_SUBST(GSL_LIBS)
|
|
AC_SUBST(GSL_CFLAGS)
|
|
|
|
|
|
dnl -----------------------------------------------
|
|
dnl Ask user for path to boost stuff
|
|
dnl -----------------------------------------------
|
|
|
|
BOOST_FOUND=0
|
|
AC_ARG_WITH([boostinc],
|
|
[AC_HELP_STRING([--with-boostinc],[path to the header files of the Boost installation, e.g. /usr/local/include or /usr/include])],
|
|
[BOOST_INCLUDE=$with_boostinc
|
|
if !(test -r ${BOOST_INCLUDE}/boost/spirit.hpp); then
|
|
AC_MSG_ERROR(Boost cannot be found at the specified path!)
|
|
fi
|
|
AC_MSG_RESULT([using ${BOOST_INCLUDE} as include path for the Boost headers...])],
|
|
[PKG_CHECK_MODULES(BOOST, boost >= 1.30, [BOOST_FOUND=1],
|
|
[if test -r /usr/local/include/boost/spirit.hpp; then
|
|
BOOST_INCLUDE="/usr/local/include"
|
|
AC_MSG_RESULT([using ${BOOST_INCLUDE} as include path for the Boost headers... (ignore the no just above)])
|
|
elif test -r /usr/include/boost/spirit.hpp; then
|
|
BOOST_INCLUDE="/usr/include"
|
|
AC_MSG_RESULT([using ${BOOST_INCLUDE} as include path for the Boost headers... (ignore the no just above)])
|
|
elif test -r /sw/include/boost/spirit.hpp; then
|
|
BOOST_INCLUDE="/sw/include"
|
|
AC_MSG_RESULT([using ${BOOST_INCLUDE} as include path for the Boost headers... (ignore the no just above)])
|
|
else
|
|
AC_MSG_ERROR(
|
|
[Boost not found. Please call configure with the --with-boostinc option.
|
|
This tells configure where to find the Boost C++ headers.
|
|
e.g. --with-boostinc=/usr/local/include or --with-boostinc=/usr/include or --with-boostinc=/usr/include/boost-1_33_0]
|
|
)
|
|
fi
|
|
]
|
|
)
|
|
]
|
|
)
|
|
AC_SUBST(BOOST_INCLUDE)
|
|
if test "${BOOST_FOUND}" != "1"; then
|
|
BOOST_LIBS=""
|
|
BOOST_CFLAGS="-I${BOOST_INCLUDE}"
|
|
fi
|
|
AC_SUBST(BOOST_LIBS)
|
|
AC_SUBST(BOOST_CFLAGS)
|
|
|
|
|
|
dnl -----------------------------------------------
|
|
dnl Check for ROOT
|
|
dnl -----------------------------------------------
|
|
|
|
ROOT_PATH([5.22/00], [], AC_MSG_ERROR([Either ROOT is not installed correctly or the version is too old... please check!]))
|
|
|
|
ROOT_LIBS="-L@ROOTLIBDIR@ @ROOTGLIBS@ -lMinuit2 -lMathMore -lXMLParser"
|
|
ROOT_CFLAGS="-I@ROOTINCDIR@ @ROOTCFLAGS@"
|
|
AC_SUBST(ROOT_LIBS)
|
|
AC_SUBST(ROOT_CFLAGS)
|
|
|
|
|
|
dnl -----------------------------------------------
|
|
dnl Set some paths and flags for PMusr and TLemRunHeader
|
|
dnl -----------------------------------------------
|
|
|
|
SRCDIR="$(pwd)"
|
|
|
|
LEM_SRCDIR="${SRCDIR}/src/external/TLemRunHeader"
|
|
LEM_LIBS="-L${LEM_SRCDIR} -l${LEM_LIBRARY_NAME}"
|
|
LEM_CFLAGS="-I${LEM_SRCDIR}"
|
|
AC_SUBST(LEM_LIBS)
|
|
AC_SUBST(LEM_CFLAGS)
|
|
|
|
PMUSR_LIBS="-L${SRCDIR}/src/classes -l${MUSR_LIBRARY_NAME}"
|
|
PMUSR_CFLAGS="-I${SRCDIR}/src/include"
|
|
AC_SUBST(PMUSR_LIBS)
|
|
AC_SUBST(PMUSR_CFLAGS)
|
|
|
|
|
|
dnl -----------------------------------------------
|
|
dnl Set host specific compiler and linker flags
|
|
dnl -----------------------------------------------
|
|
|
|
LOCAL_BIN_CXXFLAGS="-Wall -Wno-trigraphs"
|
|
LOCAL_LIB_CXXFLAGS="${LOCAL_BIN_CXXFLAGS}"
|
|
LOCAL_BIN_LDFLAGS=
|
|
LOCAL_LIB_LDFLAGS=
|
|
|
|
case "$host" in
|
|
*-*-cygwin)
|
|
LOCAL_BIN_CXXFLAGS="${LOCAL_BIN_CXXFLAGS}"
|
|
LOCAL_LIB_CXXFLAGS="${LOCAL_BIN_CXXFLAGS} -D_DLL"
|
|
LOCAL_BIN_LDFLAGS="${LOCAL_BIN_LDFLAGS} -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc"
|
|
LOCAL_LIB_LDFLAGS="-no-undefined ${LOCAL_BIN_LDFLAGS} -Wl,--export-all-symbols"
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(LOCAL_BIN_CXXFLAGS)
|
|
AC_SUBST(LOCAL_LIB_CXXFLAGS)
|
|
AC_SUBST(LOCAL_BIN_LDFLAGS)
|
|
AC_SUBST(LOCAL_LIB_LDFLAGS)
|
|
|
|
|
|
dnl -----------------------------------------------
|
|
dnl Some standard checks for header files and libraries
|
|
dnl -----------------------------------------------
|
|
|
|
# Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS([stddef.h stdlib.h string.h sys/time.h unistd.h])
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AC_HEADER_STDBOOL
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_TYPE_SIZE_T
|
|
AC_HEADER_TIME
|
|
|
|
# Checks for library functions.
|
|
AC_FUNC_MALLOC
|
|
AC_FUNC_STAT
|
|
AC_CHECK_FUNCS([floor gettimeofday memset pow sqrt strstr])
|
|
|
|
|
|
dnl -----------------------------------------------
|
|
dnl Specify the files that are going to be created by configure
|
|
dnl -----------------------------------------------
|
|
|
|
AC_CONFIG_FILES([Makefile \
|
|
src/Makefile \
|
|
src/classes/Makefile \
|
|
src/classes/PMusr.pc \
|
|
src/external/Makefile \
|
|
src/external/TLemRunHeader/Makefile \
|
|
src/external/TLemRunHeader/TLemRunHeader.pc \
|
|
src/external/scripts/Makefile])
|
|
AC_OUTPUT
|