build-aux: Update Boost macros to latest serials

This commit is contained in:
Jack Grigg 2021-09-17 14:08:58 +01:00
parent 14973737c4
commit 36efe749c4
7 changed files with 266 additions and 221 deletions

View File

@ -1,5 +1,5 @@
# =========================================================================== # ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_base.html # https://www.gnu.org/software/autoconf-archive/ax_boost_base.html
# =========================================================================== # ===========================================================================
# #
# SYNOPSIS # SYNOPSIS
@ -11,9 +11,9 @@
# Test for the Boost C++ libraries of a particular version (or newer) # Test for the Boost C++ libraries of a particular version (or newer)
# #
# If no path to the installed boost library is given the macro searches # If no path to the installed boost library is given the macro searches
# under /usr, /usr/local, /opt and /opt/local and evaluates the # under /usr, /usr/local, /opt, /opt/local and /opt/homebrew and evaluates
# $BOOST_ROOT environment variable. Further documentation is available at # the $BOOST_ROOT environment variable. Further documentation is available
# <http://randspringer.de/boost/index.html>. # at <http://randspringer.de/boost/index.html>.
# #
# This macro calls: # This macro calls:
# #
@ -33,7 +33,15 @@
# and this notice are preserved. This file is offered as-is, without any # and this notice are preserved. This file is offered as-is, without any
# warranty. # warranty.
#serial 26 #serial 51
# example boost program (need to pass version)
m4_define([_AX_BOOST_BASE_PROGRAM],
[AC_LANG_PROGRAM([[
#include <boost/version.hpp>
]],[[
(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($1))]));
]])])
AC_DEFUN([AX_BOOST_BASE], AC_DEFUN([AX_BOOST_BASE],
[ [
@ -44,110 +52,123 @@ AC_ARG_WITH([boost],
or disable it (ARG=no) or disable it (ARG=no)
@<:@ARG=yes@:>@ ])], @<:@ARG=yes@:>@ ])],
[ [
if test "$withval" = "no"; then AS_CASE([$withval],
want_boost="no" [no],[want_boost="no";_AX_BOOST_BASE_boost_path=""],
elif test "$withval" = "yes"; then [yes],[want_boost="yes";_AX_BOOST_BASE_boost_path=""],
want_boost="yes" [want_boost="yes";_AX_BOOST_BASE_boost_path="$withval"])
ac_boost_path=""
else
want_boost="yes"
ac_boost_path="$withval"
fi
], ],
[want_boost="yes"]) [want_boost="yes"])
AC_ARG_WITH([boost-libdir], AC_ARG_WITH([boost-libdir],
AS_HELP_STRING([--with-boost-libdir=LIB_DIR], [AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
[Force given directory for boost libraries. Note that this will override library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]), [Force given directory for boost libraries.
[ Note that this will override library path detection,
if test -d "$withval" so use this parameter only if default library detection fails
then and you know exactly where your boost libraries are located.])],
ac_boost_lib_path="$withval" [
else AS_IF([test -d "$withval"],
AC_MSG_ERROR(--with-boost-libdir expected directory name) [_AX_BOOST_BASE_boost_lib_path="$withval"],
fi [AC_MSG_ERROR([--with-boost-libdir expected directory name])])
], ],
[ac_boost_lib_path=""] [_AX_BOOST_BASE_boost_lib_path=""])
)
if test "x$want_boost" = "xyes"; then BOOST_LDFLAGS=""
boost_lib_version_req=ifelse([$1], ,1.20.0,$1) BOOST_CPPFLAGS=""
boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'` AS_IF([test "x$want_boost" = "xyes"],
boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'` [_AX_BOOST_BASE_RUNDETECT([$1],[$2],[$3])])
boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'` AC_SUBST(BOOST_CPPFLAGS)
boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` AC_SUBST(BOOST_LDFLAGS)
if test "x$boost_lib_version_req_sub_minor" = "x" ; then ])
boost_lib_version_req_sub_minor="0"
fi
WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor` # convert a version string in $2 to numeric and affect to polymorphic var $1
AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req) AC_DEFUN([_AX_BOOST_BASE_TONUMERICVERSION],[
AS_IF([test "x$2" = "x"],[_AX_BOOST_BASE_TONUMERICVERSION_req="1.20.0"],[_AX_BOOST_BASE_TONUMERICVERSION_req="$2"])
_AX_BOOST_BASE_TONUMERICVERSION_req_shorten=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\.[[0-9]]*\)'`
_AX_BOOST_BASE_TONUMERICVERSION_req_major=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\)'`
AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_major" = "x"],
[AC_MSG_ERROR([You should at least specify libboost major version])])
_AX_BOOST_BASE_TONUMERICVERSION_req_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.\([[0-9]]*\)'`
AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_minor" = "x"],
[_AX_BOOST_BASE_TONUMERICVERSION_req_minor="0"])
_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
AS_IF([test "X$_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor" = "X"],
[_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor="0"])
_AX_BOOST_BASE_TONUMERICVERSION_RET=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req_major \* 100000 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_minor \* 100 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor`
AS_VAR_SET($1,$_AX_BOOST_BASE_TONUMERICVERSION_RET)
])
dnl Run the detection of boost should be run only if $want_boost
AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[
_AX_BOOST_BASE_TONUMERICVERSION(WANT_BOOST_VERSION,[$1])
succeeded=no succeeded=no
AC_REQUIRE([AC_CANONICAL_HOST])
dnl On 64-bit systems check for system libraries in both lib64 and lib. dnl On 64-bit systems check for system libraries in both lib64 and lib.
dnl The former is specified by FHS, but e.g. Debian does not adhere to dnl The former is specified by FHS, but e.g. Debian does not adhere to
dnl this (as it rises problems for generic multi-arch support). dnl this (as it rises problems for generic multi-arch support).
dnl The last entry in the list is chosen by default when no libraries dnl The last entry in the list is chosen by default when no libraries
dnl are found, e.g. when only header-only libraries are installed! dnl are found, e.g. when only header-only libraries are installed!
libsubdirs="lib" AS_CASE([${host_cpu}],
ax_arch=`uname -m` [x86_64],[libsubdirs="lib64 libx32 lib lib64"],
case $ax_arch in [mips*64*],[libsubdirs="lib64 lib32 lib lib64"],
x86_64) [ppc64|powerpc64|s390x|sparc64|aarch64|ppc64le|powerpc64le|riscv64|e2k],[libsubdirs="lib64 lib lib64"],
libsubdirs="lib64 libx32 lib lib64" [libsubdirs="lib"]
;; )
ppc64|s390x|sparc64|aarch64|ppc64le)
libsubdirs="lib64 lib lib64 ppc64le"
;;
esac
dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give
dnl them priority over the other paths since, if libs are found there, they dnl them priority over the other paths since, if libs are found there, they
dnl are almost assuredly the ones desired. dnl are almost assuredly the ones desired.
AC_REQUIRE([AC_CANONICAL_HOST]) AS_CASE([${host_cpu}],
libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs" [i?86],[multiarch_libsubdir="lib/i386-${host_os}"],
[armv7l],[multiarch_libsubdir="lib/arm-${host_os}"],
case ${host_cpu} in [multiarch_libsubdir="lib/${host_cpu}-${host_os}"]
i?86) )
libsubdirs="lib/i386-${host_os} $libsubdirs"
;;
esac
dnl some arches may advertise a cpu type that doesn't line up with their
dnl prefix's cpu type. For example, uname may report armv7l while libs are
dnl installed to /usr/lib/arm-linux-gnueabihf. Try getting the compiler's
dnl value for an extra chance of finding the correct path.
libsubdirs="lib/`$CXX -dumpmachine 2>/dev/null` $libsubdirs"
dnl first we check the system location for boost libraries dnl first we check the system location for boost libraries
dnl this location is chosen if boost libraries are installed with the --layout=system option dnl this location is chosen if boost libraries are installed with the --layout=system option
dnl or if you install boost with RPM dnl or if you install boost with RPM
if test "$ac_boost_path" != ""; then AS_IF([test "x$_AX_BOOST_BASE_boost_path" != "x"],[
BOOST_CPPFLAGS="-I$ac_boost_path/include" AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) includes in "$_AX_BOOST_BASE_boost_path/include"])
for ac_boost_path_tmp in $libsubdirs; do AS_IF([test -d "$_AX_BOOST_BASE_boost_path/include" && test -r "$_AX_BOOST_BASE_boost_path/include"],[
if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then AC_MSG_RESULT([yes])
BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp" BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include"
break for _AX_BOOST_BASE_boost_path_tmp in $multiarch_libsubdir $libsubdirs; do
fi AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) lib path in "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp"])
done AS_IF([test -d "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" && test -r "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" ],[
elif test "$cross_compiling" != yes; then AC_MSG_RESULT([yes])
for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp";
if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then break;
for libsubdir in $libsubdirs ; do ],
if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi [AC_MSG_RESULT([no])])
done],[
AC_MSG_RESULT([no])])
],[
if test X"$cross_compiling" = Xyes; then
search_libsubdirs=$multiarch_libsubdir
else
search_libsubdirs="$multiarch_libsubdir $libsubdirs"
fi
for _AX_BOOST_BASE_boost_path_tmp in /usr /usr/local /opt /opt/local /opt/homebrew ; do
if test -d "$_AX_BOOST_BASE_boost_path_tmp/include/boost" && test -r "$_AX_BOOST_BASE_boost_path_tmp/include/boost" ; then
for libsubdir in $search_libsubdirs ; do
if ls "$_AX_BOOST_BASE_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done done
BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir" BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path_tmp/$libsubdir"
BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include" BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path_tmp/include"
break; break;
fi fi
done done
fi ])
dnl overwrite ld flags if we have required special directory with dnl overwrite ld flags if we have required special directory with
dnl --with-boost-libdir parameter dnl --with-boost-libdir parameter
if test "$ac_boost_lib_path" != ""; then AS_IF([test "x$_AX_BOOST_BASE_boost_lib_path" != "x"],
BOOST_LDFLAGS="-L$ac_boost_lib_path" [BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_lib_path"])
fi
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION)])
CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS export CPPFLAGS
@ -158,15 +179,7 @@ if test "x$want_boost" = "xyes"; then
AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXX])
AC_LANG_PUSH(C++) AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[
@%:@include <boost/version.hpp>
]], [[
#if BOOST_VERSION >= $WANT_BOOST_VERSION
// Everything is okay
#else
# error Boost version is too old
#endif
]])],[
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes)
succeeded=yes succeeded=yes
found_system=yes found_system=yes
@ -178,40 +191,50 @@ if test "x$want_boost" = "xyes"; then
dnl if we found no boost with system layout we search for boost libraries dnl if we found no boost with system layout we search for boost libraries
dnl built and installed without the --layout=system option or for a staged(not installed) version dnl built and installed without the --layout=system option or for a staged(not installed) version
if test "x$succeeded" != "xyes"; then if test "x$succeeded" != "xyes" ; then
CPPFLAGS="$CPPFLAGS_SAVED" CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED"
BOOST_CPPFLAGS= BOOST_CPPFLAGS=
BOOST_LDFLAGS= if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
BOOST_LDFLAGS=
fi
_version=0 _version=0
if test "$ac_boost_path" != ""; then if test -n "$_AX_BOOST_BASE_boost_path" ; then
if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path"; then
for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` _version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
V_CHECK=`expr $_version_tmp \> $_version` V_CHECK=`expr $_version_tmp \> $_version`
if test "$V_CHECK" = "1" ; then if test "x$V_CHECK" = "x1" ; then
_version=$_version_tmp _version=$_version_tmp
fi fi
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE" BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include/boost-$VERSION_UNDERSCORE"
done done
dnl if nothing found search for layout used in Windows distributions dnl if nothing found search for layout used in Windows distributions
if test -z "$BOOST_CPPFLAGS"; then if test -z "$BOOST_CPPFLAGS"; then
if test -d "$ac_boost_path/boost" && test -r "$ac_boost_path/boost"; then if test -d "$_AX_BOOST_BASE_boost_path/boost" && test -r "$_AX_BOOST_BASE_boost_path/boost"; then
BOOST_CPPFLAGS="-I$ac_boost_path" BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path"
fi fi
fi fi
dnl if we found something and BOOST_LDFLAGS was unset before
dnl (because "$_AX_BOOST_BASE_boost_lib_path" = ""), set it here.
if test -n "$BOOST_CPPFLAGS" && test -z "$BOOST_LDFLAGS"; then
for libsubdir in $libsubdirs ; do
if ls "$_AX_BOOST_BASE_boost_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done
BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$libsubdir"
fi
fi fi
else else
if test "$cross_compiling" != yes; then if test "x$cross_compiling" != "xyes" ; then
for ac_boost_path in /usr /usr/local /opt /opt/local ; do for _AX_BOOST_BASE_boost_path in /usr /usr/local /opt /opt/local /opt/homebrew ; do
if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path" ; then
for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` _version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
V_CHECK=`expr $_version_tmp \> $_version` V_CHECK=`expr $_version_tmp \> $_version`
if test "$V_CHECK" = "1" ; then if test "x$V_CHECK" = "x1" ; then
_version=$_version_tmp _version=$_version_tmp
best_path=$ac_boost_path best_path=$_AX_BOOST_BASE_boost_path
fi fi
done done
fi fi
@ -219,7 +242,7 @@ if test "x$want_boost" = "xyes"; then
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE" BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
if test "$ac_boost_lib_path" = ""; then if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
for libsubdir in $libsubdirs ; do for libsubdir in $libsubdirs ; do
if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done done
@ -227,7 +250,7 @@ if test "x$want_boost" = "xyes"; then
fi fi
fi fi
if test "x$BOOST_ROOT" != "x"; then if test -n "$BOOST_ROOT" ; then
for libsubdir in $libsubdirs ; do for libsubdir in $libsubdirs ; do
if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done done
@ -236,7 +259,7 @@ if test "x$want_boost" = "xyes"; then
stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'` stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'` stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
V_CHECK=`expr $stage_version_shorten \>\= $_version` V_CHECK=`expr $stage_version_shorten \>\= $_version`
if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then if test "x$V_CHECK" = "x1" && test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT) AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
BOOST_CPPFLAGS="-I$BOOST_ROOT" BOOST_CPPFLAGS="-I$BOOST_ROOT"
BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir" BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
@ -251,15 +274,7 @@ if test "x$want_boost" = "xyes"; then
export LDFLAGS export LDFLAGS
AC_LANG_PUSH(C++) AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[
@%:@include <boost/version.hpp>
]], [[
#if BOOST_VERSION >= $WANT_BOOST_VERSION
// Everything is okay
#else
# error Boost version is too old
#endif
]])],[
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes)
succeeded=yes succeeded=yes
found_system=yes found_system=yes
@ -268,17 +283,15 @@ if test "x$want_boost" = "xyes"; then
AC_LANG_POP([C++]) AC_LANG_POP([C++])
fi fi
if test "$succeeded" != "yes" ; then if test "x$succeeded" != "xyes" ; then
if test "$_version" = "0" ; then if test "x$_version" = "x0" ; then
AC_MSG_NOTICE([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]]) AC_MSG_NOTICE([[We could not detect the boost libraries (version $1 or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
else else
AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).]) AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
fi fi
# execute ACTION-IF-NOT-FOUND (if present): # execute ACTION-IF-NOT-FOUND (if present):
ifelse([$3], , :, [$3]) ifelse([$3], , :, [$3])
else else
AC_SUBST(BOOST_CPPFLAGS)
AC_SUBST(BOOST_LDFLAGS)
AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available]) AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
# execute ACTION-IF-FOUND (if present): # execute ACTION-IF-FOUND (if present):
ifelse([$2], , :, [$2]) ifelse([$2], , :, [$2])
@ -286,6 +299,5 @@ if test "x$want_boost" = "xyes"; then
CPPFLAGS="$CPPFLAGS_SAVED" CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED"
fi
]) ])

View File

@ -1,5 +1,5 @@
# =========================================================================== # ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_chrono.html # https://www.gnu.org/software/autoconf-archive/ax_boost_chrono.html
# =========================================================================== # ===========================================================================
# #
# SYNOPSIS # SYNOPSIS
@ -8,7 +8,7 @@
# #
# DESCRIPTION # DESCRIPTION
# #
# Test for System library from the Boost C++ libraries. The macro requires # Test for Chrono library from the Boost C++ libraries. The macro requires
# a preceding call to AX_BOOST_BASE. Further documentation is available at # a preceding call to AX_BOOST_BASE. Further documentation is available at
# <http://randspringer.de/boost/index.html>. # <http://randspringer.de/boost/index.html>.
# #
@ -29,7 +29,7 @@
# and this notice are preserved. This file is offered as-is, without any # and this notice are preserved. This file is offered as-is, without any
# warranty. # warranty.
#serial 1 #serial 5
AC_DEFUN([AX_BOOST_CHRONO], AC_DEFUN([AX_BOOST_CHRONO],
[ [
@ -68,7 +68,7 @@ AC_DEFUN([AX_BOOST_CHRONO],
CXXFLAGS_SAVE=$CXXFLAGS CXXFLAGS_SAVE=$CXXFLAGS
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/chrono.hpp>]], AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/chrono.hpp>]],
[[boost::chrono::system_clock::time_point time;]])], [[boost::chrono::system_clock::time_point* time = new boost::chrono::system_clock::time_point; delete time;]])],
ax_cv_boost_chrono=yes, ax_cv_boost_chrono=no) ax_cv_boost_chrono=yes, ax_cv_boost_chrono=no)
CXXFLAGS=$CXXFLAGS_SAVE CXXFLAGS=$CXXFLAGS_SAVE
AC_LANG_POP([C++]) AC_LANG_POP([C++])
@ -81,7 +81,6 @@ AC_DEFUN([AX_BOOST_CHRONO],
LDFLAGS_SAVE=$LDFLAGS LDFLAGS_SAVE=$LDFLAGS
if test "x$ax_boost_user_chrono_lib" = "x"; then if test "x$ax_boost_user_chrono_lib" = "x"; then
ax_lib=
for libextension in `ls $BOOSTLIBDIR/libboost_chrono*.so* $BOOSTLIBDIR/libboost_chrono*.dylib* $BOOSTLIBDIR/libboost_chrono*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_chrono.*\)\.so.*$;\1;' -e 's;^lib\(boost_chrono.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_chrono.*\)\.a.*$;\1;'` ; do for libextension in `ls $BOOSTLIBDIR/libboost_chrono*.so* $BOOSTLIBDIR/libboost_chrono*.dylib* $BOOSTLIBDIR/libboost_chrono*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_chrono.*\)\.so.*$;\1;' -e 's;^lib\(boost_chrono.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_chrono.*\)\.a.*$;\1;'` ; do
ax_lib=${libextension} ax_lib=${libextension}
AC_CHECK_LIB($ax_lib, exit, AC_CHECK_LIB($ax_lib, exit,
@ -106,7 +105,7 @@ AC_DEFUN([AX_BOOST_CHRONO],
fi fi
if test "x$ax_lib" = "x"; then if test "x$ax_lib" = "x"; then
AC_MSG_ERROR(Could not find a version of the boost_chrono library!) AC_MSG_ERROR(Could not find a version of the Boost::Chrono library!)
fi fi
if test "x$link_chrono" = "xno"; then if test "x$link_chrono" = "xno"; then
AC_MSG_ERROR(Could not link against $ax_lib !) AC_MSG_ERROR(Could not link against $ax_lib !)

View File

@ -1,5 +1,5 @@
# =========================================================================== # ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_filesystem.html # https://www.gnu.org/software/autoconf-archive/ax_boost_filesystem.html
# =========================================================================== # ===========================================================================
# #
# SYNOPSIS # SYNOPSIS
@ -31,7 +31,7 @@
# and this notice are preserved. This file is offered as-is, without any # and this notice are preserved. This file is offered as-is, without any
# warranty. # warranty.
#serial 26 #serial 28
AC_DEFUN([AX_BOOST_FILESYSTEM], AC_DEFUN([AX_BOOST_FILESYSTEM],
[ [
@ -80,7 +80,6 @@ AC_DEFUN([AX_BOOST_FILESYSTEM],
if test "x$ax_cv_boost_filesystem" = "xyes"; then if test "x$ax_cv_boost_filesystem" = "xyes"; then
AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available]) AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available])
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
ax_lib=
if test "x$ax_boost_user_filesystem_lib" = "x"; then if test "x$ax_boost_user_filesystem_lib" = "x"; then
for libextension in `ls -r $BOOSTLIBDIR/libboost_filesystem* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do for libextension in `ls -r $BOOSTLIBDIR/libboost_filesystem* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do
ax_lib=${libextension} ax_lib=${libextension}
@ -105,7 +104,7 @@ AC_DEFUN([AX_BOOST_FILESYSTEM],
fi fi
if test "x$ax_lib" = "x"; then if test "x$ax_lib" = "x"; then
AC_MSG_ERROR(Could not find a version of the boost_filesystem library!) AC_MSG_ERROR(Could not find a version of the Boost::Filesystem library!)
fi fi
if test "x$link_filesystem" != "xyes"; then if test "x$link_filesystem" != "xyes"; then
AC_MSG_ERROR(Could not link against $ax_lib !) AC_MSG_ERROR(Could not link against $ax_lib !)

View File

@ -1,6 +1,6 @@
# ============================================================================ # =============================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_program_options.html # https://www.gnu.org/software/autoconf-archive/ax_boost_program_options.html
# ============================================================================ # =============================================================================
# #
# SYNOPSIS # SYNOPSIS
# #
@ -29,7 +29,7 @@
# and this notice are preserved. This file is offered as-is, without any # and this notice are preserved. This file is offered as-is, without any
# warranty. # warranty.
#serial 24 #serial 26
AC_DEFUN([AX_BOOST_PROGRAM_OPTIONS], AC_DEFUN([AX_BOOST_PROGRAM_OPTIONS],
[ [
@ -96,7 +96,7 @@ AC_DEFUN([AX_BOOST_PROGRAM_OPTIONS],
done done
fi fi
if test "x$ax_lib" = "x"; then if test "x$ax_lib" = "x"; then
AC_MSG_ERROR(Could not find a version of the boost_program_options library!) AC_MSG_ERROR(Could not find a version of the Boost::Program_Options library!)
fi fi
if test "x$link_program_options" != "xyes"; then if test "x$link_program_options" != "xyes"; then
AC_MSG_ERROR([Could not link against [$ax_lib] !]) AC_MSG_ERROR([Could not link against [$ax_lib] !])

View File

@ -1,5 +1,5 @@
# =========================================================================== # ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_system.html # https://www.gnu.org/software/autoconf-archive/ax_boost_system.html
# =========================================================================== # ===========================================================================
# #
# SYNOPSIS # SYNOPSIS
@ -31,7 +31,7 @@
# and this notice are preserved. This file is offered as-is, without any # and this notice are preserved. This file is offered as-is, without any
# warranty. # warranty.
#serial 18 #serial 20
AC_DEFUN([AX_BOOST_SYSTEM], AC_DEFUN([AX_BOOST_SYSTEM],
[ [
@ -84,7 +84,6 @@ AC_DEFUN([AX_BOOST_SYSTEM],
LDFLAGS_SAVE=$LDFLAGS LDFLAGS_SAVE=$LDFLAGS
if test "x$ax_boost_user_system_lib" = "x"; then if test "x$ax_boost_user_system_lib" = "x"; then
ax_lib=
for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do
ax_lib=${libextension} ax_lib=${libextension}
AC_CHECK_LIB($ax_lib, exit, AC_CHECK_LIB($ax_lib, exit,
@ -109,7 +108,7 @@ AC_DEFUN([AX_BOOST_SYSTEM],
fi fi
if test "x$ax_lib" = "x"; then if test "x$ax_lib" = "x"; then
AC_MSG_ERROR(Could not find a version of the boost_system library!) AC_MSG_ERROR(Could not find a version of the Boost::System library!)
fi fi
if test "x$link_system" = "xno"; then if test "x$link_system" = "xno"; then
AC_MSG_ERROR(Could not link against $ax_lib !) AC_MSG_ERROR(Could not link against $ax_lib !)

View File

@ -1,5 +1,5 @@
# =========================================================================== # ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_thread.html # https://www.gnu.org/software/autoconf-archive/ax_boost_thread.html
# =========================================================================== # ===========================================================================
# #
# SYNOPSIS # SYNOPSIS
@ -30,73 +30,96 @@
# and this notice are preserved. This file is offered as-is, without any # and this notice are preserved. This file is offered as-is, without any
# warranty. # warranty.
#serial 27 #serial 33
AC_DEFUN([AX_BOOST_THREAD], AC_DEFUN([AX_BOOST_THREAD],
[ [
AC_ARG_WITH([boost-thread], AC_ARG_WITH([boost-thread],
AS_HELP_STRING([--with-boost-thread@<:@=special-lib@:>@], AS_HELP_STRING([--with-boost-thread@<:@=special-lib@:>@],
[use the Thread library from boost - it is possible to specify a certain library for the linker [use the Thread library from boost -
e.g. --with-boost-thread=boost_thread-gcc-mt ]), it is possible to specify a certain library for the linker
e.g. --with-boost-thread=boost_thread-gcc-mt ]),
[ [
if test "$withval" = "no"; then if test "$withval" = "yes"; then
want_boost="no"
elif test "$withval" = "yes"; then
want_boost="yes" want_boost="yes"
ax_boost_user_thread_lib="" ax_boost_user_thread_lib=""
else else
want_boost="yes" want_boost="yes"
ax_boost_user_thread_lib="$withval" ax_boost_user_thread_lib="$withval"
fi fi
], ],
[want_boost="yes"] [want_boost="yes"]
) )
if test "x$want_boost" = "xyes"; then if test "x$want_boost" = "xyes"; then
AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_BUILD]) AC_REQUIRE([AC_CANONICAL_BUILD])
CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS export CPPFLAGS
LDFLAGS_SAVED="$LDFLAGS" LDFLAGS_SAVED="$LDFLAGS"
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS export LDFLAGS
AC_CACHE_CHECK(whether the Boost::Thread library is available, AC_CACHE_CHECK(whether the Boost::Thread library is available,
ax_cv_boost_thread, ax_cv_boost_thread,
[AC_LANG_PUSH([C++]) [AC_LANG_PUSH([C++])
CXXFLAGS_SAVE=$CXXFLAGS CXXFLAGS_SAVE=$CXXFLAGS
if test "x$host_os" = "xsolaris" ; then case "x$host_os" in
CXXFLAGS="-pthreads $CXXFLAGS" xsolaris )
elif test "x$host_os" = "xmingw32" ; then CXXFLAGS="-pthreads $CXXFLAGS"
CXXFLAGS="-mthreads $CXXFLAGS" break;
else ;;
CXXFLAGS="-pthread $CXXFLAGS" xmingw32 )
fi CXXFLAGS="-mthreads $CXXFLAGS"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/thread/thread.hpp>]], break;
[[boost::thread_group thrds; ;;
return 0;]])], *android* )
ax_cv_boost_thread=yes, ax_cv_boost_thread=no) break;
CXXFLAGS=$CXXFLAGS_SAVE ;;
* )
CXXFLAGS="-pthread $CXXFLAGS"
break;
;;
esac
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM(
[[@%:@include <boost/thread/thread.hpp>]],
[[boost::thread_group thrds;
return 0;]])],
ax_cv_boost_thread=yes, ax_cv_boost_thread=no)
CXXFLAGS=$CXXFLAGS_SAVE
AC_LANG_POP([C++]) AC_LANG_POP([C++])
]) ])
if test "x$ax_cv_boost_thread" = "xyes"; then if test "x$ax_cv_boost_thread" = "xyes"; then
if test "x$host_os" = "xsolaris" ; then case "x$host_os" in
BOOST_CPPFLAGS="-pthreads $BOOST_CPPFLAGS" xsolaris )
elif test "x$host_os" = "xmingw32" ; then BOOST_CPPFLAGS="-pthreads $BOOST_CPPFLAGS"
BOOST_CPPFLAGS="-mthreads $BOOST_CPPFLAGS" break;
else ;;
BOOST_CPPFLAGS="-pthread $BOOST_CPPFLAGS" xmingw32 )
fi BOOST_CPPFLAGS="-mthreads $BOOST_CPPFLAGS"
break;
;;
*android* )
break;
;;
* )
BOOST_CPPFLAGS="-pthread $BOOST_CPPFLAGS"
break;
;;
esac
AC_SUBST(BOOST_CPPFLAGS) AC_SUBST(BOOST_CPPFLAGS)
AC_DEFINE(HAVE_BOOST_THREAD,,[define if the Boost::Thread library is available]) AC_DEFINE(HAVE_BOOST_THREAD,,
[define if the Boost::Thread library is available])
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
LDFLAGS_SAVE=$LDFLAGS LDFLAGS_SAVE=$LDFLAGS
case "x$host_os" in case "x$host_os" in
*bsd* ) *bsd* )
LDFLAGS="-pthread $LDFLAGS" LDFLAGS="-pthread $LDFLAGS"
@ -104,47 +127,61 @@ AC_DEFUN([AX_BOOST_THREAD],
;; ;;
esac esac
if test "x$ax_boost_user_thread_lib" = "x"; then if test "x$ax_boost_user_thread_lib" = "x"; then
ax_lib=
for libextension in `ls -r $BOOSTLIBDIR/libboost_thread* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'`; do for libextension in `ls -r $BOOSTLIBDIR/libboost_thread* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'`; do
ax_lib=${libextension} ax_lib=${libextension}
AC_CHECK_LIB($ax_lib, exit, AC_CHECK_LIB($ax_lib, exit,
[BOOST_THREAD_LIB="-l$ax_lib"; AC_SUBST(BOOST_THREAD_LIB) link_thread="yes"; break], [link_thread="yes"; break],
[link_thread="no"]) [link_thread="no"])
done done
if test "x$link_thread" != "xyes"; then if test "x$link_thread" != "xyes"; then
for libextension in `ls -r $BOOSTLIBDIR/boost_thread* 2>/dev/null | sed 's,.*/,,' | sed 's,\..*,,'`; do for libextension in `ls -r $BOOSTLIBDIR/boost_thread* 2>/dev/null | sed 's,.*/,,' | sed 's,\..*,,'`; do
ax_lib=${libextension} ax_lib=${libextension}
AC_CHECK_LIB($ax_lib, exit, AC_CHECK_LIB($ax_lib, exit,
[BOOST_THREAD_LIB="-l$ax_lib"; AC_SUBST(BOOST_THREAD_LIB) link_thread="yes"; break], [link_thread="yes"; break],
[link_thread="no"]) [link_thread="no"])
done done
fi fi
else else
for ax_lib in $ax_boost_user_thread_lib boost_thread-$ax_boost_user_thread_lib; do for ax_lib in $ax_boost_user_thread_lib boost_thread-$ax_boost_user_thread_lib; do
AC_CHECK_LIB($ax_lib, exit, AC_CHECK_LIB($ax_lib, exit,
[BOOST_THREAD_LIB="-l$ax_lib"; AC_SUBST(BOOST_THREAD_LIB) link_thread="yes"; break], [link_thread="yes"; break],
[link_thread="no"]) [link_thread="no"])
done done
fi fi
if test "x$ax_lib" = "x"; then if test "x$ax_lib" = "x"; then
AC_MSG_ERROR(Could not find a version of the boost_thread library!) AC_MSG_ERROR(Could not find a version of the Boost::Thread library!)
fi fi
if test "x$link_thread" = "xno"; then if test "x$link_thread" = "xno"; then
AC_MSG_ERROR(Could not link against $ax_lib !) AC_MSG_ERROR(Could not link against $ax_lib !)
else else
case "x$host_os" in BOOST_THREAD_LIB="-l$ax_lib"
*bsd* ) case "x$host_os" in
BOOST_LDFLAGS="-pthread $BOOST_LDFLAGS" *bsd* )
break; BOOST_LDFLAGS="-pthread $BOOST_LDFLAGS"
;; break;
esac ;;
xsolaris )
BOOST_THREAD_LIB="$BOOST_THREAD_LIB -lpthread"
break;
;;
xmingw32 )
break;
;;
*android* )
break;
;;
* )
BOOST_THREAD_LIB="$BOOST_THREAD_LIB -lpthread"
break;
;;
esac
AC_SUBST(BOOST_THREAD_LIB)
fi
fi
fi CPPFLAGS="$CPPFLAGS_SAVED"
fi LDFLAGS="$LDFLAGS_SAVED"
fi
CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED"
fi
]) ])

View File

@ -1,6 +1,6 @@
# ================================================================================ # =================================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_unit_test_framework.html # https://www.gnu.org/software/autoconf-archive/ax_boost_unit_test_framework.html
# ================================================================================ # =================================================================================
# #
# SYNOPSIS # SYNOPSIS
# #
@ -29,7 +29,7 @@
# and this notice are preserved. This file is offered as-is, without any # and this notice are preserved. This file is offered as-is, without any
# warranty. # warranty.
#serial 19 #serial 22
AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK], AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK],
[ [
@ -66,7 +66,7 @@ AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK],
[AC_LANG_PUSH([C++]) [AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/test/unit_test.hpp>]], AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/test/unit_test.hpp>]],
[[using boost::unit_test::test_suite; [[using boost::unit_test::test_suite;
test_suite* test= BOOST_TEST_SUITE( "Unit test example 1" ); return 0;]])], test_suite* test= BOOST_TEST_SUITE( "Unit test example 1" ); if (test == NULL) { return 1; } else { return 0; }]])],
ax_cv_boost_unit_test_framework=yes, ax_cv_boost_unit_test_framework=no) ax_cv_boost_unit_test_framework=yes, ax_cv_boost_unit_test_framework=no)
AC_LANG_POP([C++]) AC_LANG_POP([C++])
]) ])
@ -76,7 +76,6 @@ AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK],
if test "x$ax_boost_user_unit_test_framework_lib" = "x"; then if test "x$ax_boost_user_unit_test_framework_lib" = "x"; then
saved_ldflags="${LDFLAGS}" saved_ldflags="${LDFLAGS}"
ax_lib=
for monitor_library in `ls $BOOSTLIBDIR/libboost_unit_test_framework*.so* $BOOSTLIBDIR/libboost_unit_test_framework*.dylib* $BOOSTLIBDIR/libboost_unit_test_framework*.a* 2>/dev/null` ; do for monitor_library in `ls $BOOSTLIBDIR/libboost_unit_test_framework*.so* $BOOSTLIBDIR/libboost_unit_test_framework*.dylib* $BOOSTLIBDIR/libboost_unit_test_framework*.a* 2>/dev/null` ; do
if test -r $monitor_library ; then if test -r $monitor_library ; then
libextension=`echo $monitor_library | sed 's,.*/,,' | sed -e 's;^lib\(boost_unit_test_framework.*\)\.so.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.a.*$;\1;'` libextension=`echo $monitor_library | sed 's,.*/,,' | sed -e 's;^lib\(boost_unit_test_framework.*\)\.so.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.a.*$;\1;'`
@ -125,7 +124,7 @@ AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK],
done done
fi fi
if test "x$ax_lib" = "x"; then if test "x$ax_lib" = "x"; then
AC_MSG_ERROR(Could not find a version of the boost_unit_test_framework library!) AC_MSG_ERROR(Could not find a version of the Boost::Unit_Test_Framework library!)
fi fi
if test "x$link_unit_test_framework" != "xyes"; then if test "x$link_unit_test_framework" != "xyes"; then
AC_MSG_ERROR(Could not link against $ax_lib !) AC_MSG_ERROR(Could not link against $ax_lib !)