##### http://autoconf-archive.cryp.to/ax_boost.html # # SYNOPSIS # # AX_SAGA_CHECK_BOOST([MINIMUM-VERSION]) # # DESCRIPTION # # Test for the Boost C++ libraries of a particular version (or newer) # we forward the tests to the official boost.m4 macros. m4_include([boost.m4]) AC_DEFUN([AX_SAGA_CHECK_BOOST], [ AC_ARG_VAR([BOOST_LOCATION],[BOOST installation directory]) # boost checks require libdl, for whatever reason. AX_SAGA_CHECK_LIBDL() if test "x$LD_LIBRARY_PATH" = "x"; then LD_LIBRARY_PATH=$BOOST_LOCATION/lib else LD_LIBRARY_PATH=$BOOST_LOCATION/lib:$LD_LIBRARY_PATH fi export LD_LIBRARY_PATH HAVE_BOOST=no # first find boost BOOST_REQUIRE($1) # then find boost version if test "x$BOOST_VERSION_HPP" != "x"; then MY_BOOST_VERSION=`grep -e '^#define BOOST_VERSION' $BOOST_VERSION_HPP | cut -f 3 -d ' '` BOOST_VERSION_MAJ=`echo $MY_BOOST_VERSION | cut -c 1 | tr -d 0` BOOST_VERSION_MIN=`echo $MY_BOOST_VERSION | cut -c 2-4 | tr -d 0` BOOST_VERSION_SUB=`echo $MY_BOOST_VERSION | cut -c 5-6 | tr -d 0` BOOST_VERSION="$BOOST_VERSION_MAJ.$BOOST_VERSION_MIN.$BOOST_VERSION_SUB" HAVE_BOOST=yes # boost 1.35 or better has system and asio included. # No need to take it from excternal BOOST_HAVE_SYSTEM=no BOOST_HAVE_ASIO=no # AC_MSG_NOTICE(BOOST_VERSION_MAJ: $BOOST_VERSION_MAJ) # AC_MSG_NOTICE(BOOST_VERSION_MIN: $BOOST_VERSION_MIN) # AC_MSG_NOTICE(BOOST_VERSION_SUB: $BOOST_VERSION_SUB) if test "$BOOST_VERSION_MAJ" -ge "1"; then if test "$BOOST_VERSION_MAJ" -eq "1"; then if test "$BOOST_VERSION_MIN" -ge "35"; then BOOST_HAVE_SYSTEM=yes BOOST_HAVE_ASIO=yes fi else BOOST_HAVE_SYSTEM=yes BOOST_HAVE_ASIO=yes fi fi AC_SUBST(BOOST_HAVE_SYSTEM) AC_SUBST(BOOST_HAVE_ASIO) fi # if boost version is > 1.35, find libboost_system if test "x$BOOST_HAVE_SYSTEM" = "xyes"; then BOOST_SYSTEM if test "x$BOOST_HAVE_LIB_SYSTEM" = "xyes"; then BOOST_LIBS="$BOOST_LIBS $BOOST_SYSTEM_LIBS" BOOST_S_LIBS="$BOOST_S_LIBS $BOOST_SYSTEM_S_LIBS" else AC_MSG_ERROR([could not find BOOST_SYSTEM_LIBS]) fi fi # test for various libraries, and crate CPPFLAGS and LDFLAGS BOOST_THREADS if test "x$BOOST_HAVE_LIB_THREAD" = "xyes"; then BOOST_LDFLAGS="$BOOST_THREAD_LDFLAGS" BOOST_LIBS="$BOOST_LIBS $BOOST_THREAD_LIBS" BOOST_S_LIBS="$BOOST_S_LIBS $BOOST_THREAD_S_LIBS" else AC_MSG_ERROR([could not find BOOST_THREAD_LIBS]) fi # boost > 1.35 requires to link against system when linking against # filesystem. Linux manages quite well on itself, but MacOS... *sigh* if test "x$BOOST_HAVE_SYSTEM" = "xyes"; then SAGA_SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $BOOST_SYSTEM_LDFLAGS $BOOST_SYSTEM_LIBS" export LDFLAGS export SAGA_SAVE_LDFLAGS fi BOOST_FILESYSTEM if test "x$BOOST_HAVE_LIB_FILESYSTEM" = "xyes"; then BOOST_LIBS="$BOOST_LIBS $BOOST_FILESYSTEM_LIBS" BOOST_S_LIBS="$BOOST_S_LIBS $BOOST_FILESYSTEM_S_LIBS" else AC_MSG_ERROR([could not find BOOST_FILESYSTEM_LIBS]) fi LDFLAGS=$SAGA_SAVE_LDFLAGS BOOST_REGEX if test "x$BOOST_HAVE_LIB_REGEX" = "xyes"; then BOOST_LIBS="$BOOST_LIBS $BOOST_REGEX_LIBS" BOOST_S_LIBS="$BOOST_S_LIBS $BOOST_REGEX_S_LIBS" else AC_MSG_ERROR([could not find BOOST_REGEX_LIBS]) fi BOOST_SERIALIZATION if test "x$BOOST_HAVE_LIB_SERIALIZATION" = "xyes"; then BOOST_LIBS="$BOOST_LIBS $BOOST_SERIALIZATION_LIBS" BOOST_S_LIBS="$BOOST_S_LIBS $BOOST_SERIALIZATION_S_LIBS" else AC_MSG_ERROR([could not find BOOST_SERIALIZATION_LIBS]) fi BOOST_IOSTREAMS if test "x$BOOST_HAVE_LIB_IOSTREAMS" = "xyes"; then BOOST_LIBS="$BOOST_LIBS $BOOST_IOSTREAMS_LIBS" BOOST_S_LIBS="$BOOST_S_LIBS $BOOST_IOSTREAMS_S_LIBS" else AC_MSG_ERROR([could not find BOOST_IOSTREAMS_LIBS]) fi BOOST_TEST # defines BOOST_UNIT_TEST_FRAMEWORK_LIBS BOOST_PROGRAM_OPTIONS # defines BOOST_PROGRAM_OPTIONS_LIBS if test "x$HAVE_PYTHON" != "x"; then BOOST_PYTHON # defines BOOST_PYTHON_LIBS fi AC_MSG_CHECKING(for boost location) AC_MSG_RESULT([$BOOST_LOCATION]) AC_MSG_CHECKING(for boost major version) AC_MSG_RESULT([$BOOST_VERSION_MAJ]) AC_MSG_CHECKING(for boost minor version) AC_MSG_RESULT([$BOOST_VERSION_MIN]) AC_MSG_CHECKING(for boost sub version) AC_MSG_RESULT([$BOOST_VERSION_SUB]) AC_MSG_CHECKING(for boost version) AC_MSG_RESULT([$BOOST_VERSION]) AC_MSG_CHECKING(for boost CPPFLAGS) AC_MSG_RESULT([$BOOST_CPPFLAGS]) AC_MSG_CHECKING(for boost LDFLAGS) AC_MSG_RESULT([$BOOST_LDFLAGS]) AC_MSG_CHECKING(for boost LIBS) AC_MSG_RESULT([$BOOST_LIBS]) AC_MSG_CHECKING(for boost static LIBS) AC_MSG_RESULT([$BOOST_S_LIBS]) AC_SUBST(HAVE_BOOST) AC_SUBST(BOOST_CPPFLAGS) AC_SUBST(BOOST_LDFLAGS) AC_SUBST(BOOST_LIBS) AC_SUBST(BOOST_S_LIBS) AC_SUBST(BOOST_LOCATION) AC_SUBST(BOOST_VERSION) AC_SUBST(BOOST_VERSION_MAJ) AC_SUBST(BOOST_VERSION_MIN) AC_SUBST(BOOST_VERSION_SUB) ])