-dnl Copyright (C) 2006-2012 CEA/DEN, EDF R&D
+dnl Copyright (C) 2007-2023 CEA, EDF
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
-dnl version 2.1 of the License.
+dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
+gccver=`$CC -dumpversion | sed 's/^\([[0-9]]\+\)\.\([[0-9]]\+\).*/\1\2/g'`
+SUFFIXES="empty -mt -gcc -gcc-mt -gcc${gccver} -gcc${gccver}-mt"
+
BOOST_CPPFLAGS=""
-BOOST_LIBSUFFIX="-mt"
+BOOST_LIBSUFFIX=""
BOOST_LIBS=""
AC_CHECKING(for BOOST location)
CPPFLAGS_old="${CPPFLAGS}"
LIBS_old=$LIBS
+LIB_SUFFIX="${LIB_LOCATION_SUFFIX}"
+
if test "x${BOOSTDIR}" != "x" ; then
BOOST_CPPFLAGS="-I${BOOSTDIR}/include"
- BOOST_LIBS="-L${BOOSTDIR}/lib${LIB_LOCATION_SUFFIX}"
+ BOOST_LIBS="-L${BOOSTDIR}/lib${LIB_SUFFIX}"
fi
if test "x${BOOSTDIR}" = "x/usr" ; then
AC_CHECKING(for BOOST binaries)
boost_lib_dir_ok=yes
if test "x${BOOSTDIR}" != "x" ; then
- AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_LOCATION_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so,
- boost_lib_dir_ok=yes,
- boost_lib_dir_ok=no)
- if test "x${boost_lib_dir_ok}" = "xno" ; then
- BOOST_LIBSUFFIX=""
- AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_LOCATION_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so,
- boost_lib_dir_ok=yes,
- boost_lib_dir_ok=no)
- fi
+ for BOOST_LIBSUFFIX in ${SUFFIXES} ; do
+ test "${BOOST_LIBSUFFIX}" == "empty" && BOOST_LIBSUFFIX=""
+ AC_CHECK_FILE([${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so],
+ [boost_lib_dir_ok=yes],
+ [AC_CHECK_FILE([${BOOSTDIR}/lib64/libboost_thread${BOOST_LIBSUFFIX}.so],
+ [boost_lib_dir_ok=yes; LIB_SUFFIX=64],
+ [boost_lib_dir_ok=no])
+ ])
+ if test "x${boost_lib_dir_ok}" = "xyes" ; then
+ break
+ fi
+ done
fi
if test "x${boost_lib_dir_ok}" = "xyes" ; then
- LIBS="${LIBS_old} ${BOOST_LIBS} -lboost_thread${BOOST_LIBSUFFIX}"
+ LIBS="${LIBS_old} ${BOOST_LIBS} -lboost_thread${BOOST_LIBSUFFIX} -lboost_system${BOOST_LIBSUFFIX}"
AC_TRY_LINK([#include <boost/thread/thread.hpp>],
[struct TBody{ void operator()(){} }; boost::thread(TBody())],
boost_binaries_ok=yes,
boost_binaries_ok=no)
- if test "x${boost_binaries_ok}" = "xno" ; then
- BOOST_LIBSUFFIX=""
- LIBS="${LIBS_old} ${BOOST_LIBS} -lboost_thread${BOOST_LIBSUFFIX}"
- AC_TRY_LINK([#include <boost/thread/thread.hpp>],
- [struct TBody{ void operator()(){} }; boost::thread(TBody())],
- boost_binaries_ok=yes,
- boost_binaries_ok=no)
+ if test "x${boost_binaries_ok}" = "xyes" ; then
+ break
fi
fi
fi
else
AC_MSG_RESULT(\$BOOST_LIBSUFFIX = ${BOOST_LIBSUFFIX})
AC_MSG_RESULT(\$BOOST_LIBS = ${BOOST_LIBS})
+ AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so,
+ BOOST_LIB_THREAD="${BOOST_LIBS} -lboost_thread${BOOST_LIBSUFFIX} -lboost_system${BOOST_LIBSUFFIX}",
+ BOOST_LIB_THREAD="")
+ AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_signals${BOOST_LIBSUFFIX}.so,
+ BOOST_LIB_SIGNALS="${BOOST_LIBS} -lboost_signals${BOOST_LIBSUFFIX}",
+ BOOST_LIB_SIGNALS="")
+ AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_system${BOOST_LIBSUFFIX}.so,
+ BOOST_LIB_SYSTEM="${BOOST_LIBS} -lboost_system${BOOST_LIBSUFFIX}",
+ BOOST_LIB_SYSTEM="")
+ AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_regex${BOOST_LIBSUFFIX}.so,
+ BOOST_LIB_REGEX="${BOOST_LIBS} -lboost_regex${BOOST_LIBSUFFIX}",
+ BOOST_LIB_REGEX="")
fi
AC_MSG_RESULT(for boost binaries: $boost_binaries_ok)
AC_SUBST(BOOST_CPPFLAGS)
AC_SUBST(BOOST_LIBSUFFIX)
AC_SUBST(BOOST_LIBS)
+AC_SUBST(BOOST_LIB_THREAD)
+AC_SUBST(BOOST_LIB_SIGNALS)
+AC_SUBST(BOOST_LIB_SYSTEM)
+AC_SUBST(BOOST_LIB_REGEX)
AC_SUBST(BOOST_PROGRAM_OPTIONS_LIB)
AC_LANG_RESTORE