Build: update boost m4 macros

This commit is contained in:
Rodger Combs 2017-11-25 23:17:58 -06:00 committed by Thomas Goyne
parent 3bc5e8f04f
commit 3632ad067d
3 changed files with 245 additions and 216 deletions

View file

@ -2,6 +2,12 @@ m4_include([m4macros/ac_agi.m4])
m4_include([m4macros/ac_flag.m4]) m4_include([m4macros/ac_flag.m4])
m4_include([m4macros/agi_find_libheader.m4]) m4_include([m4macros/agi_find_libheader.m4])
m4_include([m4macros/ax_boost_base.m4]) m4_include([m4macros/ax_boost_base.m4])
m4_include([m4macros/ax_boost_chrono.m4])
m4_include([m4macros/ax_boost_filesystem.m4])
m4_include([m4macros/ax_boost_locale.m4])
m4_include([m4macros/ax_boost_regex.m4])
m4_include([m4macros/ax_boost_system.m4])
m4_include([m4macros/ax_boost_thread.m4])
m4_include([m4macros/ax_check_gl.m4]) m4_include([m4macros/ax_check_gl.m4])
m4_include([m4macros/ax_lang_compiler_ms.m4]) m4_include([m4macros/ax_lang_compiler_ms.m4])
m4_include([m4macros/ax_pthread.m4]) m4_include([m4macros/ax_pthread.m4])

View file

@ -211,12 +211,12 @@ AS_IF([test x$build_darwin != xyes], [
PKG_CHECK_MODULES(LIBASS, libass >= libass_required_version) PKG_CHECK_MODULES(LIBASS, libass >= libass_required_version)
AX_BOOST_BASE([boost_required_version]) AX_BOOST_BASE([boost_required_version])
AX_BOOST_LIB(chrono, BOOST_CHRONO_LIB, [chrono.hpp], [boost::chrono::system_clock::time_point time]) AX_BOOST_CHRONO
AX_BOOST_LIB(filesystem, BOOST_FILESYSTEM_LIB, [filesystem/path.hpp], [boost::filesystem::path("data.txt")]) AX_BOOST_FILESYSTEM
AX_BOOST_LIB(locale, BOOST_LOCALE_LIB, [locale.hpp], [boost::locale::generator{}]) AX_BOOST_LOCALE
AX_BOOST_LIB(regex, BOOST_REGEX_LIB, [regex.hpp], [boost::regex{}]) AX_BOOST_REGEX
AX_BOOST_LIB(system, BOOST_SYSTEM_LIB, [system/error_code.hpp], [boost::system::system_category]) AX_BOOST_SYSTEM
AX_BOOST_LIB(thread, BOOST_THREAD_LIB, [thread/thread.hpp], [boost::thread_group{}]) AX_BOOST_THREAD
cppflags_bak="$CPPFLAGS" cppflags_bak="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"

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
@ -33,246 +33,269 @@
# 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 20 #serial 42
AC_DEFUN([AX_BOOST_BASE], [ # 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_ARG_WITH([boost], AC_ARG_WITH([boost],
[AS_HELP_STRING([--with-boost=PATH], [use Boost library from the specified location])], [AS_HELP_STRING([--with-boost@<:@=ARG@:>@],
[ac_boost_path="$withval"], [use Boost library from a standard location (ARG=yes),
[ac_boost_path=""]) from the specified location (ARG=<path>),
or disable it (ARG=no)
@<:@ARG=yes@:>@ ])],
[
AS_CASE([$withval],
[no],[want_boost="no";_AX_BOOST_BASE_boost_path=""],
[yes],[want_boost="yes";_AX_BOOST_BASE_boost_path=""],
[want_boost="yes";_AX_BOOST_BASE_boost_path="$withval"])
],
[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. [Force given directory for boost libraries.
Note that this will override library path detection, Note that this will override library path detection,
so use this parameter only if default library so use this parameter only if default library detection fails
detection fails and you know exactly where your and you know exactly where your boost libraries are located.])],
boost libraries are located.]), [
[ac_boost_lib_path="$withval"], AS_IF([test -d "$withval"],
[ac_boost_lib_path=""]) [_AX_BOOST_BASE_boost_lib_path="$withval"],
[AC_MSG_ERROR([--with-boost-libdir expected directory name])])
],
[_AX_BOOST_BASE_boost_lib_path=""])
boost_lib_version_req=ifelse([$1], ,1.20.0,$1) BOOST_LDFLAGS=""
boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'` BOOST_CPPFLAGS=""
boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'` AS_IF([test "x$want_boost" = "xyes"],
boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'` [_AX_BOOST_BASE_RUNDETECT([$1],[$2],[$3])])
boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` AC_SUBST(BOOST_CPPFLAGS)
if test "x$boost_lib_version_req_sub_minor" = "x"; then AC_SUBST(BOOST_LDFLAGS)
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`
AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
succeeded=no
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 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 are found, e.g. when only header-only libraries are installed!
libsubdirs="lib"
ax_arch=`uname -m`
if test $ax_arch = x86_64 -o $ax_arch = ppc64 -o $ax_arch = s390x -o $ax_arch = sparc64; then
libsubdirs="lib64 lib lib64"
fi
dnl first we check the system location for boost libraries # convert a version string in $2 to numeric and affect to polymorphic var $1
dnl this location ist chosen if boost libraries are installed with the --layout=system option AC_DEFUN([_AX_BOOST_BASE_TONUMERICVERSION],[
dnl or if you install boost with RPM AS_IF([test "x$2" = "x"],[_AX_BOOST_BASE_TONUMERICVERSION_req="1.20.0"],[_AX_BOOST_BASE_TONUMERICVERSION_req="$2"])
if test "$ac_boost_path" != ""; then _AX_BOOST_BASE_TONUMERICVERSION_req_shorten=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\.[[0-9]]*\)'`
BOOST_CPPFLAGS="-I$ac_boost_path/include" _AX_BOOST_BASE_TONUMERICVERSION_req_major=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\)'`
for ac_boost_path_tmp in $libsubdirs; do AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_major" = "x"],
if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then [AC_MSG_ERROR([You should at least specify libboost major version])])
BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp" _AX_BOOST_BASE_TONUMERICVERSION_req_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.\([[0-9]]*\)'`
break AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_minor" = "x"],
fi [_AX_BOOST_BASE_TONUMERICVERSION_req_minor="0"])
done _AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
elif test "$cross_compiling" != yes; then AS_IF([test "X$_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor" = "X"],
for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do [_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor="0"])
if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then _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`
for libsubdir in $libsubdirs ; do AS_VAR_SET($1,$_AX_BOOST_BASE_TONUMERICVERSION_RET)
if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi ])
done
BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir"
BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
break;
fi
done
fi
dnl overwrite ld flags if we have required special directory with dnl Run the detection of boost should be run only if $want_boost
dnl --with-boost-libdir parameter AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[
if test "$ac_boost_lib_path" != ""; then _AX_BOOST_BASE_TONUMERICVERSION(WANT_BOOST_VERSION,[$1])
BOOST_LDFLAGS="-L$ac_boost_lib_path" succeeded=no
fi
CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS
LDFLAGS_SAVED="$LDFLAGS" AC_REQUIRE([AC_CANONICAL_HOST])
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" dnl On 64-bit systems check for system libraries in both lib64 and lib.
export LDFLAGS 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 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!
AS_CASE([${host_cpu}],
[x86_64],[libsubdirs="lib64 libx32 lib lib64"],
[ppc64|s390x|sparc64|aarch64|ppc64le],[libsubdirs="lib64 lib lib64"],
[libsubdirs="lib"],
)
AC_REQUIRE([AC_PROG_CXX]) dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give
AC_LANG_PUSH(C++) dnl them priority over the other paths since, if libs are found there, they
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ dnl are almost assuredly the ones desired.
@%:@include <boost/version.hpp> AS_CASE([${host_cpu}],
]], [[ [i?86],[multiarch_libsubdir="lib/i386-${host_os}"],
#if BOOST_VERSION >= $WANT_BOOST_VERSION [multiarch_libsubdir="lib/${host_cpu}-${host_os}"]
// Everything is okay )
#else
# error Boost version is too old dnl first we check the system location for boost libraries
#endif dnl this location ist chosen if boost libraries are installed with the --layout=system option
]])],[ dnl or if you install boost with RPM
AC_MSG_RESULT(yes) AS_IF([test "x$_AX_BOOST_BASE_boost_path" != "x"],[
succeeded=yes AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) includes in "$_AX_BOOST_BASE_boost_path/include"])
found_system=yes AS_IF([test -d "$_AX_BOOST_BASE_boost_path/include" && test -r "$_AX_BOOST_BASE_boost_path/include"],[
AC_MSG_RESULT([yes])
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include"
for _AX_BOOST_BASE_boost_path_tmp in $multiarch_libsubdir $libsubdirs; do
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) lib path in "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp"])
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" ],[
AC_MSG_RESULT([yes])
BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp";
break;
],
[AC_MSG_RESULT([no])])
done],[
AC_MSG_RESULT([no])])
],[ ],[
]) if test X"$cross_compiling" = Xyes; then
AC_LANG_POP([C++]) search_libsubdirs=$multiarch_libsubdir
else
dnl if we found no boost with system layout we search for boost libraries search_libsubdirs="$multiarch_libsubdir $libsubdirs"
dnl built and installed without the --layout=system option or for a staged(not installed) version
if test "x$succeeded" != "xyes"; then
_version=0
if test "$ac_boost_path" != ""; then
if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
V_CHECK=`expr $_version_tmp \> $_version`
if test "$V_CHECK" = "1" ; then
_version=$_version_tmp
fi
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
done
fi fi
else for _AX_BOOST_BASE_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
if test "$cross_compiling" != yes; then if test -d "$_AX_BOOST_BASE_boost_path_tmp/include/boost" && test -r "$_AX_BOOST_BASE_boost_path_tmp/include/boost" ; then
for ac_boost_path in /usr /usr/local /opt /opt/local ; do for libsubdir in $search_libsubdirs ; do
if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then if ls "$_AX_BOOST_BASE_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
V_CHECK=`expr $_version_tmp \> $_version`
if test "$V_CHECK" = "1" ; then
_version=$_version_tmp
best_path=$ac_boost_path
fi
done
fi
done
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
if test "$ac_boost_lib_path" = ""; then
for libsubdir in $libsubdirs ; do
if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done done
BOOST_LDFLAGS="-L$best_path/$libsubdir" BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path_tmp/$libsubdir"
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path_tmp/include"
break;
fi fi
fi done
])
if test "x$BOOST_ROOT" != "x"; then dnl overwrite ld flags if we have required special directory with
for libsubdir in $libsubdirs ; do dnl --with-boost-libdir parameter
if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi AS_IF([test "x$_AX_BOOST_BASE_boost_lib_path" != "x"],
done [BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_lib_path"])
if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
V_CHECK=`expr $stage_version_shorten \>\= $_version`
if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then
AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
BOOST_CPPFLAGS="-I$BOOST_ROOT"
BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
fi
fi
fi
fi
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION)])
CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS export CPPFLAGS
LDFLAGS_SAVED="$LDFLAGS"
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS export LDFLAGS
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
],[ ],[
]) ])
AC_LANG_POP([C++]) AC_LANG_POP([C++])
fi
if test "$succeeded" != "yes" ; then
if test "$_version" = "0" ; then
AC_MSG_ERROR([[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.]]) dnl if we found no boost with system layout we search for boost libraries
else dnl built and installed without the --layout=system option or for a staged(not installed) version
AC_MSG_ERROR([Your boost libraries seem too old (version $_version).]) if test "x$succeeded" != "xyes" ; then
CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED"
BOOST_CPPFLAGS=
if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
BOOST_LDFLAGS=
fi
_version=0
if test -n "$_AX_BOOST_BASE_boost_path" ; then
if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path"; then
for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
V_CHECK=`expr $_version_tmp \> $_version`
if test "x$V_CHECK" = "x1" ; then
_version=$_version_tmp
fi
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include/boost-$VERSION_UNDERSCORE"
done
dnl if nothing found search for layout used in Windows distributions
if test -z "$BOOST_CPPFLAGS"; then
if test -d "$_AX_BOOST_BASE_boost_path/boost" && test -r "$_AX_BOOST_BASE_boost_path/boost"; then
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path"
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
else
if test "x$cross_compiling" != "xyes" ; then
for _AX_BOOST_BASE_boost_path in /usr /usr/local /opt /opt/local ; do
if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path" ; then
for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
V_CHECK=`expr $_version_tmp \> $_version`
if test "x$V_CHECK" = "x1" ; then
_version=$_version_tmp
best_path=$_AX_BOOST_BASE_boost_path
fi
done
fi
done
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
for libsubdir in $libsubdirs ; do
if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done
BOOST_LDFLAGS="-L$best_path/$libsubdir"
fi
fi
if test -n "$BOOST_ROOT" ; then
for libsubdir in $libsubdirs ; do
if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done
if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
V_CHECK=`expr $stage_version_shorten \>\= $_version`
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)
BOOST_CPPFLAGS="-I$BOOST_ROOT"
BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
fi
fi
fi
fi
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS
AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[
AC_MSG_RESULT(yes)
succeeded=yes
found_system=yes
],[
])
AC_LANG_POP([C++])
fi fi
# execute ACTION-IF-NOT-FOUND (if present):
ifelse([$3], , :, [$3])
else
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
AC_SUBST(BOOST_CPPFLAGS)
AC_SUBST(BOOST_LDFLAGS)
# execute ACTION-IF-FOUND (if present):
ifelse([$2], , :, [$2])
fi
CPPFLAGS="$CPPFLAGS_SAVED" if test "x$succeeded" != "xyes" ; then
LDFLAGS="$LDFLAGS_SAVED" if test "x$_version" = "x0" ; then
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
AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
fi
# execute ACTION-IF-NOT-FOUND (if present):
ifelse([$3], , :, [$3])
else
AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
# execute ACTION-IF-FOUND (if present):
ifelse([$2], , :, [$2])
fi
CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED"
]) ])
AC_DEFUN([AX_BOOST_LIB], [
AC_ARG_WITH([boost-$1],
AS_HELP_STRING([--with-boost-$1=LIBNAME],
[Override the name of the library for boost.$1
e.g. --with-boost-$1=boost_$1-gcc-mt]),
[ax_boost_lib="$withval"],
[ax_boost_lib="boost_$1"])
CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS
LDFLAGS_SAVED="$LDFLAGS"
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS
AS_IF([test x$enable_sanity_checks != xno],
[AC_CHECK_LIB($ax_boost_lib, exit, [ax_boost_actual_lib="-l$ax_boost_lib"])],
[ax_boost_actual_lib="-l$ax_boost_lib"])
if test "x$ax_boost_actual_lib" = "x"; then
for lib in `ls -r $BOOSTLIBDIR/libboost_$1* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'`; do
ax_boost_lib=${lib}
AC_CHECK_LIB($ax_boost_lib, exit, [ax_boost_actual_lib="-l$ax_boost_lib"; break])
done
fi
if test "x$ax_boost_actual_lib" = "x"; then
for lib in `ls -r $BOOSTLIBDIR/boost_$1* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do
ax_boost_lib=${lib}
AC_CHECK_LIB($ax_boost_lib, exit, [ax_boost_actual_lib="-l$ax_boost_lib"; break])
done
fi
if test "x$ax_boost_actual_lib" = "x"; then
AC_MSG_ERROR(Could not find a working version of the library!)
fi
eval $2="$ax_boost_actual_lib"
AC_SUBST($2)
CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED"
])