-
Notifications
You must be signed in to change notification settings - Fork 401
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
timemarkovqtum
committed
Jun 6, 2024
1 parent
5b03d8e
commit e888952
Showing
5 changed files
with
101 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,7 +8,7 @@ | |
# | ||
# DESCRIPTION | ||
# | ||
# Test for the Boost C++ headers 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 searchs | ||
# under /usr, /usr/local, /opt, /opt/local and /opt/homebrew and evaluates | ||
|
@@ -17,14 +17,12 @@ | |
# | ||
# This macro calls: | ||
# | ||
# AC_SUBST(BOOST_CPPFLAGS) | ||
# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS) | ||
# | ||
# And sets: | ||
# | ||
# HAVE_BOOST | ||
# | ||
# Note that this macro has been modified compared to upstream. | ||
# | ||
# LICENSE | ||
# | ||
# Copyright (c) 2008 Thomas Porschberg <[email protected]> | ||
|
@@ -61,10 +59,26 @@ AC_ARG_WITH([boost], | |
], | ||
[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) | ||
]) | ||
|
||
|
||
|
@@ -113,6 +127,12 @@ AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ | |
[multiarch_libsubdir="lib/${host_cpu}-${host_os}"] | ||
) | ||
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 this location is chosen if boost libraries are installed with the --layout=system option | ||
dnl or if you install boost with RPM | ||
|
@@ -125,6 +145,7 @@ AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ | |
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])]) | ||
|
@@ -141,17 +162,27 @@ AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ | |
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 | ||
]) | ||
AC_MSG_CHECKING([for Boost headers >= $1 ($WANT_BOOST_VERSION)]) | ||
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)],[ | ||
|
@@ -168,8 +199,11 @@ AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ | |
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 | ||
|
@@ -188,6 +222,14 @@ AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ | |
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 | ||
|
@@ -206,6 +248,12 @@ AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ | |
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 | ||
|
@@ -217,16 +265,19 @@ AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ | |
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" ; 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) | ||
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)],[ | ||
|
@@ -253,4 +304,6 @@ AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ | |
fi | ||
CPPFLAGS="$CPPFLAGS_SAVED" | ||
LDFLAGS="$LDFLAGS_SAVED" | ||
]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters