Skip to content
Snippets Groups Projects
Commit 75ae191d authored by Sébastien Villemot's avatar Sébastien Villemot
Browse files

Upgrade to a newer version of the AX_BOOST_BASE macro.

Our workaround for cross-compilation has been incorporated upstream.
parent 78a015a7
No related branches found
No related tags found
No related merge requests found
...@@ -73,7 +73,7 @@ if test "x$YACC" = "x"; then ...@@ -73,7 +73,7 @@ if test "x$YACC" = "x"; then
fi fi
# We need 1.36 because of unordered_{set,hash} used by Dynare++ # We need 1.36 because of unordered_{set,hash} used by Dynare++
AX_BOOST_BASE([1.36]) AX_BOOST_BASE([1.36], [], [AC_MSG_ERROR([Can't find Boost >= 1.36])])
CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
......
...@@ -123,11 +123,12 @@ License: GPL-3+ with Autoconf exception ...@@ -123,11 +123,12 @@ License: GPL-3+ with Autoconf exception
Files: m4/ax_boost_base.m4 Files: m4/ax_boost_base.m4
Copyright: 2008 Thomas Porschberg <thomas@randspringer.de> Copyright: 2008 Thomas Porschberg <thomas@randspringer.de>
2009 Dynare Team 2009 Peter Adolphs
License: other License: other
Copying and distribution of this file, with or without modification, are Copying and distribution of this file, with or without modification, are
permitted in any medium without royalty provided the copyright notice permitted in any medium without royalty provided the copyright notice
and this notice are preserved. and this notice are preserved. This file is offered as-is, without any
warranty.
Files: m4/ax_compare_version.m4 Files: m4/ax_compare_version.m4
Copyright: 2008 Tim Toolan <toolan@ele.uri.edu> Copyright: 2008 Tim Toolan <toolan@ele.uri.edu>
......
# =========================================================================== # ===========================================================================
# http://www.nongnu.org/autoconf-archive/ax_boost_base.html # http://www.gnu.org/software/autoconf-archive/ax_boost_base.html
# =========================================================================== # ===========================================================================
# #
# SYNOPSIS # SYNOPSIS
# #
# AX_BOOST_BASE([MINIMUM-VERSION]) # AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
# #
# DESCRIPTION # DESCRIPTION
# #
...@@ -26,16 +26,23 @@ ...@@ -26,16 +26,23 @@
# LICENSE # LICENSE
# #
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de> # Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
# Copyright (c) 2009 Dynare Team # Copyright (c) 2009 Peter Adolphs
# #
# Copying and distribution of this file, with or without modification, are # Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice # permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. # and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 21
AC_DEFUN([AX_BOOST_BASE], AC_DEFUN([AX_BOOST_BASE],
[ [
AC_ARG_WITH([boost], AC_ARG_WITH([boost],
AS_HELP_STRING([--with-boost@<:@=DIR@:>@], [use boost (default is yes) - it is possible to specify the root directory for boost (optional)]), [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@:>@ ])],
[ [
if test "$withval" = "no"; then if test "$withval" = "no"; then
want_boost="no" want_boost="no"
...@@ -52,9 +59,9 @@ AC_ARG_WITH([boost], ...@@ -52,9 +59,9 @@ AC_ARG_WITH([boost],
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 overwrite 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, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
[ [
if test -d $withval if test -d "$withval"
then then
ac_boost_lib_path="$withval" ac_boost_lib_path="$withval"
else else
...@@ -77,24 +84,42 @@ if test "x$want_boost" = "xyes"; then ...@@ -77,24 +84,42 @@ if test "x$want_boost" = "xyes"; then
AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req) AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
succeeded=no 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`
case $ax_arch in
x86_64|ppc64|s390x|sparc64|aarch64)
libsubdirs="lib64 lib lib64"
;;
esac
dnl first we check the system location for boost libraries 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 this location ist 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 if test "$ac_boost_path" != ""; then
BOOST_LDFLAGS="-L$ac_boost_path/lib"
BOOST_CPPFLAGS="-I$ac_boost_path/include" BOOST_CPPFLAGS="-I$ac_boost_path/include"
else for ac_boost_path_tmp in $libsubdirs; do
# If cross-compiling, adding /usr/include can confuse the compiler if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then
if test "x$cross_compiling" != "xyes"; then BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp"
break
fi
done
elif test "$cross_compiling" != yes; then
for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib" for libsubdir in $libsubdirs ; do
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" BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
break; break;
fi fi
done done
fi fi
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
...@@ -110,6 +135,7 @@ if test "x$want_boost" = "xyes"; then ...@@ -110,6 +135,7 @@ if test "x$want_boost" = "xyes"; then
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([AC_LANG_PROGRAM([[
@%:@include <boost/version.hpp> @%:@include <boost/version.hpp>
...@@ -146,6 +172,7 @@ if test "x$want_boost" = "xyes"; then ...@@ -146,6 +172,7 @@ if test "x$want_boost" = "xyes"; then
done done
fi fi
else else
if test "$cross_compiling" != yes; then
for ac_boost_path in /usr /usr/local /opt /opt/local ; do for ac_boost_path in /usr /usr/local /opt /opt/local ; do
if test -d "$ac_boost_path" && test -r "$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 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
...@@ -161,13 +188,19 @@ if test "x$want_boost" = "xyes"; then ...@@ -161,13 +188,19 @@ 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" = "" if test "$ac_boost_lib_path" = ""; then
then for libsubdir in $libsubdirs ; do
BOOST_LDFLAGS="-L$best_path/lib" if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done
BOOST_LDFLAGS="-L$best_path/$libsubdir"
fi
fi fi
if test "x$BOOST_ROOT" != "x"; then if test "x$BOOST_ROOT" != "x"; then
if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/lib" && test -r "$BOOST_ROOT/stage/lib"; 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 : '.*/\(.*\)'` version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
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]]*\)'`
...@@ -175,7 +208,7 @@ if test "x$want_boost" = "xyes"; then ...@@ -175,7 +208,7 @@ if test "x$want_boost" = "xyes"; then
if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then if test "$V_CHECK" = "1" -a "$ac_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/lib" BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
fi fi
fi fi
fi fi
...@@ -206,14 +239,18 @@ if test "x$want_boost" = "xyes"; then ...@@ -206,14 +239,18 @@ if test "x$want_boost" = "xyes"; then
if test "$succeeded" != "yes" ; then if test "$succeeded" != "yes" ; then
if test "$_version" = "0" ; 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.]]) 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.]])
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):
ifelse([$3], , :, [$3])
else else
AC_SUBST(BOOST_CPPFLAGS) AC_SUBST(BOOST_CPPFLAGS)
AC_SUBST(BOOST_LDFLAGS) 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):
ifelse([$2], , :, [$2])
fi fi
CPPFLAGS="$CPPFLAGS_SAVED" CPPFLAGS="$CPPFLAGS_SAVED"
......
dnl Process this file with autoconf to produce a configure script. dnl Process this file with autoconf to produce a configure script.
dnl Copyright (C) 2009-2012 Dynare Team dnl Copyright (C) 2009-2014 Dynare Team
dnl dnl
dnl This file is part of Dynare. dnl This file is part of Dynare.
dnl dnl
...@@ -63,7 +63,7 @@ AM_PROG_AR ...@@ -63,7 +63,7 @@ AM_PROG_AR
AX_PTHREAD AX_PTHREAD
# Check for boost libraries used in estimation DLL # Check for boost libraries used in estimation DLL
AC_LANG_PUSH([C++]) AC_LANG_PUSH([C++])
AX_BOOST_BASE([1.36]) AX_BOOST_BASE([1.36], [], [AC_MSG_ERROR([Can't find Boost >= 1.36])])
CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
AC_CHECK_HEADER([boost/random/linear_congruential.hpp], [], [AC_MSG_ERROR([Can't find Boost Random Library])]) AC_CHECK_HEADER([boost/random/linear_congruential.hpp], [], [AC_MSG_ERROR([Can't find Boost Random Library])])
......
dnl Process this file with autoconf to produce a configure script. dnl Process this file with autoconf to produce a configure script.
dnl Copyright (C) 2009-2013 Dynare Team dnl Copyright (C) 2009-2014 Dynare Team
dnl dnl
dnl This file is part of Dynare. dnl This file is part of Dynare.
dnl dnl
...@@ -52,7 +52,7 @@ AM_PROG_AR ...@@ -52,7 +52,7 @@ AM_PROG_AR
AX_PTHREAD AX_PTHREAD
# Check for boost libraries used in estimation DLL # Check for boost libraries used in estimation DLL
AC_LANG_PUSH([C++]) AC_LANG_PUSH([C++])
AX_BOOST_BASE([1.36]) AX_BOOST_BASE([1.36], [], [AC_MSG_ERROR([Can't find Boost >= 1.36])])
CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
AC_CHECK_HEADER([boost/random/linear_congruential.hpp], [], [AC_MSG_ERROR([Can't find Boost Random Library])]) AC_CHECK_HEADER([boost/random/linear_congruential.hpp], [], [AC_MSG_ERROR([Can't find Boost Random Library])])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment