mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-01 06:25:34 +00:00
[4009] Fixed the libboost_system dependency for Boost < 1.56
This commit is contained in:
21
configure.ac
21
configure.ac
@@ -1244,17 +1244,19 @@ AC_SUBST(GTEST_SOURCE)
|
|||||||
# Use our 'coroutine' header from ext
|
# Use our 'coroutine' header from ext
|
||||||
CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)/ext/coroutine"
|
CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)/ext/coroutine"
|
||||||
#
|
#
|
||||||
# Disable threads: Currently we don't use them.
|
|
||||||
CPPFLAGS="$CPPFLAGS -DBOOST_ASIO_DISABLE_THREADS=1"
|
|
||||||
#
|
|
||||||
# Don't want boost system library
|
|
||||||
CPPFLAGS="$CPPFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY"
|
|
||||||
#
|
|
||||||
# Avoid boost::system::throws multiple defines
|
|
||||||
CPPFLAGS="$CPPFLAGS -DBOOST_SYSTEM_NO_DEPRECATED"
|
|
||||||
#
|
|
||||||
# Doesn't seem to be required?
|
# Doesn't seem to be required?
|
||||||
CPPFLAGS="$CPPFLAGS -DBOOST_ASIO_HEADER_ONLY"
|
CPPFLAGS="$CPPFLAGS -DBOOST_ASIO_HEADER_ONLY"
|
||||||
|
#
|
||||||
|
# Disable threads: Currently we don't use them.
|
||||||
|
CPPFLAGS="$CPPFLAGS -DBOOST_ASIO_DISABLE_THREADS=1"
|
||||||
|
|
||||||
|
# We tried to stay header only
|
||||||
|
if test "x${BOOST_LIBS}" = "x"; then
|
||||||
|
# Don't want boost system library
|
||||||
|
CPPFLAGS="$CPPFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY"
|
||||||
|
# Avoid boost::system::throws multiple defines
|
||||||
|
CPPFLAGS="$CPPFLAGS -DBOOST_SYSTEM_NO_DEPRECATED"
|
||||||
|
fi
|
||||||
|
|
||||||
# Check for functions that are not available on all platforms
|
# Check for functions that are not available on all platforms
|
||||||
AC_CHECK_FUNCS([pselect])
|
AC_CHECK_FUNCS([pselect])
|
||||||
@@ -1573,6 +1575,7 @@ cat >> config.report << END
|
|||||||
Boost:
|
Boost:
|
||||||
BOOST_VERSION: ${BOOST_VERSION}
|
BOOST_VERSION: ${BOOST_VERSION}
|
||||||
BOOST_INCLUDES: ${BOOST_INCLUDES}
|
BOOST_INCLUDES: ${BOOST_INCLUDES}
|
||||||
|
BOOST_LIBS: ${BOOST_LIBS}
|
||||||
|
|
||||||
${CRYPTO_NAME}:
|
${CRYPTO_NAME}:
|
||||||
CRYPTO_VERSION: ${CRYPTO_VERSION}
|
CRYPTO_VERSION: ${CRYPTO_VERSION}
|
||||||
|
@@ -13,9 +13,13 @@ dnl This macro also tries to identify some known portability issues, and
|
|||||||
dnl sets corresponding variables so the caller can react to (or ignore,
|
dnl sets corresponding variables so the caller can react to (or ignore,
|
||||||
dnl depending on other configuration) specific issues appropriately.
|
dnl depending on other configuration) specific issues appropriately.
|
||||||
dnl
|
dnl
|
||||||
|
dnl Boost.Asio depends on Boost.System which can be header only with
|
||||||
|
dnl versions >= 1.56. On older versions libboost_system is required.
|
||||||
|
dnl
|
||||||
dnl This macro calls:
|
dnl This macro calls:
|
||||||
dnl
|
dnl
|
||||||
dnl AC_SUBST(BOOST_INCLUDES)
|
dnl AC_SUBST(BOOST_INCLUDES)
|
||||||
|
dnl AC_SUBST(BOOST_LIBS)
|
||||||
dnl
|
dnl
|
||||||
dnl And possibly sets:
|
dnl And possibly sets:
|
||||||
dnl CPPFLAGS_BOOST_THREADCONF should be added to CPPFLAGS by caller
|
dnl CPPFLAGS_BOOST_THREADCONF should be added to CPPFLAGS by caller
|
||||||
@@ -30,6 +34,9 @@ AC_DEFUN([AX_BOOST_FOR_KEA], [
|
|||||||
AC_LANG_SAVE
|
AC_LANG_SAVE
|
||||||
AC_LANG([C++])
|
AC_LANG([C++])
|
||||||
|
|
||||||
|
# No library by default (and as goal)
|
||||||
|
BOOST_LIBS=
|
||||||
|
|
||||||
#
|
#
|
||||||
# Configure Boost header path
|
# Configure Boost header path
|
||||||
#
|
#
|
||||||
@@ -56,7 +63,7 @@ if test "${boost_include_path}" ; then
|
|||||||
BOOST_INCLUDES="-I${boost_include_path}"
|
BOOST_INCLUDES="-I${boost_include_path}"
|
||||||
CPPFLAGS="$CPPFLAGS $BOOST_INCLUDES"
|
CPPFLAGS="$CPPFLAGS $BOOST_INCLUDES"
|
||||||
fi
|
fi
|
||||||
AC_CHECK_HEADERS([boost/shared_ptr.hpp boost/foreach.hpp boost/interprocess/sync/interprocess_upgradable_mutex.hpp boost/date_time/posix_time/posix_time_types.hpp boost/bind.hpp boost/function.hpp boost/asio.hpp boost/asio/ip/address.hpp],,
|
AC_CHECK_HEADERS([boost/shared_ptr.hpp boost/foreach.hpp boost/interprocess/sync/interprocess_upgradable_mutex.hpp boost/date_time/posix_time/posix_time_types.hpp boost/bind.hpp boost/function.hpp boost/asio.hpp boost/asio/ip/address.hpp boost/system/error_code.hpp],,
|
||||||
AC_MSG_ERROR([Missing required header files.]))
|
AC_MSG_ERROR([Missing required header files.]))
|
||||||
|
|
||||||
# clang can cause false positives with -Werror without -Qunused-arguments.
|
# clang can cause false positives with -Werror without -Qunused-arguments.
|
||||||
@@ -125,9 +132,34 @@ void testfn(void) { BOOST_STATIC_ASSERT(true); }
|
|||||||
[AC_MSG_RESULT(no)
|
[AC_MSG_RESULT(no)
|
||||||
BOOST_STATIC_ASSERT_WOULDFAIL=yes])
|
BOOST_STATIC_ASSERT_WOULDFAIL=yes])
|
||||||
|
|
||||||
|
# BOOST_ERROR_CODE_HEADER_ONLY in versions below Boost 1.56.0 can fail
|
||||||
|
# to find the error_code.cpp file.
|
||||||
|
AC_MSG_CHECKING([BOOST_ERROR_CODE_HEADER_ONLY works])
|
||||||
|
CXXFLAGS_SAVED2="$CPPFLAGS"
|
||||||
|
CPPFLAGS="$CPPFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY"
|
||||||
|
CPPFLAGS="$CPPFLAGS -DBOOST_SYSTEM_NO_DEPRECATED"
|
||||||
|
AC_TRY_COMPILE([
|
||||||
|
#include <boost/system/error_code.hpp>
|
||||||
|
],,
|
||||||
|
[AC_MSG_RESULT(yes)],
|
||||||
|
[AC_MSG_RESULT(no)
|
||||||
|
AC_MSG_WARN([The Boost system library is required.])
|
||||||
|
BOOST_LIBS="-lboost_system"
|
||||||
|
LIBS_SAVED="$LIBS"
|
||||||
|
LIBS="$BOOST_LIBS $LIBS"
|
||||||
|
CPPFLAGS="$CXXFLAGS_SAVED2"
|
||||||
|
AC_LINK_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM([#include <boost/system/error_code.hpp>],
|
||||||
|
[boost::system::error_code ec;])],
|
||||||
|
[AC_MSG_RESULT([checking for Boost system library... yes])],
|
||||||
|
[AC_MSG_RESULT([checking for Boost system library... no])
|
||||||
|
AC_MSG_ERROR([Linking with ${BOOST_LIBS} is not enough: please make sure libboost_system is installed])])
|
||||||
|
LIBS="$LIBS_SAVED"])
|
||||||
|
|
||||||
CXXFLAGS="$CXXFLAGS_SAVED"
|
CXXFLAGS="$CXXFLAGS_SAVED"
|
||||||
|
|
||||||
AC_SUBST(BOOST_INCLUDES)
|
AC_SUBST(BOOST_INCLUDES)
|
||||||
|
AC_SUBST(BOOST_LIBS)
|
||||||
|
|
||||||
dnl Determine the Boost version, used mainly for config.report.
|
dnl Determine the Boost version, used mainly for config.report.
|
||||||
AC_MSG_CHECKING([Boost version])
|
AC_MSG_CHECKING([Boost version])
|
||||||
|
@@ -35,7 +35,8 @@ libkea_asiolink_la_SOURCES += udp_socket.h
|
|||||||
# KEA_CXXFLAGS)
|
# KEA_CXXFLAGS)
|
||||||
libkea_asiolink_la_CXXFLAGS = $(AM_CXXFLAGS)
|
libkea_asiolink_la_CXXFLAGS = $(AM_CXXFLAGS)
|
||||||
libkea_asiolink_la_CPPFLAGS = $(AM_CPPFLAGS)
|
libkea_asiolink_la_CPPFLAGS = $(AM_CPPFLAGS)
|
||||||
libkea_asiolink_la_LIBADD = $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
|
libkea_asiolink_la_LIBADD = $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
|
||||||
|
libkea_asiolink_la_LIBADD += $(BOOST_LIBS)
|
||||||
|
|
||||||
# IOAddress is sometimes used in user-library code
|
# IOAddress is sometimes used in user-library code
|
||||||
libkea_asiolink_includedir = $(pkgincludedir)/asiolink
|
libkea_asiolink_includedir = $(pkgincludedir)/asiolink
|
||||||
|
@@ -9,6 +9,7 @@ libkea_cc_la_SOURCES = data.cc data.h
|
|||||||
libkea_cc_la_SOURCES += command_interpreter.cc command_interpreter.h
|
libkea_cc_la_SOURCES += command_interpreter.cc command_interpreter.h
|
||||||
|
|
||||||
libkea_cc_la_LIBADD = $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
|
libkea_cc_la_LIBADD = $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
|
||||||
|
libkea_cc_la_LIBADD += $(BOOST_LIBS)
|
||||||
|
|
||||||
libkea_cc_la_LDFLAGS = -no-undefined -version-info 1:0:0
|
libkea_cc_la_LDFLAGS = -no-undefined -version-info 1:0:0
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user