]> SALOME platform Git repositories - modules/yacs.git/blobdiff - adm/unix/config_files/check_boost.m4
Salome HOME
updated copyright message
[modules/yacs.git] / adm / unix / config_files / check_boost.m4
index 9ca030b9a0b39c37d973c433cb32429f5746e5a0..9809a127cc19ba774c4830010aff7764ee811a05 100644 (file)
@@ -1,9 +1,9 @@
-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
 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
 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
@@ -26,8 +26,11 @@ AC_REQUIRE([ENABLE_PTHREADS])dnl
 AC_LANG_SAVE
 AC_LANG_CPLUSPLUS
 
 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_CPPFLAGS=""
-BOOST_LIBSUFFIX="-mt"
+BOOST_LIBSUFFIX=""
 BOOST_LIBS=""
 
 AC_CHECKING(for BOOST location)
 BOOST_LIBS=""
 
 AC_CHECKING(for BOOST location)
@@ -46,9 +49,11 @@ AC_MSG_RESULT(\$BOOSTDIR = ${BOOSTDIR})
 CPPFLAGS_old="${CPPFLAGS}"
 LIBS_old=$LIBS
 
 CPPFLAGS_old="${CPPFLAGS}"
 LIBS_old=$LIBS
 
+LIB_SUFFIX="${LIB_LOCATION_SUFFIX}"
+
 if test "x${BOOSTDIR}" != "x" ; then
   BOOST_CPPFLAGS="-I${BOOSTDIR}/include"
 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
 fi
 
 if test "x${BOOSTDIR}" = "x/usr" ; then
@@ -98,29 +103,27 @@ if test "x${boost_headers_ok}" = "xyes" ; then
   AC_CHECKING(for BOOST binaries)
   boost_lib_dir_ok=yes
   if test "x${BOOSTDIR}" != "x" ; 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
   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)
     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
     fi
   fi
 fi
@@ -131,6 +134,18 @@ if test "x${boost_binaries_ok}" = "xno" ; then
 else
   AC_MSG_RESULT(\$BOOST_LIBSUFFIX = ${BOOST_LIBSUFFIX})
   AC_MSG_RESULT(\$BOOST_LIBS = ${BOOST_LIBS})
 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)
 
 fi
 AC_MSG_RESULT(for boost binaries: $boost_binaries_ok)
 
@@ -148,6 +163,10 @@ AC_MSG_RESULT(for boost: $boost_ok)
 AC_SUBST(BOOST_CPPFLAGS)
 AC_SUBST(BOOST_LIBSUFFIX)
 AC_SUBST(BOOST_LIBS)
 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
 AC_SUBST(BOOST_PROGRAM_OPTIONS_LIB)
 
 AC_LANG_RESTORE