-dnl Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-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
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Lesser General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU Lesser General Public
-dnl License along with this library; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-dnl
-dnl See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+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, 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
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl Lesser General Public License for more details.
dnl
+dnl You should have received a copy of the GNU Lesser General Public
+dnl License along with this library; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+dnl
+dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+dnl
+
AC_DEFUN([CHECK_BOOST],[
AC_CHECKING(for BOOST Library)
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