7 changed files with 556 additions and 3 deletions
@ -0,0 +1,110 @@ |
|||
# =========================================================================== |
|||
# https://www.gnu.org/software/autoconf-archive/ax_boost_asio.html |
|||
# =========================================================================== |
|||
# |
|||
# SYNOPSIS |
|||
# |
|||
# AX_BOOST_ASIO |
|||
# |
|||
# DESCRIPTION |
|||
# |
|||
# Test for Asio library from the Boost C++ libraries. The macro requires a |
|||
# preceding call to AX_BOOST_BASE. Further documentation is available at |
|||
# <http://randspringer.de/boost/index.html>. |
|||
# |
|||
# This macro calls: |
|||
# |
|||
# AC_SUBST(BOOST_ASIO_LIB) |
|||
# |
|||
# And sets: |
|||
# |
|||
# HAVE_BOOST_ASIO |
|||
# |
|||
# LICENSE |
|||
# |
|||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de> |
|||
# Copyright (c) 2008 Pete Greenwell <pete@mu.org> |
|||
# |
|||
# Copying and distribution of this file, with or without modification, are |
|||
# permitted in any medium without royalty provided the copyright notice |
|||
# and this notice are preserved. This file is offered as-is, without any |
|||
# warranty. |
|||
|
|||
#serial 18 |
|||
|
|||
AC_DEFUN([AX_BOOST_ASIO], |
|||
[ |
|||
AC_ARG_WITH([boost-asio], |
|||
AS_HELP_STRING([--with-boost-asio@<:@=special-lib@:>@], |
|||
[use the ASIO library from boost - it is possible to specify a certain library for the linker |
|||
e.g. --with-boost-asio=boost_system-gcc41-mt-1_34 ]), |
|||
[ |
|||
if test "$withval" = "no"; then |
|||
want_boost="no" |
|||
elif test "$withval" = "yes"; then |
|||
want_boost="yes" |
|||
ax_boost_user_asio_lib="" |
|||
else |
|||
want_boost="yes" |
|||
ax_boost_user_asio_lib="$withval" |
|||
fi |
|||
], |
|||
[want_boost="yes"] |
|||
) |
|||
|
|||
if test "x$want_boost" = "xyes"; then |
|||
AC_REQUIRE([AC_PROG_CC]) |
|||
CPPFLAGS_SAVED="$CPPFLAGS" |
|||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" |
|||
export CPPFLAGS |
|||
|
|||
LDFLAGS_SAVED="$LDFLAGS" |
|||
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" |
|||
export LDFLAGS |
|||
|
|||
AC_CACHE_CHECK(whether the Boost::ASIO library is available, |
|||
ax_cv_boost_asio, |
|||
[AC_LANG_PUSH([C++]) |
|||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @%:@include <boost/asio.hpp> |
|||
]], |
|||
[[ |
|||
|
|||
boost::asio::io_service io; |
|||
boost::system::error_code timer_result; |
|||
boost::asio::deadline_timer t(io); |
|||
t.cancel(); |
|||
io.run_one(); |
|||
return 0; |
|||
]])], |
|||
ax_cv_boost_asio=yes, ax_cv_boost_asio=no) |
|||
AC_LANG_POP([C++]) |
|||
]) |
|||
if test "x$ax_cv_boost_asio" = "xyes"; then |
|||
AC_DEFINE(HAVE_BOOST_ASIO,,[define if the Boost::ASIO library is available]) |
|||
BN=boost_system |
|||
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` |
|||
if test "x$ax_boost_user_asio_lib" = "x"; then |
|||
for ax_lib in `ls $BOOSTLIBDIR/libboost_system*.so* $BOOSTLIBDIR/libboost_system*.dylib* $BOOSTLIBDIR/libboost_system*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_system.*\)\.so.*$;\1;' -e 's;^lib\(boost_system.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_system.*\)\.a.*$;\1;' ` ; do |
|||
AC_CHECK_LIB($ax_lib, main, [BOOST_ASIO_LIB="-l$ax_lib" AC_SUBST(BOOST_ASIO_LIB) link_thread="yes" break], |
|||
[link_thread="no"]) |
|||
done |
|||
else |
|||
for ax_lib in $ax_boost_user_asio_lib $BN-$ax_boost_user_asio_lib; do |
|||
AC_CHECK_LIB($ax_lib, main, |
|||
[BOOST_ASIO_LIB="-l$ax_lib" AC_SUBST(BOOST_ASIO_LIB) link_asio="yes" break], |
|||
[link_asio="no"]) |
|||
done |
|||
|
|||
fi |
|||
if test "x$ax_lib" = "x"; then |
|||
AC_MSG_ERROR(Could not find a version of the Boost::Asio library!) |
|||
fi |
|||
if test "x$link_asio" = "xno"; then |
|||
AC_MSG_ERROR(Could not link against $ax_lib !) |
|||
fi |
|||
fi |
|||
|
|||
CPPFLAGS="$CPPFLAGS_SAVED" |
|||
LDFLAGS="$LDFLAGS_SAVED" |
|||
fi |
|||
]) |
|||
@ -0,0 +1,303 @@ |
|||
# =========================================================================== |
|||
# https://www.gnu.org/software/autoconf-archive/ax_boost_base.html |
|||
# =========================================================================== |
|||
# |
|||
# SYNOPSIS |
|||
# |
|||
# AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) |
|||
# |
|||
# DESCRIPTION |
|||
# |
|||
# Test for the Boost C++ libraries of a particular version (or newer) |
|||
# |
|||
# If no path to the installed boost library is given the macro searchs |
|||
# under /usr, /usr/local, /opt and /opt/local and evaluates the |
|||
# $BOOST_ROOT environment variable. Further documentation is available at |
|||
# <http://randspringer.de/boost/index.html>. |
|||
# |
|||
# This macro calls: |
|||
# |
|||
# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS) |
|||
# |
|||
# And sets: |
|||
# |
|||
# HAVE_BOOST |
|||
# |
|||
# LICENSE |
|||
# |
|||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de> |
|||
# Copyright (c) 2009 Peter Adolphs |
|||
# |
|||
# Copying and distribution of this file, with or without modification, are |
|||
# permitted in any medium without royalty provided the copyright notice |
|||
# and this notice are preserved. This file is offered as-is, without any |
|||
# warranty. |
|||
|
|||
#serial 49 |
|||
|
|||
# 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], |
|||
[AS_HELP_STRING([--with-boost@<:@=ARG@:>@], |
|||
[use Boost library from a standard location (ARG=yes), |
|||
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], |
|||
[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.])], |
|||
[ |
|||
AS_IF([test -d "$withval"], |
|||
[_AX_BOOST_BASE_boost_lib_path="$withval"], |
|||
[AC_MSG_ERROR([--with-boost-libdir expected directory name])]) |
|||
], |
|||
[_AX_BOOST_BASE_boost_lib_path=""]) |
|||
|
|||
BOOST_LDFLAGS="" |
|||
BOOST_CPPFLAGS="" |
|||
AS_IF([test "x$want_boost" = "xyes"], |
|||
[_AX_BOOST_BASE_RUNDETECT([$1],[$2],[$3])]) |
|||
AC_SUBST(BOOST_CPPFLAGS) |
|||
AC_SUBST(BOOST_LDFLAGS) |
|||
]) |
|||
|
|||
|
|||
# convert a version string in $2 to numeric and affect to polymorphic var $1 |
|||
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 |
|||
|
|||
|
|||
AC_REQUIRE([AC_CANONICAL_HOST]) |
|||
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! |
|||
AS_CASE([${host_cpu}], |
|||
[x86_64],[libsubdirs="lib64 libx32 lib lib64"], |
|||
[mips*64*],[libsubdirs="lib64 lib32 lib lib64"], |
|||
[ppc64|powerpc64|s390x|sparc64|aarch64|ppc64le|powerpc64le|riscv64|e2k],[libsubdirs="lib64 lib lib64"], |
|||
[libsubdirs="lib"] |
|||
) |
|||
|
|||
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 are almost assuredly the ones desired. |
|||
AS_CASE([${host_cpu}], |
|||
[i?86],[multiarch_libsubdir="lib/i386-${host_os}"], |
|||
[armv7l],[multiarch_libsubdir="lib/arm-${host_os}"], |
|||
[multiarch_libsubdir="lib/${host_cpu}-${host_os}"] |
|||
) |
|||
|
|||
dnl first we check the system location for boost libraries |
|||
dnl this location ist chosen if boost libraries are installed with the --layout=system option |
|||
dnl or if you install boost with RPM |
|||
AS_IF([test "x$_AX_BOOST_BASE_boost_path" != "x"],[ |
|||
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) includes in "$_AX_BOOST_BASE_boost_path/include"]) |
|||
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 |
|||
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 ; 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 |
|||
BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path_tmp/$libsubdir" |
|||
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path_tmp/include" |
|||
break; |
|||
fi |
|||
done |
|||
]) |
|||
|
|||
dnl overwrite ld flags if we have required special directory with |
|||
dnl --with-boost-libdir parameter |
|||
AS_IF([test "x$_AX_BOOST_BASE_boost_lib_path" != "x"], |
|||
[BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_lib_path"]) |
|||
|
|||
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION)]) |
|||
CPPFLAGS_SAVED="$CPPFLAGS" |
|||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" |
|||
export CPPFLAGS |
|||
|
|||
LDFLAGS_SAVED="$LDFLAGS" |
|||
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" |
|||
export LDFLAGS |
|||
|
|||
AC_REQUIRE([AC_PROG_CXX]) |
|||
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++]) |
|||
|
|||
|
|||
|
|||
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 |
|||
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 |
|||
|
|||
if test "x$succeeded" != "xyes" ; then |
|||
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" |
|||
|
|||
]) |
|||
@ -0,0 +1,111 @@ |
|||
# =========================================================================== |
|||
# https://www.gnu.org/software/autoconf-archive/ax_boost_regex.html |
|||
# =========================================================================== |
|||
# |
|||
# SYNOPSIS |
|||
# |
|||
# AX_BOOST_REGEX |
|||
# |
|||
# DESCRIPTION |
|||
# |
|||
# Test for Regex library from the Boost C++ libraries. The macro requires |
|||
# a preceding call to AX_BOOST_BASE. Further documentation is available at |
|||
# <http://randspringer.de/boost/index.html>. |
|||
# |
|||
# This macro calls: |
|||
# |
|||
# AC_SUBST(BOOST_REGEX_LIB) |
|||
# |
|||
# And sets: |
|||
# |
|||
# HAVE_BOOST_REGEX |
|||
# |
|||
# LICENSE |
|||
# |
|||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de> |
|||
# Copyright (c) 2008 Michael Tindal |
|||
# |
|||
# Copying and distribution of this file, with or without modification, are |
|||
# permitted in any medium without royalty provided the copyright notice |
|||
# and this notice are preserved. This file is offered as-is, without any |
|||
# warranty. |
|||
|
|||
#serial 23 |
|||
|
|||
AC_DEFUN([AX_BOOST_REGEX], |
|||
[ |
|||
AC_ARG_WITH([boost-regex], |
|||
AS_HELP_STRING([--with-boost-regex@<:@=special-lib@:>@], |
|||
[use the Regex library from boost - it is possible to specify a certain library for the linker |
|||
e.g. --with-boost-regex=boost_regex-gcc-mt-d-1_33_1 ]), |
|||
[ |
|||
if test "$withval" = "no"; then |
|||
want_boost="no" |
|||
elif test "$withval" = "yes"; then |
|||
want_boost="yes" |
|||
ax_boost_user_regex_lib="" |
|||
else |
|||
want_boost="yes" |
|||
ax_boost_user_regex_lib="$withval" |
|||
fi |
|||
], |
|||
[want_boost="yes"] |
|||
) |
|||
|
|||
if test "x$want_boost" = "xyes"; then |
|||
AC_REQUIRE([AC_PROG_CC]) |
|||
CPPFLAGS_SAVED="$CPPFLAGS" |
|||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" |
|||
export CPPFLAGS |
|||
|
|||
LDFLAGS_SAVED="$LDFLAGS" |
|||
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" |
|||
export LDFLAGS |
|||
|
|||
AC_CACHE_CHECK(whether the Boost::Regex library is available, |
|||
ax_cv_boost_regex, |
|||
[AC_LANG_PUSH([C++]) |
|||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/regex.hpp> |
|||
]], |
|||
[[boost::regex r(); return 0;]])], |
|||
ax_cv_boost_regex=yes, ax_cv_boost_regex=no) |
|||
AC_LANG_POP([C++]) |
|||
]) |
|||
if test "x$ax_cv_boost_regex" = "xyes"; then |
|||
AC_DEFINE(HAVE_BOOST_REGEX,,[define if the Boost::Regex library is available]) |
|||
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` |
|||
if test "x$ax_boost_user_regex_lib" = "x"; then |
|||
for libextension in `ls $BOOSTLIBDIR/libboost_regex*.so* $BOOSTLIBDIR/libboost_regex*.dylib* $BOOSTLIBDIR/libboost_regex*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_regex.*\)\.so.*$;\1;' -e 's;^lib\(boost_regex.*\)\.dylib.*;\1;' -e 's;^lib\(boost_regex.*\)\.a.*$;\1;'` ; do |
|||
ax_lib=${libextension} |
|||
AC_CHECK_LIB($ax_lib, exit, |
|||
[BOOST_REGEX_LIB="-l$ax_lib"; AC_SUBST(BOOST_REGEX_LIB) link_regex="yes"; break], |
|||
[link_regex="no"]) |
|||
done |
|||
if test "x$link_regex" != "xyes"; then |
|||
for libextension in `ls $BOOSTLIBDIR/boost_regex*.dll* $BOOSTLIBDIR/boost_regex*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_regex.*\)\.dll.*$;\1;' -e 's;^\(boost_regex.*\)\.a.*$;\1;'` ; do |
|||
ax_lib=${libextension} |
|||
AC_CHECK_LIB($ax_lib, exit, |
|||
[BOOST_REGEX_LIB="-l$ax_lib"; AC_SUBST(BOOST_REGEX_LIB) link_regex="yes"; break], |
|||
[link_regex="no"]) |
|||
done |
|||
fi |
|||
|
|||
else |
|||
for ax_lib in $ax_boost_user_regex_lib boost_regex-$ax_boost_user_regex_lib; do |
|||
AC_CHECK_LIB($ax_lib, main, |
|||
[BOOST_REGEX_LIB="-l$ax_lib"; AC_SUBST(BOOST_REGEX_LIB) link_regex="yes"; break], |
|||
[link_regex="no"]) |
|||
done |
|||
fi |
|||
if test "x$ax_lib" = "x"; then |
|||
AC_MSG_ERROR(Could not find a version of the Boost::Regex library!) |
|||
fi |
|||
if test "x$link_regex" != "xyes"; then |
|||
AC_MSG_ERROR(Could not link against $ax_lib !) |
|||
fi |
|||
fi |
|||
|
|||
CPPFLAGS="$CPPFLAGS_SAVED" |
|||
LDFLAGS="$LDFLAGS_SAVED" |
|||
fi |
|||
]) |
|||
Loading…
Reference in new issue