1 dnl Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
3 dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 dnl This library is free software; you can redistribute it and/or
7 dnl modify it under the terms of the GNU Lesser General Public
8 dnl License as published by the Free Software Foundation; either
9 dnl version 2.1 of the License, or (at your option) any later version.
11 dnl This library is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 dnl Lesser General Public License for more details.
16 dnl You should have received a copy of the GNU Lesser General Public
17 dnl License along with this library; if not, write to the Free Software
18 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 AC_DEFUN([CHECK_BOOST],[
25 AC_CHECKING(for BOOST Library)
27 AC_REQUIRE([ENABLE_PTHREADS])dnl
32 gccver=`$CC -dumpversion | sed 's/^\([[0-9]]\+\)\.\([[0-9]]\+\).*/\1\2/g'`
33 SUFFIXES="empty -mt -gcc -gcc-mt -gcc${gccver} -gcc${gccver}-mt"
39 AC_CHECKING(for BOOST location)
41 [AC_HELP_STRING([--with-boost=DIR],[root directory path to BOOST library installation])],
43 AC_MSG_RESULT("select $withval as path to BOOST library")
46 if test "x${BOOSTDIR}" = "x" ; then
50 AC_MSG_RESULT(\$BOOSTDIR = ${BOOSTDIR})
52 CPPFLAGS_old="${CPPFLAGS}"
55 LIB_SUFFIX="${LIB_LOCATION_SUFFIX}"
57 if test "x${BOOSTDIR}" != "x" ; then
58 BOOST_CPPFLAGS="-I${BOOSTDIR}/include"
59 BOOST_LIBS="-L${BOOSTDIR}/lib${LIB_SUFFIX}"
62 if test "x${BOOSTDIR}" = "x/usr" ; then
72 AC_CHECKING(for BOOST headers)
73 CPPFLAGS="${CPPFLAGS_old} ${BOOST_CPPFLAGS}"
75 boost_include_dir_ok=yes
76 if test "x${BOOSTDIR}" != "x" ; then
77 AC_CHECK_FILE(${BOOSTDIR}/include/boost/shared_ptr.hpp,
78 boost_include_dir_ok=yes,
79 boost_include_dir_ok=no)
82 BOOST_PROGRAM_OPTIONS_LIB=no
83 if test "x${boost_include_dir_ok}" = "xyes" ; then
84 AC_CHECK_FILE(${BOOSTDIR}/include/boost/program_options.hpp,
85 BOOST_PROGRAM_OPTIONS_LIB=yes,
86 BOOST_PROGRAM_OPTIONS_LIB=no)
88 AC_MSG_RESULT(for boost program_options tool: $BOOST_PROGRAM_OPTIONS_LIB)
90 if test "x${boost_include_dir_ok}" = "xyes" ; then
91 AC_TRY_COMPILE([#include <boost/shared_ptr.hpp>],
92 [boost::shared_ptr<int>(new int)],
97 if test "x${boost_headers_ok}" = "xno" ; then
98 BOOST_CPPFLAGS="BOOST_CPPFLAGS_NOT_DEFINED"
100 AC_MSG_RESULT(\$BOOST_CPPFLAGS = ${BOOST_CPPFLAGS})
102 AC_MSG_RESULT(for boost headers: $boost_headers_ok)
104 if test "x${boost_headers_ok}" = "xyes" ; then
106 AC_CHECKING(for BOOST binaries)
108 if test "x${BOOSTDIR}" != "x" ; then
109 for BOOST_LIBSUFFIX in ${SUFFIXES} ; do
110 test "${BOOST_LIBSUFFIX}" == "empty" && BOOST_LIBSUFFIX=""
111 AC_CHECK_FILE([${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so],
112 [boost_lib_dir_ok=yes],
113 [AC_CHECK_FILE([${BOOSTDIR}/lib64/libboost_thread${BOOST_LIBSUFFIX}.so],
114 [boost_lib_dir_ok=yes; LIB_SUFFIX=64],
115 [boost_lib_dir_ok=no])
117 if test "x${boost_lib_dir_ok}" = "xyes" ; then
122 if test "x${boost_lib_dir_ok}" = "xyes" ; then
123 LIBS="${LIBS_old} ${BOOST_LIBS} -lboost_thread${BOOST_LIBSUFFIX} -lboost_system${BOOST_LIBSUFFIX}"
124 AC_TRY_LINK([#include <boost/thread/thread.hpp>],
125 [struct TBody{ void operator()(){} }; boost::thread(TBody())],
126 boost_binaries_ok=yes,
127 boost_binaries_ok=no)
128 if test "x${boost_binaries_ok}" = "xyes" ; then
134 if test "x${boost_binaries_ok}" = "xno" ; then
135 BOOST_LIBS="BOOST_LIBS_NOT_FOUND"
136 BOOST_LIBSUFFIX="-not-defined"
138 AC_MSG_RESULT(\$BOOST_LIBSUFFIX = ${BOOST_LIBSUFFIX})
139 AC_MSG_RESULT(\$BOOST_LIBS = ${BOOST_LIBS})
140 AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so,
141 BOOST_LIB_THREAD="${BOOST_LIBS} -lboost_thread${BOOST_LIBSUFFIX} -lboost_system${BOOST_LIBSUFFIX}",
143 AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_signals${BOOST_LIBSUFFIX}.so,
144 BOOST_LIB_SIGNALS="${BOOST_LIBS} -lboost_signals${BOOST_LIBSUFFIX}",
145 BOOST_LIB_SIGNALS="")
146 AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_system${BOOST_LIBSUFFIX}.so,
147 BOOST_LIB_SYSTEM="${BOOST_LIBS} -lboost_system${BOOST_LIBSUFFIX}",
149 AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_regex${BOOST_LIBSUFFIX}.so,
150 BOOST_LIB_REGEX="${BOOST_LIBS} -lboost_regex${BOOST_LIBSUFFIX}",
152 AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_filesystem${BOOST_LIBSUFFIX}.so,
153 BOOST_LIB_FILESYSTEM="${BOOST_LIBS} -lboost_filesystem${BOOST_LIBSUFFIX}",
154 BOOST_LIB_FILESYSTEM="")
156 AC_MSG_RESULT(for boost binaries: $boost_binaries_ok)
158 CPPFLAGS="${CPPFLAGS_old}"
161 if test "x${boost_headers_ok}" = "xyes" ; then
162 if test "x${boost_binaries_ok}" = "xyes" ; then
167 AC_MSG_RESULT(for boost: $boost_ok)
169 AC_SUBST(BOOST_CPPFLAGS)
170 AC_SUBST(BOOST_LIBSUFFIX)
172 AC_SUBST(BOOST_LIB_THREAD)
173 AC_SUBST(BOOST_LIB_SIGNALS)
174 AC_SUBST(BOOST_LIB_SYSTEM)
175 AC_SUBST(BOOST_LIB_REGEX)
176 AC_SUBST(BOOST_LIB_FILESYSTEM)
177 AC_SUBST(BOOST_PROGRAM_OPTIONS_LIB)