+++ /dev/null
-The version of boost.m4 initially included in cc-tool has an issue
-with gcc5 (one of its tests fails due to the first change described in [1]
-"Preprocessor issues").
-
-This was fixed upstream (boost.m4 project) in Nov 2014 [2].
-
-We add the latest commit [3] of upstream boost.m4 plus a patch from github PR
-[4] to add detection for gcc 5.1.
-
-[1]
-https://gcc.gnu.org/gcc-5/porting_to.html
-
-[2]
-https://github.com/tsuna/boost.m4/commit/32553aaf4d5090da19aa0ec33b936982c685009f
-
-[3]
-https://github.com/tsuna/boost.m4/commit/d9ff75b6af66360d76f46f469a26ab18e24e1030
-
-[4]
-https://github.com/rubenk/boost.m4/commit/b879eb85f112cf054643d2e7f9544c230299c0b2
-
-Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
-
-diff -purN cc-tool.original/m4/boost.m4 cc-tool/m4/boost.m4
---- cc-tool.original/m4/boost.m4 2015-07-28 15:43:25.458840000 +0200
-+++ cc-tool/m4/boost.m4 2015-07-28 16:12:02.532791424 +0200
-@@ -1,5 +1,5 @@
- # boost.m4: Locate Boost headers and libraries for autoconf-based projects.
--# Copyright (C) 2007, 2008, 2009, 2010, 2011 Benoit Sigoure <tsuna@lrde.epita.fr>
-+# Copyright (C) 2007-2011, 2014 Benoit Sigoure <tsuna@lrde.epita.fr>
- #
- # This program is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
-@@ -22,7 +22,7 @@
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- m4_define([_BOOST_SERIAL], [m4_translit([
--# serial 16
-+# serial 25
- ], [#
- ], [])])
-
-@@ -59,7 +59,8 @@ m4_pattern_forbid([^_?(BOOST|Boost)_])
- # It could be useful to turn this into a macro which extracts the
- # value of any macro.
- m4_define([_BOOST_SED_CPP],
--[AC_LANG_PREPROC_REQUIRE()dnl
-+[AC_LANG_PUSH([C++])dnl
-+AC_LANG_PREPROC_REQUIRE()dnl
- AC_REQUIRE([AC_PROG_SED])dnl
- AC_LANG_CONFTEST([AC_LANG_SOURCE([[$2]])])
- AS_IF([dnl eval is necessary to expand ac_cpp.
-@@ -71,13 +72,31 @@ dnl strip `\n' with backquotes, not the
- dnl boost_cv_lib_version='1_37\r' for instance, which breaks
- dnl everything else.
- dnl Cannot use 'dnl' after [$4] because a trailing dnl may break AC_CACHE_CHECK
-+dnl
-+dnl Beware that GCC 5, when expanding macros, may embed # line directives
-+dnl a within single line:
-+dnl
-+dnl # 1 "conftest.cc"
-+dnl # 1 "<built-in>"
-+dnl # 1 "<command-line>"
-+dnl # 1 "conftest.cc"
-+dnl # 1 "/opt/local/include/boost/version.hpp" 1 3
-+dnl # 2 "conftest.cc" 2
-+dnl boost-lib-version =
-+dnl # 2 "conftest.cc" 3
-+dnl "1_56"
-+dnl
-+dnl So get rid of the # lines, and glue the remaining ones together.
- (eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
-+ grep -v '#' |
- tr -d '\r' |
-+ tr -s '\n' ' ' |
- $SED -n -e "$1" >conftest.i 2>&1],
- [$3],
- [$4])
- rm -rf conftest*
--])# AC_EGREP_CPP
-+AC_LANG_POP([C++])dnl
-+])# _BOOST_SED_CPP
-
-
-
-@@ -206,7 +225,7 @@ AC_LANG_POP([C++])dnl
- AC_CACHE_CHECK([for Boost's header version],
- [boost_cv_lib_version],
- [m4_pattern_allow([^BOOST_LIB_VERSION$])dnl
-- _BOOST_SED_CPP([/^boost-lib-version = /{s///;s/\"//g;p;q;}],
-+ _BOOST_SED_CPP([[/^boost-lib-version = /{s///;s/[\" ]//g;p;q;}]],
- [#include <boost/version.hpp>
- boost-lib-version = BOOST_LIB_VERSION],
- [boost_cv_lib_version=`cat conftest.i`])])
-@@ -214,13 +233,14 @@ boost-lib-version = BOOST_LIB_VERSION],
- boost_major_version=`echo "$boost_cv_lib_version" | sed 's/_//;s/_.*//'`
- case $boost_major_version in #(
- '' | *[[!0-9]]*)
-- AC_MSG_ERROR([invalid value: boost_major_version=$boost_major_version])
-+ AC_MSG_ERROR([invalid value: boost_major_version='$boost_major_version'])
- ;;
- esac
- fi
- CPPFLAGS=$boost_save_CPPFLAGS
- ])# BOOST_REQUIRE
-
-+
- # BOOST_STATIC()
- # --------------
- # Add the "--enable-static-boost" configure argument. If this argument is given
-@@ -232,6 +252,7 @@ AC_DEFUN([BOOST_STATIC],
- [enable_static_boost=yes],
- [enable_static_boost=no])])# BOOST_STATIC
-
-+
- # BOOST_FIND_HEADER([HEADER-NAME], [ACTION-IF-NOT-FOUND], [ACTION-IF-FOUND])
- # --------------------------------------------------------------------------
- # Wrapper around AC_CHECK_HEADER for Boost headers. Useful to check for
-@@ -264,14 +285,16 @@ fi
- ])# BOOST_FIND_HEADER
-
-
--# BOOST_FIND_LIB([LIB-NAME], [PREFERRED-RT-OPT], [HEADER-NAME], [CXX-TEST],
--# [CXX-PROLOGUE])
--# -------------------------------------------------------------------------
--# Look for the Boost library LIB-NAME (e.g., LIB-NAME = `thread', for
--# libboost_thread). Check that HEADER-NAME works and check that
--# libboost_LIB-NAME can link with the code CXX-TEST. The optional argument
--# CXX-PROLOGUE can be used to include some C++ code before the `main'
--# function.
-+# BOOST_FIND_LIBS([COMPONENT-NAME], [CANDIDATE-LIB-NAMES],
-+# [PREFERRED-RT-OPT], [HEADER-NAME], [CXX-TEST],
-+# [CXX-PROLOGUE])
-+# --------------------------------------------------------------
-+# Look for the Boost library COMPONENT-NAME (e.g., `thread', for
-+# libboost_thread) under the possible CANDIDATE-LIB-NAMES (e.g.,
-+# "thread_win32 thread"). Check that HEADER-NAME works and check that
-+# libboost_LIB-NAME can link with the code CXX-TEST. The optional
-+# argument CXX-PROLOGUE can be used to include some C++ code before
-+# the `main' function.
- #
- # Invokes BOOST_FIND_HEADER([HEADER-NAME]) (see above).
- #
-@@ -285,7 +308,7 @@ fi
- # builds. Some sample values for PREFERRED-RT-OPT: (nothing), mt, d, mt-d, gdp
- # ... If you want to make sure you have a specific version of Boost
- # (eg, >= 1.33) you *must* invoke BOOST_REQUIRE before this macro.
--AC_DEFUN([BOOST_FIND_LIB],
-+AC_DEFUN([BOOST_FIND_LIBS],
- [AC_REQUIRE([BOOST_REQUIRE])dnl
- AC_REQUIRE([_BOOST_FIND_COMPILER_TAG])dnl
- AC_REQUIRE([BOOST_STATIC])dnl
-@@ -299,32 +322,69 @@ AS_VAR_PUSHDEF([Boost_lib], [boost_cv_li
- AS_VAR_PUSHDEF([Boost_lib_LDFLAGS], [boost_cv_lib_$1_LDFLAGS])dnl
- AS_VAR_PUSHDEF([Boost_lib_LDPATH], [boost_cv_lib_$1_LDPATH])dnl
- AS_VAR_PUSHDEF([Boost_lib_LIBS], [boost_cv_lib_$1_LIBS])dnl
--BOOST_FIND_HEADER([$3])
-+BOOST_FIND_HEADER([$4])
- boost_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
--# Now let's try to find the library. The algorithm is as follows: first look
--# for a given library name according to the user's PREFERRED-RT-OPT. For each
--# library name, we prefer to use the ones that carry the tag (toolset name).
--# Each library is searched through the various standard paths were Boost is
--# usually installed. If we can't find the standard variants, we try to
--# enforce -mt (for instance on MacOSX, libboost_threads.dylib doesn't exist
--# but there's -obviously- libboost_threads-mt.dylib).
- AC_CACHE_CHECK([for the Boost $1 library], [Boost_lib],
-- [Boost_lib=no
-- case "$2" in #(
-- mt | mt-) boost_mt=-mt; boost_rtopt=;; #(
-- mt* | mt-*) boost_mt=-mt; boost_rtopt=`expr "X$2" : 'Xmt-*\(.*\)'`;; #(
-- *) boost_mt=; boost_rtopt=$2;;
-+ [_BOOST_FIND_LIBS($@)])
-+case $Boost_lib in #(
-+ (no) _AC_MSG_LOG_CONFTEST
-+ AC_MSG_ERROR([cannot find the flags to link with Boost $1])
-+ ;;
-+esac
-+AC_SUBST(AS_TR_CPP([BOOST_$1_LDFLAGS]), [$Boost_lib_LDFLAGS])dnl
-+AC_SUBST(AS_TR_CPP([BOOST_$1_LDPATH]), [$Boost_lib_LDPATH])dnl
-+AC_SUBST([BOOST_LDPATH], [$Boost_lib_LDPATH])dnl
-+AC_SUBST(AS_TR_CPP([BOOST_$1_LIBS]), [$Boost_lib_LIBS])dnl
-+CPPFLAGS=$boost_save_CPPFLAGS
-+AS_VAR_POPDEF([Boost_lib])dnl
-+AS_VAR_POPDEF([Boost_lib_LDFLAGS])dnl
-+AS_VAR_POPDEF([Boost_lib_LDPATH])dnl
-+AS_VAR_POPDEF([Boost_lib_LIBS])dnl
-+AC_LANG_POP([C++])dnl
-+fi
-+])
-+
-+
-+# BOOST_FIND_LIB([LIB-NAME],
-+# [PREFERRED-RT-OPT], [HEADER-NAME], [CXX-TEST],
-+# [CXX-PROLOGUE])
-+# --------------------------------------------------------------
-+# Backward compatibility wrapper for BOOST_FIND_LIBS.
-+AC_DEFUN([BOOST_FIND_LIB],
-+[BOOST_FIND_LIBS([$1], $@)])
-+
-+
-+# _BOOST_FIND_LIBS([LIB-NAME], [CANDIDATE-LIB-NAMES],
-+# [PREFERRED-RT-OPT], [HEADER-NAME], [CXX-TEST],
-+# [CXX-PROLOGUE])
-+# --------------------------------------------------------------
-+# Real implementation of BOOST_FIND_LIBS: rely on these local macros:
-+# Boost_lib, Boost_lib_LDFLAGS, Boost_lib_LDPATH, Boost_lib_LIBS
-+#
-+# The algorithm is as follows: first look for a given library name
-+# according to the user's PREFERRED-RT-OPT. For each library name, we
-+# prefer to use the ones that carry the tag (toolset name). Each
-+# library is searched through the various standard paths were Boost is
-+# usually installed. If we can't find the standard variants, we try
-+# to enforce -mt (for instance on MacOSX, libboost_thread.dylib
-+# doesn't exist but there's -obviously- libboost_thread-mt.dylib).
-+AC_DEFUN([_BOOST_FIND_LIBS],
-+[Boost_lib=no
-+ case "$3" in #(
-+ (mt | mt-) boost_mt=-mt; boost_rtopt=;; #(
-+ (mt* | mt-*) boost_mt=-mt; boost_rtopt=`expr "X$3" : 'Xmt-*\(.*\)'`;; #(
-+ (*) boost_mt=; boost_rtopt=$3;;
- esac
- if test $enable_static_boost = yes; then
- boost_rtopt="s$boost_rtopt"
- fi
- # Find the proper debug variant depending on what we've been asked to find.
- case $boost_rtopt in #(
-- *d*) boost_rt_d=$boost_rtopt;; #(
-- *[[sgpn]]*) # Insert the `d' at the right place (in between `sg' and `pn')
-+ (*d*) boost_rt_d=$boost_rtopt;; #(
-+ (*[[sgpn]]*) # Insert the `d' at the right place (in between `sg' and `pn')
- boost_rt_d=`echo "$boost_rtopt" | sed 's/\(s*g*\)\(p*n*\)/\1\2/'`;; #(
-- *) boost_rt_d='-d';;
-+ (*) boost_rt_d='-d';;
- esac
- # If the PREFERRED-RT-OPT are not empty, prepend a `-'.
- test -n "$boost_rtopt" && boost_rtopt="-$boost_rtopt"
-@@ -335,8 +395,8 @@ AC_CACHE_CHECK([for the Boost $1 library
- AC_MSG_ERROR([the libext variable is empty, did you invoke Libtool?])
- boost_save_ac_objext=$ac_objext
- # Generate the test file.
-- AC_LANG_CONFTEST([AC_LANG_PROGRAM([#include <$3>
--$5], [$4])])
-+ AC_LANG_CONFTEST([AC_LANG_PROGRAM([#include <$4>
-+$6], [$5])])
- dnl Optimization hacks: compiling C++ is slow, especially with Boost. What
- dnl we're trying to do here is guess the right combination of link flags
- dnl (LIBS / LDFLAGS) to use a given library. This can take several
-@@ -358,21 +418,22 @@ dnl start the for loops).
- [AC_MSG_ERROR([cannot compile a test that uses Boost $1])])
- ac_objext=$boost_save_ac_objext
- boost_failed_libs=
--# Don't bother to ident the 6 nested for loops, only the 2 innermost ones
--# matter.
-+# Don't bother to ident the following nested for loops, only the 2
-+# innermost ones matter.
-+for boost_lib_ in $2; do
- for boost_tag_ in -$boost_cv_lib_tag ''; do
- for boost_ver_ in -$boost_cv_lib_version ''; do
- for boost_mt_ in $boost_mt -mt ''; do
- for boost_rtopt_ in $boost_rtopt '' -d; do
- for boost_lib in \
-- boost_$1$boost_tag_$boost_mt_$boost_rtopt_$boost_ver_ \
-- boost_$1$boost_tag_$boost_rtopt_$boost_ver_ \
-- boost_$1$boost_tag_$boost_mt_$boost_ver_ \
-- boost_$1$boost_tag_$boost_ver_
-+ boost_$boost_lib_$boost_tag_$boost_mt_$boost_rtopt_$boost_ver_ \
-+ boost_$boost_lib_$boost_tag_$boost_rtopt_$boost_ver_ \
-+ boost_$boost_lib_$boost_tag_$boost_mt_$boost_ver_ \
-+ boost_$boost_lib_$boost_tag_$boost_ver_
- do
- # Avoid testing twice the same lib
- case $boost_failed_libs in #(
-- *@$boost_lib@*) continue;;
-+ (*@$boost_lib@*) continue;;
- esac
- # If with_boost is empty, we'll search in /lib first, which is not quite
- # right so instead we'll try to a location based on where the headers are.
-@@ -382,14 +443,17 @@ for boost_rtopt_ in $boost_rtopt '' -d;
- /opt/local/lib* /usr/local/lib* /opt/lib* /usr/lib* \
- "$with_boost" C:/Boost/lib /lib*
- do
-- test -e "$boost_ldpath" || continue
-+ # Don't waste time with directories that don't exist.
-+ if test x"$boost_ldpath" != x && test ! -e "$boost_ldpath"; then
-+ continue
-+ fi
- boost_save_LDFLAGS=$LDFLAGS
- # Are we looking for a static library?
- case $boost_ldpath:$boost_rtopt_ in #(
-- *?*:*s*) # Yes (Non empty boost_ldpath + s in rt opt)
-+ (*?*:*s*) # Yes (Non empty boost_ldpath + s in rt opt)
- Boost_lib_LIBS="$boost_ldpath/lib$boost_lib.$libext"
- test -e "$Boost_lib_LIBS" || continue;; #(
-- *) # No: use -lboost_foo to find the shared library.
-+ (*) # No: use -lboost_foo to find the shared library.
- Boost_lib_LIBS="-l$boost_lib";;
- esac
- boost_save_LIBS=$LIBS
-@@ -403,9 +467,35 @@ dnl generated only once above (before we
- LDFLAGS=$boost_save_LDFLAGS
- LIBS=$boost_save_LIBS
- if test x"$Boost_lib" = xyes; then
-- Boost_lib_LDFLAGS="-L$boost_ldpath -Wl,-rpath,$boost_ldpath"
-+ # Check or used cached result of whether or not using -R or
-+ # -rpath makes sense. Some implementations of ld, such as for
-+ # Mac OSX, require -rpath but -R is the flag known to work on
-+ # other systems. https://github.com/tsuna/boost.m4/issues/19
-+ AC_CACHE_VAL([boost_cv_rpath_link_ldflag],
-+ [case $boost_ldpath in
-+ '') # Nothing to do.
-+ boost_cv_rpath_link_ldflag=
-+ boost_rpath_link_ldflag_found=yes;;
-+ *)
-+ for boost_cv_rpath_link_ldflag in -Wl,-R, -Wl,-rpath,; do
-+ LDFLAGS="$boost_save_LDFLAGS -L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath"
-+ LIBS="$boost_save_LIBS $Boost_lib_LIBS"
-+ _BOOST_AC_LINK_IFELSE([],
-+ [boost_rpath_link_ldflag_found=yes
-+ break],
-+ [boost_rpath_link_ldflag_found=no])
-+ done
-+ ;;
-+ esac
-+ AS_IF([test "x$boost_rpath_link_ldflag_found" != "xyes"],
-+ [AC_MSG_ERROR([Unable to determine whether to use -R or -rpath])])
-+ LDFLAGS=$boost_save_LDFLAGS
-+ LIBS=$boost_save_LIBS
-+ ])
-+ test x"$boost_ldpath" != x &&
-+ Boost_lib_LDFLAGS="-L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath"
- Boost_lib_LDPATH="$boost_ldpath"
-- break 6
-+ break 7
- else
- boost_failed_libs="$boost_failed_libs@$boost_lib@"
- fi
-@@ -415,25 +505,10 @@ done
- done
- done
- done
-+done # boost_lib_
- rm -f conftest.$ac_objext
- ])
--case $Boost_lib in #(
-- no) _AC_MSG_LOG_CONFTEST
-- AC_MSG_ERROR([cannot find the flags to link with Boost $1])
-- ;;
--esac
--AC_SUBST(AS_TR_CPP([BOOST_$1_LDFLAGS]), [$Boost_lib_LDFLAGS])dnl
--AC_SUBST(AS_TR_CPP([BOOST_$1_LDPATH]), [$Boost_lib_LDPATH])dnl
--AC_SUBST([BOOST_LDPATH], [$Boost_lib_LDPATH])dnl
--AC_SUBST(AS_TR_CPP([BOOST_$1_LIBS]), [$Boost_lib_LIBS])dnl
--CPPFLAGS=$boost_save_CPPFLAGS
--AS_VAR_POPDEF([Boost_lib])dnl
--AS_VAR_POPDEF([Boost_lib_LDFLAGS])dnl
--AS_VAR_POPDEF([Boost_lib_LDPATH])dnl
--AS_VAR_POPDEF([Boost_lib_LIBS])dnl
--AC_LANG_POP([C++])dnl
--fi
--])# BOOST_FIND_LIB
-+
-
-
- # --------------------------------------- #
-@@ -475,20 +550,20 @@ BOOST_FIND_HEADER([boost/asio.hpp])])
-
- # BOOST_BIND()
- # ------------
--# Look for Boost.Bind
-+# Look for Boost.Bind.
- BOOST_DEFUN([Bind],
- [BOOST_FIND_HEADER([boost/bind.hpp])])
-
-
- # BOOST_CHRONO()
--# ------------------
--# Look for Boost.Chrono
-+# --------------
-+# Look for Boost.Chrono.
- BOOST_DEFUN([Chrono],
- [# Do we have to check for Boost.System? This link-time dependency was
- # added as of 1.35.0. If we have a version <1.35, we must not attempt to
- # find Boost.System as it didn't exist by then.
- if test $boost_major_version -ge 135; then
--BOOST_SYSTEM([$1])
-+ BOOST_SYSTEM([$1])
- fi # end of the Boost.System check.
- boost_filesystem_save_LIBS=$LIBS
- boost_filesystem_save_LDFLAGS=$LDFLAGS
-@@ -499,14 +574,40 @@ BOOST_FIND_LIB([chrono], [$1],
- [boost/chrono.hpp],
- [boost::chrono::thread_clock d;])
- if test $enable_static_boost = yes && test $boost_major_version -ge 135; then
-- AC_SUBST([BOOST_FILESYSTEM_LIBS], ["$BOOST_FILESYSTEM_LIBS $BOOST_SYSTEM_LIBS"])
-+ BOOST_CHRONO_LIBS="$BOOST_CHRONO_LIBS $BOOST_SYSTEM_LIBS"
- fi
- LIBS=$boost_filesystem_save_LIBS
- LDFLAGS=$boost_filesystem_save_LDFLAGS
--
- ])# BOOST_CHRONO
-
-
-+# BOOST_CONTEXT([PREFERRED-RT-OPT])
-+# -----------------------------------
-+# Look for Boost.Context. For the documentation of PREFERRED-RT-OPT, see the
-+# documentation of BOOST_FIND_LIB above. This library was introduced in Boost
-+# 1.51.0
-+BOOST_DEFUN([Context],
-+[BOOST_FIND_LIB([context], [$1],
-+ [boost/context/all.hpp],[[
-+// creates a stack
-+void * stack_pointer = new void*[4096];
-+std::size_t const size = sizeof(void*[4096]);
-+
-+// context fc uses f() as context function
-+// fcontext_t is placed on top of context stack
-+// a pointer to fcontext_t is returned
-+fc = ctx::make_fcontext(stack_pointer, size, f);
-+return ctx::jump_fcontext(&fcm, fc, 3) == 6;]],[dnl
-+namespace ctx = boost::context;
-+// context
-+static ctx::fcontext_t fcm, *fc;
-+// context-function
-+static void f(intptr_t i) {
-+ ctx::jump_fcontext(fc, &fcm, i * 2);
-+}])
-+])# BOOST_CONTEXT
-+
-+
- # BOOST_CONVERSION()
- # ------------------
- # Look for Boost.Conversion (cast / lexical_cast)
-@@ -516,6 +617,52 @@ BOOST_FIND_HEADER([boost/lexical_cast.hp
- ])# BOOST_CONVERSION
-
-
-+# BOOST_COROUTINE([PREFERRED-RT-OPT])
-+# -----------------------------------
-+# Look for Boost.Coroutine. For the documentation of PREFERRED-RT-OPT, see the
-+# documentation of BOOST_FIND_LIB above. This library was introduced in Boost
-+# 1.53.0
-+BOOST_DEFUN([Coroutine],
-+[
-+boost_coroutine_save_LIBS=$LIBS
-+boost_coroutine_save_LDFLAGS=$LDFLAGS
-+# Link-time dependency from coroutine to context
-+BOOST_CONTEXT([$1])
-+# Starting from Boost 1.55 a dependency on Boost.System is added
-+if test $boost_major_version -ge 155; then
-+ BOOST_SYSTEM([$1])
-+fi
-+m4_pattern_allow([^BOOST_(CONTEXT|SYSTEM)_(LIBS|LDFLAGS)])
-+LIBS="$LIBS $BOOST_CONTEXT_LIBS $BOOST_SYSTEM_LIBS"
-+LDFLAGS="$LDFLAGS $BOOST_CONTEXT_LDFLAGS"
-+
-+BOOST_FIND_LIB([coroutine], [$1],
-+ [boost/coroutine/coroutine.hpp],
-+ [boost::coroutines::coroutine< int(int) > coro; coro.empty();])
-+
-+# Link-time dependency from coroutine to context, existed only in 1.53, in 1.54
-+# coroutine doesn't use context from its headers but from its library.
-+if test $boost_major_version -eq 153 || test $enable_static_boost = yes && test $boost_major_version -ge 154; then
-+ BOOST_COROUTINE_LIBS="$BOOST_COROUTINE_LIBS $BOOST_CONTEXT_LIBS"
-+ BOOST_COROUTINE_LDFLAGS="$BOOST_COROUTINE_LDFLAGS $BOOST_CONTEXT_LDFLAGS"
-+fi
-+if test $enable_static_boost = yes && test $boost_major_version -ge 155; then
-+ BOOST_COROUTINE_LIBS="$BOOST_COROUTINE_LIBS $BOOST_SYSTEM_LIBS"
-+ BOOST_COROUTINE_LDFLAGS="$BOOST_COROUTINE_LDFLAGS $BOOST_SYSTEM_LDFLAGS"
-+fi
-+LIBS=$boost_coroutine_save_LIBS
-+LDFLAGS=$boost_coroutine_save_LDFLAGS
-+])# BOOST_COROUTINE
-+
-+
-+# BOOST_CRC()
-+# -----------
-+# Look for Boost.CRC
-+BOOST_DEFUN([CRC],
-+[BOOST_FIND_HEADER([boost/crc.hpp])
-+])# BOOST_CRC
-+
-+
- # BOOST_DATE_TIME([PREFERRED-RT-OPT])
- # -----------------------------------
- # Look for Boost.Date_Time. For the documentation of PREFERRED-RT-OPT, see the
-@@ -538,7 +685,7 @@ BOOST_DEFUN([Filesystem],
- # added as of 1.35.0. If we have a version <1.35, we must not attempt to
- # find Boost.System as it didn't exist by then.
- if test $boost_major_version -ge 135; then
--BOOST_SYSTEM([$1])
-+ BOOST_SYSTEM([$1])
- fi # end of the Boost.System check.
- boost_filesystem_save_LIBS=$LIBS
- boost_filesystem_save_LDFLAGS=$LDFLAGS
-@@ -548,23 +695,34 @@ LDFLAGS="$LDFLAGS $BOOST_SYSTEM_LDFLAGS"
- BOOST_FIND_LIB([filesystem], [$1],
- [boost/filesystem/path.hpp], [boost::filesystem::path p;])
- if test $enable_static_boost = yes && test $boost_major_version -ge 135; then
-- AC_SUBST([BOOST_FILESYSTEM_LIBS], ["$BOOST_FILESYSTEM_LIBS $BOOST_SYSTEM_LIBS"])
-+ BOOST_FILESYSTEM_LIBS="$BOOST_FILESYSTEM_LIBS $BOOST_SYSTEM_LIBS"
- fi
- LIBS=$boost_filesystem_save_LIBS
- LDFLAGS=$boost_filesystem_save_LDFLAGS
- ])# BOOST_FILESYSTEM
-
-
-+# BOOST_FLYWEIGHT()
-+# -----------------
-+# Look for Boost.Flyweight.
-+BOOST_DEFUN([Flyweight],
-+[dnl There's a hidden dependency on pthreads.
-+AC_REQUIRE([_BOOST_PTHREAD_FLAG])dnl
-+BOOST_FIND_HEADER([boost/flyweight.hpp])
-+AC_SUBST([BOOST_FLYWEIGHT_LIBS], [$boost_cv_pthread_flag])
-+])
-+
-+
- # BOOST_FOREACH()
- # ---------------
--# Look for Boost.Foreach
-+# Look for Boost.Foreach.
- BOOST_DEFUN([Foreach],
- [BOOST_FIND_HEADER([boost/foreach.hpp])])
-
-
- # BOOST_FORMAT()
- # --------------
--# Look for Boost.Format
-+# Look for Boost.Format.
- # Note: we can't check for boost/format/format_fwd.hpp because the header isn't
- # standalone. It can't be compiled because it triggers the following error:
- # boost/format/detail/config_macros.hpp:88: error: 'locale' in namespace 'std'
-@@ -580,6 +738,14 @@ BOOST_DEFUN([Function],
- [BOOST_FIND_HEADER([boost/function.hpp])])
-
-
-+# BOOST_GEOMETRY()
-+# ----------------
-+# Look for Boost.Geometry (new since 1.47.0).
-+BOOST_DEFUN([Geometry],
-+[BOOST_FIND_HEADER([boost/geometry.hpp])
-+])# BOOST_GEOMETRY
-+
-+
- # BOOST_GRAPH([PREFERRED-RT-OPT])
- # -------------------------------
- # Look for Boost.Graphs. For the documentation of PREFERRED-RT-OPT, see the
-@@ -615,9 +781,18 @@ BOOST_DEFUN([Lambda],
- [BOOST_FIND_HEADER([boost/lambda/lambda.hpp])])
-
-
-+# BOOST_LOCALE()
-+# --------------
-+# Look for Boost.Locale
-+BOOST_DEFUN([Locale],
-+[BOOST_FIND_LIB([locale], [$1],
-+ [boost/locale.hpp],
-+ [[boost::locale::generator gen; std::locale::global(gen(""));]])
-+])# BOOST_LOCALE
-+
- # BOOST_LOG([PREFERRED-RT-OPT])
- # -----------------------------
--# Look for Boost.Log For the documentation of PREFERRED-RT-OPT, see the
-+# Look for Boost.Log. For the documentation of PREFERRED-RT-OPT, see the
- # documentation of BOOST_FIND_LIB above.
- BOOST_DEFUN([Log],
- [BOOST_FIND_LIB([log], [$1],
-@@ -628,12 +803,12 @@ BOOST_DEFUN([Log],
-
- # BOOST_LOG_SETUP([PREFERRED-RT-OPT])
- # -----------------------------------
--# Look for Boost.Log For the documentation of PREFERRED-RT-OPT, see the
-+# Look for Boost.Log. For the documentation of PREFERRED-RT-OPT, see the
- # documentation of BOOST_FIND_LIB above.
- BOOST_DEFUN([Log_Setup],
- [AC_REQUIRE([BOOST_LOG])dnl
- BOOST_FIND_LIB([log_setup], [$1],
-- [boost/log/utility/init/from_settings.hpp],
-+ [boost/log/utility/setup/from_settings.hpp],
- [boost::log::basic_settings<char> bs; bs.empty();])
- ])# BOOST_LOG_SETUP
-
-@@ -650,6 +825,29 @@ BOOST_DEFUN([Math],
- [BOOST_FIND_HEADER([boost/math/special_functions.hpp])])
-
-
-+# BOOST_MPI([PREFERRED-RT-OPT])
-+# -------------------------------
-+# Look for Boost MPI. For the documentation of PREFERRED-RT-OPT, see the
-+# documentation of BOOST_FIND_LIB above. Uses MPICXX variable if it is
-+# set, otherwise tries CXX
-+#
-+BOOST_DEFUN([MPI],
-+[boost_save_CXX=${CXX}
-+boost_save_CXXCPP=${CXXCPP}
-+if test x"${MPICXX}" != x; then
-+ CXX=${MPICXX}
-+ CXXCPP="${MPICXX} -E"
-+fi
-+BOOST_FIND_LIB([mpi], [$1],
-+ [boost/mpi.hpp],
-+ [int argc = 0;
-+ char **argv = 0;
-+ boost::mpi::environment env(argc,argv);])
-+CXX=${boost_save_CXX}
-+CXXCPP=${boost_save_CXXCPP}
-+])# BOOST_MPI
-+
-+
- # BOOST_MULTIARRAY()
- # ------------------
- # Look for Boost.MultiArray
-@@ -657,6 +855,14 @@ BOOST_DEFUN([MultiArray],
- [BOOST_FIND_HEADER([boost/multi_array.hpp])])
-
-
-+# BOOST_NUMERIC_UBLAS()
-+# --------------------------
-+# Look for Boost.NumericUblas (Basic Linear Algebra)
-+BOOST_DEFUN([Numeric_Ublas],
-+[BOOST_FIND_HEADER([boost/numeric/ublas/vector.hpp])
-+])# BOOST_NUMERIC_UBLAS
-+
-+
- # BOOST_NUMERIC_CONVERSION()
- # --------------------------
- # Look for Boost.NumericConversion (policy-based numeric conversion)
-@@ -679,6 +885,12 @@ BOOST_DEFUN([Preprocessor],
- [BOOST_FIND_HEADER([boost/preprocessor/repeat.hpp])])
-
-
-+# BOOST_RANGE()
-+# --------------------
-+# Look for Boost.Range
-+BOOST_DEFUN([Range],
-+[BOOST_FIND_HEADER([boost/range/adaptors.hpp])])
-+
- # BOOST_UNORDERED()
- # -----------------
- # Look for Boost.Unordered
-@@ -725,9 +937,9 @@ BOOST_DEFUN([Python],
- _BOOST_PYTHON_CONFIG([LDFLAGS], [ldflags])
- _BOOST_PYTHON_CONFIG([LIBS], [libs])
- m4_pattern_allow([^BOOST_PYTHON_MODULE$])dnl
--BOOST_FIND_LIB([python], [$1],
-- [boost/python.hpp],
-- [], [BOOST_PYTHON_MODULE(empty) {}])
-+BOOST_FIND_LIBS([python], [python python3], [$1],
-+ [boost/python.hpp],
-+ [], [BOOST_PYTHON_MODULE(empty) {}])
- CPPFLAGS=$boost_python_save_CPPFLAGS
- LDFLAGS=$boost_python_save_LDFLAGS
- LIBS=$boost_python_save_LIBS
-@@ -774,17 +986,13 @@ BOOST_DEFUN([Signals],
- [boost::signal<void ()> s;])
- ])# BOOST_SIGNALS
-
-+
- # BOOST_SIGNALS2()
--# -----------------
--# Look for Boost.Signals2
-+# ----------------
-+# Look for Boost.Signals2 (new since 1.39.0).
- BOOST_DEFUN([Signals2],
--[BOOST_FIND_HEADER([boost/signals2.hpp])])
--
--# BOOST_CRC()
--# -----------------
--# Look for Boost.CRC
--BOOST_DEFUN([CRC],
--[BOOST_FIND_HEADER([boost/crc.hpp])])
-+[BOOST_FIND_HEADER([boost/signals2.hpp])
-+])# BOOST_SIGNALS2
-
-
- # BOOST_SMART_PTR()
-@@ -837,19 +1045,18 @@ BOOST_FIND_LIB([unit_test_framework], [$
- ])# BOOST_TEST
-
-
--# BOOST_THREADS([PREFERRED-RT-OPT])
-+# BOOST_THREAD([PREFERRED-RT-OPT])
- # ---------------------------------
- # Look for Boost.Thread. For the documentation of PREFERRED-RT-OPT, see the
- # documentation of BOOST_FIND_LIB above.
--# FIXME: Provide an alias "BOOST_THREAD".
--BOOST_DEFUN([Threads],
-+BOOST_DEFUN([Thread],
- [dnl Having the pthread flag is required at least on GCC3 where
- dnl boost/thread.hpp would complain if we try to compile without
- dnl -pthread on GNU/Linux.
- AC_REQUIRE([_BOOST_PTHREAD_FLAG])dnl
--boost_threads_save_LIBS=$LIBS
--boost_threads_save_LDFLAGS=$LDFLAGS
--boost_threads_save_CPPFLAGS=$CPPFLAGS
-+boost_thread_save_LIBS=$LIBS
-+boost_thread_save_LDFLAGS=$LDFLAGS
-+boost_thread_save_CPPFLAGS=$CPPFLAGS
- # Link-time dependency from thread to system was added as of 1.49.0.
- if test $boost_major_version -ge 149; then
- BOOST_SYSTEM([$1])
-@@ -857,36 +1064,26 @@ fi # end of the Boost.System check.
- m4_pattern_allow([^BOOST_SYSTEM_(LIBS|LDFLAGS)$])dnl
- LIBS="$LIBS $BOOST_SYSTEM_LIBS $boost_cv_pthread_flag"
- LDFLAGS="$LDFLAGS $BOOST_SYSTEM_LDFLAGS"
--# Yes, we *need* to put the -pthread thing in CPPFLAGS because with GCC3,
--# boost/thread.hpp will trigger a #error if -pthread isn't used:
--# boost/config/requires_threads.hpp:47:5: #error "Compiler threading support
--# is not turned on. Please set the correct command line options for
--# threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
- CPPFLAGS="$CPPFLAGS $boost_cv_pthread_flag"
-
- # When compiling for the Windows platform, the threads library is named
- # differently.
- case $host_os in
-- (*mingw*)
-- BOOST_FIND_LIB([thread_win32], [$1],
-- [boost/thread.hpp], [boost::thread t; boost::mutex m;])
-- BOOST_THREAD_LDFLAGS=$BOOST_THREAD_WIN32_LDFLAGS
-- BOOST_THREAD_LDPATH=$BOOST_THREAD_WIN32_LDPATH
-- BOOST_THREAD_LIBS=$BOOST_THREAD_WIN32_LIBS
-- ;;
-- (*)
-- BOOST_FIND_LIB([thread], [$1],
-- [boost/thread.hpp], [boost::thread t; boost::mutex m;])
-- ;;
-+ (*mingw*) boost_thread_lib_ext=_win32;;
- esac
-+BOOST_FIND_LIBS([thread], [thread$boost_thread_lib_ext],
-+ [$1],
-+ [boost/thread.hpp], [boost::thread t; boost::mutex m;])
-
- BOOST_THREAD_LIBS="$BOOST_THREAD_LIBS $BOOST_SYSTEM_LIBS $boost_cv_pthread_flag"
- BOOST_THREAD_LDFLAGS="$BOOST_SYSTEM_LDFLAGS"
- BOOST_CPPFLAGS="$BOOST_CPPFLAGS $boost_cv_pthread_flag"
--LIBS=$boost_threads_save_LIBS
--LDFLAGS=$boost_threads_save_LDFLAGS
--CPPFLAGS=$boost_threads_save_CPPFLAGS
--])# BOOST_THREADS
-+LIBS=$boost_thread_save_LIBS
-+LDFLAGS=$boost_thread_save_LDFLAGS
-+CPPFLAGS=$boost_thread_save_CPPFLAGS
-+])# BOOST_THREAD
-+
-+AU_ALIAS([BOOST_THREADS], [BOOST_THREAD])
-
-
- # BOOST_TOKENIZER()
-@@ -935,10 +1132,23 @@ BOOST_DEFUN([Variant],
- BOOST_FIND_HEADER([boost/variant.hpp])])
-
-
-+# BOOST_POINTER_CONTAINER()
-+# ------------------------
-+# Look for Boost.PointerContainer
-+BOOST_DEFUN([Pointer_Container],
-+[BOOST_FIND_HEADER([boost/ptr_container/ptr_deque.hpp])
-+BOOST_FIND_HEADER([boost/ptr_container/ptr_list.hpp])
-+BOOST_FIND_HEADER([boost/ptr_container/ptr_vector.hpp])
-+BOOST_FIND_HEADER([boost/ptr_container/ptr_array.hpp])
-+BOOST_FIND_HEADER([boost/ptr_container/ptr_set.hpp])
-+BOOST_FIND_HEADER([boost/ptr_container/ptr_map.hpp])
-+])# BOOST_POINTER_CONTAINER
-+
-+
- # BOOST_WAVE([PREFERRED-RT-OPT])
- # ------------------------------
- # NOTE: If you intend to use Wave/Spirit with thread support, make sure you
--# call BOOST_THREADS first.
-+# call BOOST_THREAD first.
- # Look for Boost.Wave. For the documentation of PREFERRED-RT-OPT, see the
- # documentation of BOOST_FIND_LIB above.
- BOOST_DEFUN([Wave],
-@@ -973,8 +1183,16 @@ BOOST_DEFUN([Xpressive],
-
- # _BOOST_PTHREAD_FLAG()
- # ---------------------
--# Internal helper for BOOST_THREADS. Based on ACX_PTHREAD:
--# http://autoconf-archive.cryp.to/acx_pthread.html
-+# Internal helper for BOOST_THREAD. Computes boost_cv_pthread_flag
-+# which must be used in CPPFLAGS and LIBS.
-+#
-+# Yes, we *need* to put the -pthread thing in CPPFLAGS because with GCC3,
-+# boost/thread.hpp will trigger a #error if -pthread isn't used:
-+# boost/config/requires_threads.hpp:47:5: #error "Compiler threading support
-+# is not turned on. Please set the correct command line options for
-+# threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
-+#
-+# Based on ACX_PTHREAD: http://autoconf-archive.cryp.to/acx_pthread.html
- AC_DEFUN([_BOOST_PTHREAD_FLAG],
- [AC_REQUIRE([AC_PROG_CXX])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
-@@ -1042,6 +1260,14 @@ AC_LANG_POP([C++])dnl
- m4_define([_BOOST_gcc_test],
- ["defined __GNUC__ && __GNUC__ == $1 && __GNUC_MINOR__ == $2 && !defined __ICC @ gcc$1$2"])dnl
-
-+# _BOOST_mingw_test(MAJOR, MINOR)
-+# -----------------------------
-+# Internal helper for _BOOST_FIND_COMPILER_TAG.
-+m4_define([_BOOST_mingw_test],
-+["defined __GNUC__ && __GNUC__ == $1 && __GNUC_MINOR__ == $2 && !defined __ICC && \
-+ (defined WIN32 || defined WINNT || defined _WIN32 || defined __WIN32 \
-+ || defined __WIN32__ || defined __WINNT || defined __WINNT__) @ mgw$1$2"])dnl
-+
-
- # _BOOST_FIND_COMPILER_TAG()
- # --------------------------
-@@ -1051,7 +1277,8 @@ m4_define([_BOOST_gcc_test],
- AC_DEFUN([_BOOST_FIND_COMPILER_TAG],
- [AC_REQUIRE([AC_PROG_CXX])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
--AC_CACHE_CHECK([for the toolset name used by Boost for $CXX], [boost_cv_lib_tag],
-+AC_CACHE_CHECK([for the toolset name used by Boost for $CXX],
-+ [boost_cv_lib_tag],
- [boost_cv_lib_tag=unknown
- if test x$boost_cv_inc_path != xno; then
- AC_LANG_PUSH([C++])dnl
-@@ -1069,14 +1296,31 @@ if test x$boost_cv_inc_path != xno; then
- # I'm not sure about my test for `il' (be careful: Intel's ICC pre-defines
- # the same defines as GCC's).
- for i in \
-+ _BOOST_mingw_test(5, 1) \
-+ _BOOST_gcc_test(5, 1) \
-+ _BOOST_mingw_test(5, 0) \
-+ _BOOST_gcc_test(5, 0) \
-+ _BOOST_mingw_test(4, 10) \
-+ _BOOST_gcc_test(4, 10) \
-+ _BOOST_mingw_test(4, 9) \
-+ _BOOST_gcc_test(4, 9) \
-+ _BOOST_mingw_test(4, 8) \
- _BOOST_gcc_test(4, 8) \
-+ _BOOST_mingw_test(4, 7) \
- _BOOST_gcc_test(4, 7) \
-+ _BOOST_mingw_test(4, 6) \
- _BOOST_gcc_test(4, 6) \
-+ _BOOST_mingw_test(4, 5) \
- _BOOST_gcc_test(4, 5) \
-+ _BOOST_mingw_test(4, 4) \
- _BOOST_gcc_test(4, 4) \
-+ _BOOST_mingw_test(4, 3) \
- _BOOST_gcc_test(4, 3) \
-+ _BOOST_mingw_test(4, 2) \
- _BOOST_gcc_test(4, 2) \
-+ _BOOST_mingw_test(4, 1) \
- _BOOST_gcc_test(4, 1) \
-+ _BOOST_mingw_test(4, 0) \
- _BOOST_gcc_test(4, 0) \
- "defined __GNUC__ && __GNUC__ == 3 && !defined __ICC \
- && (defined WIN32 || defined WINNT || defined _WIN32 || defined __WIN32 \
-@@ -1142,6 +1386,7 @@ fi])dnl end of AC_CACHE_CHECK
- # Thread) flavors of Boost. Sets boost_guess_use_mt accordingly.
- AC_DEFUN([_BOOST_GUESS_WHETHER_TO_USE_MT],
- [# Check whether we do better use `mt' even though we weren't ask to.
-+AC_LANG_PUSH([C++])dnl
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #if defined _REENTRANT || defined _MT || defined __MT__
- /* use -mt */
-@@ -1149,6 +1394,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- # error MT not needed
- #endif
- ]])], [boost_guess_use_mt=:], [boost_guess_use_mt=false])
-+AC_LANG_POP([C++])dnl
- ])
-
- # _BOOST_AC_LINK_IFELSE(PROGRAM, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
-@@ -1172,11 +1418,11 @@ boost_use_source=:
- test -f conftest.$ac_objext && ac_ext=$ac_objext && boost_use_source=false &&
- _AS_ECHO_LOG([re-using the existing conftest.$ac_objext])
- AS_IF([_AC_DO_STDERR($ac_link) && {
-- test -z "$ac_[]_AC_LANG_ABBREV[]_werror_flag" ||
-- test ! -s conftest.err
-+ test -z "$ac_[]_AC_LANG_ABBREV[]_werror_flag" ||
-+ test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
-- test "$cross_compiling" = yes ||
-- $as_executable_p conftest$ac_exeext
-+ test "$cross_compiling" = yes ||
-+ $as_executable_p conftest$ac_exeext
- dnl FIXME: use AS_TEST_X instead when 2.61 is widespread enough.
- }],
- [$2],