This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/next has been updated
via 2925b324b1b9c0427600a0160cdc214a03d5e8ae (commit)
via 04569a2bb109e39ae8d09530aaa526ad9ae2df49 (commit)
via ebad60a1e78715afe0359a2837c5de517fa7a42b (commit)
from 5bd441f8f01071c7c228837ceb8d9e401bc8f974 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
2925b32 tests/unit_test/Makefile.am (DIST_FILES): Add missing files.
04569a2 Make Boost dependent tests conditional.
ebad60a * build-aux/build_unit_test.sh: Handle composed dependency names in cond_tests_* files.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
build-aux/build_unit_test.sh | 10 +++++++---
milena/ChangeLog | 14 ++++++++++++++
milena/tests/accu/Makefile.am | 15 ++++++++++++---
milena/tests/unit_test/Makefile.am | 8 +++++---
.../cond_tests_boost-preprocessor_boost-tuple | 1 +
milena/tests/unit_test/unit-tests.mk | 14 ++++++++++++--
7 files changed, 56 insertions(+), 11 deletions(-)
create mode 100644 milena/tests/unit_test/cond_tests_boost-preprocessor_boost-tuple
hooks/post-receive
--
Olena, a generic and efficient image processing platform
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/next has been updated
via 5bd441f8f01071c7c228837ceb8d9e401bc8f974 (commit)
via d6e4a923e32eb749a66490fba62885a69b2fb4dd (commit)
via a4a49108929edc4cd8c2d108da7ca821f6684b45 (commit)
from ed4e74a2f51a69d580a46b155c9d319d7e7f603c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
5bd441f Small fixes in Milena.
d6e4a92 Improve configure output.
a4a4910 Handle Boost dependency.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 16 +
configure.ac | 222 +++++++----
{dynamic-use-of-static-c++/config => m4}/boost.m4 | 437 ++++++++++++++++-----
m4/oln-with-lib.m4 | 5 +-
milena/ChangeLog | 10 +
milena/mln/accu/tuple.hh | 13 +-
milena/mln/fun/v2v/saturate.hh | 2 +-
milena/mln/value/rgb.hh | 2 +
8 files changed, 515 insertions(+), 192 deletions(-)
copy {dynamic-use-of-static-c++/config => m4}/boost.m4 (68%)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
* configure.ac: Add tests.
* m4/boost.m4: New.
---
ChangeLog | 8 +
configure.ac | 85 +++-
{dynamic-use-of-static-c++/config => m4}/boost.m4 | 437 ++++++++++++++++-----
3 files changed, 403 insertions(+), 127 deletions(-)
copy {dynamic-use-of-static-c++/config => m4}/boost.m4 (68%)
diff --git a/ChangeLog b/ChangeLog
index f55197b..e892e68 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Handle Boost dependency.
+
+ * configure.ac: Add tests.
+
+ * m4/boost.m4: New.
+
+2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
* Makefile.am: Fix call to build_unit_test.sh.
2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
diff --git a/configure.ac b/configure.ac
index 916221b..aee1acc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -197,12 +197,46 @@ PKG_PROG_PKG_CONFIG
AC_MSG_RESULT([])
AC_MSG_RESULT([])
AC_MSG_RESULT([Checking external libraries])
-AC_MSG_RESULT([------------------------------------------------------------])
+AC_MSG_RESULT([-------------------------------------------------------------------------------])
### Support for FreeImagePlus has been disabled for Olena 1.0.
## OLN_WITH_LIB([FreeImagePlus], [FreeImagePlus.h], [freeimageplus])
+## ----- ##
+## Boost ##
+## ----- ##
+
+oln_have_boost_preprocessor=no
+oln_have_boost_tuple=no
+
+if test "x$with_boost" != xno; then
+ AC_MSG_RESULT([])
+ AC_MSG_RESULT([* Boost])
+ AC_MSG_RESULT([-------])
+
+ # Preprocessor
+ BOOST_FIND_HEADER([boost/preprocessor/repetition/repeat.hpp],
+ oln_have_boost_preprocessor="no",
+ oln_have_boost_preprocessor="yes")
+ if test "x$oln_have_boost_preprocessor" = xyes; then
+ AC_DEFINE([HAVE_BOOST_PREPROCESSOR], 1, [Define to 1 if we can use Boost Preprocessor.])
+ fi
+
+ # Tuple
+ BOOST_FIND_HEADER([boost/tuple/tuple.hpp],
+ oln_have_boost_tuple=no,
+ oln_have_boost_tuple=yes)
+ if test "x$oln_have_boost_tuple" = xyes; then
+ AC_DEFINE([HAVE_BOOST_TUPLE], 1, [Define to 1 if we can use Boost Tuple.])
+ fi
+fi
+
+AM_CONDITIONAL([HAVE_BOOST_PREPROCESSOR],
+ [test "x$oln_have_boost_preprocessor" = xyes])
+AM_CONDITIONAL([HAVE_BOOST_TUPLE], [test "x$oln_have_boost_tuple" = xyes])
+
+
## ---------------- ##
## CFITSIO library. ##
## ---------------- ##
@@ -307,7 +341,7 @@ AM_CONDITIONAL([HAVE_QT], [test "x$QT_VERSION_MAJOR" == "x4"])
AC_MSG_RESULT([])
-AC_MSG_RESULT([------------------------------------------------------------])
+AC_MSG_RESULT([-------------------------------------------------------------------------------])
AC_MSG_RESULT([])
AC_MSG_RESULT([])
@@ -655,15 +689,15 @@ if test -z "$TOOLS_CXXFLAGS"; then
fi
fi
-AC_MSG_RESULT([-------------------------------------------------------------])
+AC_MSG_RESULT([-------------------------------------------------------------------------------])
AC_MSG_RESULT([Update Olena configuration])
AC_OUTPUT
-
AC_MSG_RESULT([
-Olena is configured as follows. Please verify that this configuration
-matches your expectations.
+-------------------------------------------------------------------------------
+Configuration summary.
+
Host system type: $host
Build system type: $build
@@ -673,15 +707,17 @@ Build system type: $build
================
- Option Value
+ Option Enabled and available
-------------------------------------------------------------------------------
-CFITSIO --with-cfitsio[=DIR] $oln_have_cfitsio
-GDCM --with-gdcm[=DIR] $oln_have_gdcm
-Magick++ --with-magickxx $oln_have_magickxx
-Qt --with-qt $oln_have_qt
-Tesseract --with-tesseract[=DIR] $oln_have_tesseract
-TIFF --with-tiff[=DIR] $oln_have_tiff
-Trimesh --enable-trimesh $enable_trimesh
+Boost Preprocessor --with-boost=[DIR] $oln_have_boost_preprocessor
+Boost Tuple --with-boost=[DIR] $oln_have_boost_tuple
+CFITSIO --with-cfitsio[=DIR] $oln_have_cfitsio
+GDCM --with-gdcm[=DIR] $oln_have_gdcm
+Magick++ --with-magickxx $oln_have_magickxx
+Qt --with-qt $oln_have_qt
+Tesseract --with-tesseract[=DIR] $oln_have_tesseract
+TIFF --with-tiff[=DIR] $oln_have_tiff
+Trimesh --enable-trimesh $enable_trimesh
-------------------------------------------------------------------------------
@@ -692,10 +728,10 @@ Trimesh --enable-trimesh $enable_trimesh
===========
- Option Value
+ Option Enabled
-------------------------------------------------------------------------------
-Scribo --enable-scribo $enable_scribo
-Swilena --enable-swilena $enable_swilena
+Scribo --enable-scribo $enable_scribo
+Swilena --enable-swilena $enable_swilena
-------------------------------------------------------------------------------
@@ -706,10 +742,10 @@ Swilena --enable-swilena $enable_swilena
=============
- Option Value
+ Option Enabled
-------------------------------------------------------------------------------
-Apps --enable-apps $enable_apps
-Tools --enable-tools $enable_tools
+Apps --enable-apps $enable_apps
+Tools --enable-tools $enable_tools
-------------------------------------------------------------------------------
@@ -732,10 +768,19 @@ Options used to compile and link:
MOC = $MOC
UIC = $UIC
RCC = $RCC
+ BOOST_ROOT = $BOOST_ROOT
MAGICKXX_CFLAGS = $MAGICKXX_CFLAGS
MAGICKXX_LIBS = $MAGICKXX_LIBS
SCRIBO_CXXFLAGS = $SCRIBO_CXXFLAGS
APPS_CXXFLAGS = $APPS_CXXFLAGS
TOOLS_CXXFLAGS = $TOOLS_CXXFLAGS
+
+
+*******************************************************************************
+Olena is configured as stated above. Please verify that this configuration
+matches your expectations.
+
+Then, type 'make' to build Olena and 'make install' to install it on
+your system.
])
diff --git a/dynamic-use-of-static-c++/config/boost.m4 b/m4/boost.m4
similarity index 68%
copy from dynamic-use-of-static-c++/config/boost.m4
copy to m4/boost.m4
index b396249..ee3013f 100644
--- a/dynamic-use-of-static-c++/config/boost.m4
+++ b/m4/boost.m4
@@ -1,11 +1,18 @@
# boost.m4: Locate Boost headers and libraries for autoconf-based projects.
-# Copyright (C) 2007 Benoit Sigoure <tsuna(a)lrde.epita.fr>
+# Copyright (C) 2007, 2008, 2009 Benoit Sigoure <tsuna(a)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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
+# Additional permission under section 7 of the GNU General Public
+# License, version 3 ("GPLv3"):
+#
+# If you convey this file as part of a work that contains a
+# configuration script generated by Autoconf, you may do so under
+# terms of your choice.
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -14,10 +21,14 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# serial 6
-# Original sources can be found at http://repo.or.cz/w/boost.m4.git
+m4_define([_BOOST_SERIAL], [m4_translit([
+# serial 12
+], [#
+], [])])
+
+# Original sources can be found at http://github.com/tsuna/boost.m4
# You can fetch the latest version of the script by doing:
-# wget 'http://repo.or.cz/w/boost.m4.git?a=blob_plain;f=build-aux/boost.m4;hb=HEAD' -O boost.m4
+# wget http://github.com/tsuna/boost.m4/raw/master/build-aux/boost.m4
# ------ #
# README #
@@ -28,99 +39,138 @@
# find the Boost headers of a given (optional) minimum version and it will
# define BOOST_CPPFLAGS accordingly. It will add an option --with-boost to
# your configure so that users can specify non standard locations.
-# For more README and documentation, go to http://repo.or.cz/w/boost.m4.git
+# If the user's environment contains BOOST_ROOT and --with-boost was not
+# specified, --with-boost=$BOOST_ROOT is implicitly used.
+# For more README and documentation, go to http://github.com/tsuna/boost.m4
# Note: THESE MACROS ASSUME THAT YOU USE LIBTOOL. If you don't, don't worry,
# simply read the README, it will show you what to do step by step.
m4_pattern_forbid([^_?BOOST_])
-# BOOST_REQUIRE([VERSION])
-# ------------------------
+
+# _BOOST_SED_CPP(SED-PROGRAM, PROGRAM,
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# --------------------------------------------------------
+# Same as AC_EGREP_CPP, but leave the result in conftest.i.
+# PATTERN is *not* overquoted, as in AC_EGREP_CPP. 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_REQUIRE([AC_PROG_SED])dnl
+AC_LANG_CONFTEST([AC_LANG_SOURCE([[$2]])])
+AS_IF([dnl eval is necessary to expand ac_cpp.
+dnl Ultrix and Pyramid sh refuse to redirect output of eval, so use subshell.
+dnl Beware of Windows end-of-lines, for instance if we are running
+dnl some Windows programs under Wine. In that case, boost/version.hpp
+dnl is certainly using "\r\n", but the regular Unix shell will only
+dnl strip `\n' with backquotes, not the `\r'. This results in
+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
+(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
+ tr -d '\r' |
+ $SED -n -e "$1" >conftest.i 2>&1],
+ [$3],
+ [$4])
+rm -rf conftest*
+])# AC_EGREP_CPP
+
+
+
+# BOOST_REQUIRE([VERSION], [ACTION-IF-NOT-FOUND])
+# -----------------------------------------------
# Look for Boost. If version is given, it must either be a literal of the form
# "X.Y.Z" where X, Y and Z are integers (the ".Z" part being optional) or a
# variable "$var".
# Defines the value BOOST_CPPFLAGS. This macro only checks for headers with
# the required version, it does not check for any of the Boost libraries.
-# FIXME: Add a 2nd optional argument so that it's not fatal if Boost isn't found
-# and add an AC_DEFINE to tell whether HAVE_BOOST.
+# On # success, defines HAVE_BOOST. On failure, calls the optional
+# ACTION-IF-NOT-FOUND action if one was supplied.
+# Otherwise aborts with an error message.
AC_DEFUN([BOOST_REQUIRE],
-[dnl First find out what kind of argument we have.
-dnl If we have an empty argument, there is no constraint on the version of
-dnl Boost to use. If it's a literal version number, we can split it in M4 (so
-dnl the resulting configure script will be smaller/faster). Otherwise we do
-dnl the splitting at runtime.
-m4_bmatch([$1],
- [^ *$], [m4_pushdef([BOOST_VERSION_REQ], [])dnl
- boost_version_major=0
- boost_version_minor=0
- boost_version_subminor=0
-],
- [^[0-9]+\([-._][0-9]+\)*$],
- [m4_pushdef([BOOST_VERSION_REQ], [ version >= $1])dnl
- boost_version_major=m4_bregexp([$1], [^\([0-9]+\)], [\1])
- boost_version_minor=m4_bregexp([$1], [^[0-9]+[-._]\([0-9]+\)], [\1])
- boost_version_subminor=m4_bregexp([$1], [^[0-9]+[-._][0-9]+[-._]\([0-9]+\)], [\1])
-],
- [^\$[a-zA-Z_]+$],
- [m4_pushdef([BOOST_VERSION_REQ], [])dnl
- boost_version_major=`expr "X$1" : 'X\([[^-._]]*\)'`
- boost_version_minor=`expr "X$1" : 'X[[0-9]]*[[-._]]\([[^-._]]*\)'`
- boost_version_subminor=`expr "X$1" : 'X[[0-9]]*[[-._]][[0-9]]*[[-._]]\([[0-9]]*\)'`
- case $boost_version_major:$boost_version_minor in #(
- *: | :* | *[[^0-9]]*:* | *:*[[^0-9]]*)
- AC_MSG_ERROR([[Invalid argument for REQUIRE_BOOST: `$1']])
- ;;
- esac
-],
- [m4_fatal(Invalid argument: `$1')]
-)dnl
+[AC_REQUIRE([AC_PROG_CXX])dnl
+AC_REQUIRE([AC_PROG_GREP])dnl
+echo "$as_me: this is boost.m4[]_BOOST_SERIAL" >&AS_MESSAGE_LOG_FD
+boost_save_IFS=$IFS
+boost_version_req=$1
+IFS=.
+set x $boost_version_req 0 0 0
+IFS=$boost_save_IFS
+shift
+boost_version_req=`expr "$[1]" '*' 100000 + "$[2]" '*' 100 + "$[3]"`
AC_ARG_WITH([boost],
[AS_HELP_STRING([--with-boost=DIR],
- [prefix of Boost]BOOST_VERSION_REQ[ @<:@guess@:>@])])dnl
+ [prefix of Boost $1 @<:@guess@:>@])])dnl
+AC_ARG_VAR([BOOST_ROOT],[Location of Boost installation])dnl
+# If BOOST_ROOT is set and the user has not provided a value to
+# --with-boost, then treat BOOST_ROOT as if it the user supplied it.
+if test x"$BOOST_ROOT" != x; then
+ if test x"$with_boost" = x; then
+ AC_MSG_NOTICE([Detected BOOST_ROOT; continuing with --with-boost=$BOOST_ROOT])
+ with_boost=$BOOST_ROOT
+ else
+ AC_MSG_NOTICE([Detected BOOST_ROOT=$BOOST_ROOT, but overridden by --with-boost=$with_boost])
+ fi
+fi
AC_SUBST([DISTCHECK_CONFIGURE_FLAGS],
["$DISTCHECK_CONFIGURE_FLAGS '--with-boost=$with_boost'"])
- AC_CACHE_CHECK([for Boost headers[]BOOST_VERSION_REQ],
+boost_save_CPPFLAGS=$CPPFLAGS
+ AC_CACHE_CHECK([for Boost headers version >= $boost_version_req],
[boost_cv_inc_path],
[boost_cv_inc_path=no
AC_LANG_PUSH([C++])dnl
- boost_subminor_chk=
- test x"$boost_version_subminor" != x \
- && boost_subminor_chk="|| (B_V_MAJ == $boost_version_major \
-&& B_V_MIN == $boost_version_minor \
-&& B_V_SUB < $boost_version_subminor)"
- for boost_dir in "$with_boost/include" '' \
- /opt/local/include /usr/local/include /opt/include /usr/include \
- "$with_boost" C:/Boost/include
+m4_pattern_allow([^BOOST_VERSION$])dnl
+ AC_LANG_CONFTEST([AC_LANG_PROGRAM([[#include <boost/version.hpp>
+#if !defined BOOST_VERSION
+# error BOOST_VERSION is not defined
+#elif BOOST_VERSION < $boost_version_req
+# error Boost headers version < $boost_version_req
+#endif
+]])])
+ # If the user provided a value to --with-boost, use it and only it.
+ case $with_boost in #(
+ ''|yes) set x '' /opt/local/include /usr/local/include /opt/include \
+ /usr/include C:/Boost/include;; #(
+ *) set x "$with_boost/include" "$with_boost";;
+ esac
+ shift
+ for boost_dir
do
# Without --layout=system, Boost (or at least some versions) installs
# itself in <prefix>/include/boost-<version>. This inner loop helps to
# find headers in such directories.
+ #
+ # Any ${boost_dir}/boost-x_xx directories are searched in reverse version
+ # order followed by ${boost_dir}. The final '.' is a sentinel for
+ # searching $boost_dir" itself. Entries are whitespace separated.
+ #
# I didn't indent this loop on purpose (to avoid over-indented code)
- for boost_inc in "$boost_dir" "$boost_dir"/boost-*
+ boost_layout_system_search_list=`cd "$boost_dir" 2>/dev/null \
+ && ls -1 | "${GREP}" '^boost-' | sort -rn -t- -k2 \
+ && echo .`
+ for boost_inc in $boost_layout_system_search_list
do
- # $boost_inc can often be a symlink, so keep -e here.
- test -e "$boost_inc" || continue
- # Ensure that version.hpp exists: we're going to read it. Moreover,
- # Boost could be reachable thanks to the default include path so we can
- # mistakenly accept a wrong include path without this check.
- test -e "$boost_inc/boost/version.hpp" || continue
- boost_save_CPPFLAGS=$CPPFLAGS
- test x"$boost_inc" != x && CPPFLAGS="$CPPFLAGS -I$boost_inc"
-m4_pattern_allow([^BOOST_VERSION$])dnl
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <boost/version.hpp>
-#ifndef BOOST_VERSION
-# error BOOST_VERSION is not defined
-#endif
-#define B_V_MAJ (BOOST_VERSION / 100000)
-#define B_V_MIN (BOOST_VERSION / 100 % 1000)
-#define B_V_SUB (BOOST_VERSION % 100)
-#if (B_V_MAJ < $boost_version_major) \
- || (B_V_MAJ == $boost_version_major \
- && B_V_MIN < $boost_version_minor) $boost_subminor_chk
-# error Boost headers version < $1
-#endif
-]])], [boost_cv_inc_path=yes], [boost_cv_version=no])
- CPPFLAGS=$boost_save_CPPFLAGS
+ if test x"$boost_inc" != x.; then
+ boost_inc="$boost_dir/$boost_inc"
+ else
+ boost_inc="$boost_dir" # Uses sentinel in boost_layout_system_search_list
+ fi
+ if test x"$boost_inc" != x; then
+ # We are going to check whether the version of Boost installed
+ # in $boost_inc is usable by running a compilation that
+ # #includes it. But if we pass a -I/some/path in which Boost
+ # is not installed, the compiler will just skip this -I and
+ # use other locations (either from CPPFLAGS, or from its list
+ # of system include directories). As a result we would use
+ # header installed on the machine instead of the /some/path
+ # specified by the user. So in that precise case (trying
+ # $boost_inc), make sure the version.hpp exists.
+ #
+ # Use test -e as there can be symlinks.
+ test -e "$boost_inc/boost/version.hpp" || continue
+ CPPFLAGS="$CPPFLAGS -I$boost_inc"
+ fi
+ AC_COMPILE_IFELSE([], [boost_cv_inc_path=yes], [boost_cv_version=no])
if test x"$boost_cv_inc_path" = xyes; then
if test x"$boost_inc" != x; then
boost_cv_inc_path=$boost_inc
@@ -133,28 +183,49 @@ AC_LANG_POP([C++])dnl
])
case $boost_cv_inc_path in #(
no)
- AC_MSG_ERROR([Could not find Boost headers[]BOOST_VERSION_REQ])
+ boost_errmsg="cannot find Boost headers version >= $boost_version_req"
+ m4_if([$2], [], [AC_MSG_ERROR([$boost_errmsg])],
+ [AC_MSG_NOTICE([$boost_errmsg])])
+ $2
;;#(
yes)
BOOST_CPPFLAGS=
;;#(
*)
- BOOST_CPPFLAGS="-I$boost_cv_inc_path"
+ AC_SUBST([BOOST_CPPFLAGS], ["-I$boost_cv_inc_path"])
;;
esac
-AC_SUBST([BOOST_CPPFLAGS])dnl
+ if test x"$boost_cv_inc_path" != xno; then
+ AC_DEFINE([HAVE_BOOST], [1],
+ [Defined if the requested minimum BOOST version is satisfied])
AC_CACHE_CHECK([for Boost's header version],
[boost_cv_lib_version],
[m4_pattern_allow([^BOOST_LIB_VERSION$])dnl
- boost_cv_lib_version=unknown
- boost_sed_version='/^.*BOOST_LIB_VERSION.*"\([[^"]]*\)".*$/!d;s//\1/'
- boost_version_hpp="$boost_inc/boost/version.hpp"
- test -e "$boost_version_hpp" \
- && boost_cv_lib_version=`sed "$boost_sed_version" "$boost_version_hpp"`
- ])
-m4_popdef([BOOST_VERSION_REQ])dnl
+ _BOOST_SED_CPP([/^boost-lib-version = /{s///;s/\"//g;p;g;}],
+ [#include <boost/version.hpp>
+boost-lib-version = BOOST_LIB_VERSION],
+ [boost_cv_lib_version=`cat conftest.i`])])
+ # e.g. "134" for 1_34_1 or "135" for 1_35
+ 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])
+ ;;
+ esac
+fi
+CPPFLAGS=$boost_save_CPPFLAGS
])# BOOST_REQUIRE
+# BOOST_STATIC()
+# --------------
+# Add the "--enable-static-boost" configure argument. If this argument is given
+# on the command line, static versions of the libraries will be looked up.
+AC_DEFUN([BOOST_STATIC],
+ [AC_ARG_ENABLE([static-boost],
+ [AC_HELP_STRING([--enable-static-boost],
+ [Prefer the static boost libraries over the shared ones [no]])],
+ [enable_static_boost=yes],
+ [enable_static_boost=no])])# BOOST_STATIC
# BOOST_FIND_HEADER([HEADER-NAME], [ACTION-IF-NOT-FOUND], [ACTION-IF-FOUND])
# --------------------------------------------------------------------------
@@ -162,13 +233,19 @@ m4_popdef([BOOST_VERSION_REQ])dnl
# some parts of the Boost library which are only made of headers and don't
# require linking (such as Boost.Foreach).
#
-# Default ACTION-IF-NOT-FOUND: Fail with a fatal error.
+# Default ACTION-IF-NOT-FOUND: Fail with a fatal error unless Boost couldn't be
+# found in the first place, in which case by default a notice is issued to the
+# user. Presumably if we haven't died already it's because it's OK to not have
+# Boost, which is why only a notice is issued instead of a hard error.
#
# Default ACTION-IF-FOUND: define the preprocessor symbol HAVE_<HEADER-NAME> in
# case of success # (where HEADER-NAME is written LIKE_THIS, e.g.,
# HAVE_BOOST_FOREACH_HPP).
AC_DEFUN([BOOST_FIND_HEADER],
[AC_REQUIRE([BOOST_REQUIRE])dnl
+if test x"$boost_cv_inc_path" = xno; then
+ m4_default([$2], [AC_MSG_NOTICE([Boost not available, not searching for $1])])
+else
AC_LANG_PUSH([C++])dnl
boost_save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
@@ -178,6 +255,7 @@ AC_CHECK_HEADER([$1],
[m4_default([$2], [AC_MSG_ERROR([cannot find $1])])])
CPPFLAGS=$boost_save_CPPFLAGS
AC_LANG_POP([C++])dnl
+fi
])# BOOST_FIND_HEADER
@@ -203,9 +281,14 @@ AC_LANG_POP([C++])dnl
# ... 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_REQUIRE([_BOOST_FIND_COMPILER_TAG])dnl
-AC_REQUIRE([BOOST_REQUIRE])dnl
+[AC_REQUIRE([BOOST_REQUIRE])dnl
+AC_REQUIRE([_BOOST_FIND_COMPILER_TAG])dnl
+AC_REQUIRE([BOOST_STATIC])dnl
AC_REQUIRE([_BOOST_GUESS_WHETHER_TO_USE_MT])dnl
+if test x"$boost_cv_inc_path" = xno; then
+ AC_MSG_NOTICE([Boost not available, not searching for the Boost $1 library])
+else
+dnl The else branch is huge and wasn't intended on purpose.
AC_LANG_PUSH([C++])dnl
AS_VAR_PUSHDEF([Boost_lib], [boost_cv_lib_$1])dnl
AS_VAR_PUSHDEF([Boost_lib_LDFLAGS], [boost_cv_lib_$1_LDFLAGS])dnl
@@ -227,10 +310,18 @@ AC_CACHE_CHECK([for the Boost $1 library], [Boost_lib],
mt* | mt-*) boost_mt=-mt; boost_rtopt=`expr "X$2" : 'Xmt-*\(.*\)'`;; #(
*) boost_mt=; boost_rtopt=$2;;
esac
- # If the PREFERRED-RT-OPT are not empty, prepend a `-'.
+ 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 #(
- *[[a-z0-9A-Z]]*) boost_rtopt="-$boost_rtopt";;
+ *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';;
esac
+ # If the PREFERRED-RT-OPT are not empty, prepend a `-'.
+ test -n "$boost_rtopt" && boost_rtopt="-$boost_rtopt"
$boost_guess_use_mt && boost_mt=-mt
# Look for the abs path the static archive.
# $libext is computed by Libtool but let's make sure it's non empty.
@@ -258,7 +349,7 @@ dnl empty because the test file is generated only once above (before we
dnl start the for loops).
AC_COMPILE_IFELSE([],
[ac_objext=do_not_rm_me_plz],
- [AC_MSG_ERROR([Cannot compile a test that uses Boost $1])])
+ [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
@@ -269,9 +360,8 @@ 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_mt_$boost_ver_ \
boost_$1$boost_tag_$boost_rtopt_$boost_ver_ \
- boost_$1$boost_tag_$boost_mt_ \
+ boost_$1$boost_tag_$boost_mt_$boost_ver_ \
boost_$1$boost_tag_$boost_ver_
do
# Avoid testing twice the same lib
@@ -321,7 +411,8 @@ done
rm -f conftest.$ac_objext
])
case $Boost_lib in #(
- no) AC_MSG_ERROR([Could not find the flags to link with Boost $1])
+ no) _AC_MSG_LOG_CONFTEST
+ AC_MSG_ERROR([cannot not find the flags to link with Boost $1])
;;
esac
AC_SUBST(AS_TR_CPP([BOOST_$1_LDFLAGS]), [$Boost_lib_LDFLAGS])
@@ -331,6 +422,7 @@ AS_VAR_POPDEF([Boost_lib])dnl
AS_VAR_POPDEF([Boost_lib_LDFLAGS])dnl
AS_VAR_POPDEF([Boost_lib_LIBS])dnl
AC_LANG_POP([C++])dnl
+fi
])# BOOST_FIND_LIB
@@ -342,6 +434,20 @@ AC_LANG_POP([C++])dnl
# The page http://beta.boost.org/doc/libs is useful: it gives the first release
# version of each library (among other things).
+# BOOST_ARRAY()
+# -------------
+# Look for Boost.Array
+AC_DEFUN([BOOST_ARRAY],
+[BOOST_FIND_HEADER([boost/array.hpp])])
+
+
+# BOOST_ASIO()
+# ------------
+# Look for Boost.Asio (new in Boost 1.35).
+AC_DEFUN([BOOST_ASIO],
+[AC_REQUIRE([BOOST_SYSTEM])dnl
+BOOST_FIND_HEADER([boost/asio.hpp])])
+
# BOOST_BIND()
# ------------
@@ -372,12 +478,26 @@ AC_DEFUN([BOOST_DATE_TIME],
# BOOST_FILESYSTEM([PREFERRED-RT-OPT])
# ------------------------------------
-# Look for Boost.Filesystem. For the documentation of PREFERRED-RT-OPT, see the
-# documentation of BOOST_FIND_LIB above.
-# Do not check for boost/filesystem.hpp because this file was introduced in 1.34.
+# Look for Boost.Filesystem. For the documentation of PREFERRED-RT-OPT, see
+# the documentation of BOOST_FIND_LIB above.
+# Do not check for boost/filesystem.hpp because this file was introduced in
+# 1.34.
AC_DEFUN([BOOST_FILESYSTEM],
-[BOOST_FIND_LIB([filesystem], [$1],
+[# 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])
+fi # end of the Boost.System check.
+boost_filesystem_save_LIBS=$LIBS
+boost_filesystem_save_LDFLAGS=$LDFLAGS
+m4_pattern_allow([^BOOST_SYSTEM_(LIBS|LDFLAGS)$])dnl
+LIBS="$LIBS $BOOST_SYSTEM_LIBS"
+LDFLAGS="$LDFLAGS $BOOST_SYSTEM_LDFLAGS"
+BOOST_FIND_LIB([filesystem], [$1],
[boost/filesystem/path.hpp], [boost::filesystem::path p;])
+LIBS=$boost_filesystem_save_LIBS
+LDFLAGS=$boost_filesystem_save_LDFLAGS
])# BOOST_FILESYSTEM
@@ -441,6 +561,40 @@ AC_DEFUN([BOOST_LAMBDA],
[BOOST_FIND_HEADER([boost/lambda/lambda.hpp])])
+# BOOST_MATH()
+# ------------
+# Look for Boost.Math
+# TODO: This library isn't header-only but it comes in multiple different
+# flavors that don't play well with BOOST_FIND_LIB (e.g, libboost_math_c99,
+# libboost_math_c99f, libboost_math_c99l, libboost_math_tr1,
+# libboost_math_tr1f, libboost_math_tr1l). This macro must be fixed to do the
+# right thing anyway.
+AC_DEFUN([BOOST_MATH],
+[BOOST_FIND_HEADER([boost/math/special_functions.hpp])])
+
+
+# BOOST_MULTIARRAY()
+# ------------------
+# Look for Boost.MultiArray
+AC_DEFUN([BOOST_MULTIARRAY],
+[BOOST_FIND_HEADER([boost/multi_array.hpp])])
+
+
+# BOOST_NUMERIC_CONVERSION()
+# --------------------------
+# Look for Boost.NumericConversion (policy-based numeric conversion)
+AC_DEFUN([BOOST_NUMERIC_CONVERSION],
+[BOOST_FIND_HEADER([boost/numeric/conversion/converter.hpp])
+])# BOOST_NUMERIC_CONVERSION
+
+
+# BOOST_OPTIONAL()
+# ----------------
+# Look for Boost.Optional
+AC_DEFUN([BOOST_OPTIONAL],
+[BOOST_FIND_HEADER([boost/optional.hpp])])
+
+
# BOOST_PREPROCESSOR()
# --------------------
# Look for Boost.Preprocessor
@@ -509,6 +663,13 @@ BOOST_FIND_HEADER([boost/shared_ptr.hpp])
])
+# BOOST_STATICASSERT()
+# --------------------
+# Look for Boost.StaticAssert
+AC_DEFUN([BOOST_STATICASSERT],
+[BOOST_FIND_HEADER([boost/static_assert.hpp])])
+
+
# BOOST_STRING_ALGO()
# -------------------
# Look for Boost.StringAlgo
@@ -517,6 +678,18 @@ AC_DEFUN([BOOST_STRING_ALGO],
])
+# BOOST_SYSTEM([PREFERRED-RT-OPT])
+# --------------------------------
+# Look for Boost.System. For the documentation of PREFERRED-RT-OPT, see the
+# documentation of BOOST_FIND_LIB above. This library was introduced in Boost
+# 1.35.0.
+AC_DEFUN([BOOST_SYSTEM],
+[BOOST_FIND_LIB([system], [$1],
+ [boost/system/error_code.hpp],
+ [boost::system::error_code e; e.clear();])
+])# BOOST_SYSTEM
+
+
# BOOST_TEST([PREFERRED-RT-OPT])
# ------------------------------
# Look for Boost.Test. For the documentation of PREFERRED-RT-OPT, see the
@@ -582,6 +755,13 @@ AC_DEFUN([BOOST_TUPLE],
[BOOST_FIND_HEADER([boost/tuple/tuple.hpp])])
+# BOOST_TYPETRAITS()
+# --------------------
+# Look for Boost.TypeTraits
+AC_DEFUN([BOOST_TYPETRAITS],
+[BOOST_FIND_HEADER([boost/type_traits.hpp])])
+
+
# BOOST_UTILITY()
# ---------------
# Look for Boost.Utility (noncopyable, result_of, base-from-member idiom,
@@ -600,12 +780,33 @@ BOOST_FIND_HEADER([boost/variant.hpp])])
# BOOST_WAVE([PREFERRED-RT-OPT])
# ------------------------------
+# NOTE: If you intend to use Wave/Spirit with thread support, make sure you
+# call BOOST_THREADS first.
# Look for Boost.Wave. For the documentation of PREFERRED-RT-OPT, see the
# documentation of BOOST_FIND_LIB above.
AC_DEFUN([BOOST_WAVE],
-[BOOST_FIND_LIB([wave], [$1],
+[AC_REQUIRE([BOOST_FILESYSTEM])dnl
+AC_REQUIRE([BOOST_DATE_TIME])dnl
+boost_wave_save_LIBS=$LIBS
+boost_wave_save_LDFLAGS=$LDFLAGS
+m4_pattern_allow([^BOOST_((FILE)?SYSTEM|DATE_TIME|THREAD)_(LIBS|LDFLAGS)$])dnl
+LIBS="$LIBS $BOOST_SYSTEM_LIBS $BOOST_FILESYSTEM_LIBS $BOOST_DATE_TIME_LIBS\
+$BOOST_THREAD_LIBS"
+LDFLAGS="$LDFLAGS $BOOST_SYSTEM_LDFLAGS $BOOST_FILESYSTEM_LDFLAGS\
+$BOOST_DATE_TIME_LDFLAGS $BOOST_THREAD_LDFLAGS"
+BOOST_FIND_LIB([wave], [$1],
[boost/wave.hpp],
- [boost::wave::token_id id; get_token_name(id);])])
+ [boost::wave::token_id id; get_token_name(id);])
+LIBS=$boost_wave_save_LIBS
+LDFLAGS=$boost_wave_save_LDFLAGS
+])# BOOST_WAVE
+
+
+# BOOST_XPRESSIVE()
+# -----------------
+# Look for Boost.Xpressive (new since 1.36.0).
+AC_DEFUN([BOOST_XPRESSIVE],
+[BOOST_FIND_HEADER([boost/xpressive/xpressive.hpp])])
# ----------------- #
@@ -692,9 +893,11 @@ m4_define([_BOOST_gcc_test],
# build. The Boost build system seems to call this a `tag'.
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_LANG_PUSH([C++])dnl
- boost_cv_lib_tag=unknown
+[boost_cv_lib_tag=unknown
+if test x$boost_cv_inc_path != xno; then
+ AC_LANG_PUSH([C++])dnl
# The following tests are mostly inspired by boost/config/auto_link.hpp
# The list is sorted to most recent/common to oldest compiler (in order
# to increase the likelihood of finding the right compiler with the
@@ -708,8 +911,9 @@ AC_CACHE_CHECK([for the toolset name used by Boost for $CXX], [boost_cv_lib_tag]
# como, edg, kcc, bck, mp, sw, tru, xlc
# I'm not sure about my test for `il' (be careful: Intel's ICC pre-defines
# the same defines as GCC's).
- # TODO: Move the test on GCC 4.3 up once it's released.
+ # TODO: Move the test on GCC 4.4 up once it's released.
for i in \
+ _BOOST_gcc_test(4, 3) \
_BOOST_gcc_test(4, 2) \
_BOOST_gcc_test(4, 1) \
_BOOST_gcc_test(4, 0) \
@@ -718,7 +922,8 @@ AC_CACHE_CHECK([for the toolset name used by Boost for $CXX], [boost_cv_lib_tag]
|| defined __WIN32__ || defined __WINNT || defined __WINNT__) @ mgw" \
_BOOST_gcc_test(3, 4) \
_BOOST_gcc_test(3, 3) \
- "defined _MSC_VER && _MSC_VER >= 1400 @ vc80" \
+ "defined _MSC_VER && _MSC_VER >= 1500 @ vc90" \
+ "defined _MSC_VER && _MSC_VER == 1400 @ vc80" \
_BOOST_gcc_test(3, 2) \
"defined _MSC_VER && _MSC_VER == 1310 @ vc71" \
_BOOST_gcc_test(3, 1) \
@@ -727,7 +932,7 @@ AC_CACHE_CHECK([for the toolset name used by Boost for $CXX], [boost_cv_lib_tag]
"defined __ICC && (defined __unix || defined __unix__) @ il" \
"defined __ICL @ iw" \
"defined _MSC_VER && _MSC_VER == 1300 @ vc7" \
- _BOOST_gcc_test(4, 3) \
+ _BOOST_gcc_test(4, 4) \
_BOOST_gcc_test(2, 95) \
"defined __MWERKS__ && __MWERKS__ <= 0x32FF @ cw9" \
"defined _MSC_VER && _MSC_VER < 1300 && !defined UNDER_CE @ vc6" \
@@ -745,20 +950,29 @@ AC_CACHE_CHECK([for the toolset name used by Boost for $CXX], [boost_cv_lib_tag]
]])], [boost_cv_lib_tag=$boost_tag; break], [])
done
AC_LANG_POP([C++])dnl
-])
case $boost_cv_lib_tag in #(
# Some newer (>= 1.35?) versions of Boost seem to only use "gcc" as opposed
# to "gcc41" for instance.
+ *-gcc | *'-gcc ') :;; #( Don't re-add -gcc: it's already in there.
gcc*)
+ boost_tag_x=
+ case $host_os in #(
+ darwin*)
+ if test $boost_major_version -ge 136; then
+ # The `x' added in r46793 of Boost.
+ boost_tag_x=x
+ fi;;
+ esac
# We can specify multiple tags in this variable because it's used by
# BOOST_FIND_LIB that does a `for tag in -$boost_cv_lib_tag' ...
- boost_cv_lib_tag="$boost_cv_lib_tag -gcc"
+ boost_cv_lib_tag="$boost_tag_x$boost_cv_lib_tag -${boost_tag_x}gcc"
;; #(
unknown)
AC_MSG_WARN([[could not figure out which toolset name to use for $CXX]])
boost_cv_lib_tag=
;;
esac
+fi])dnl end of AC_CACHE_CHECK
])# _BOOST_FIND_COMPILER_TAG
@@ -784,11 +998,14 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
# rm -f conftest.$ac_objext in between to really different tests, otherwise
# you will try to link a conftest.o left behind by a previous test.
# Used to aggressively optimize BOOST_FIND_LIB (see the big comment in this
-# macro)
+# macro).
+#
+# Don't use "break" in the actions, as it would short-circuit some code
+# this macro runs after the actions.
m4_define([_BOOST_AC_LINK_IFELSE],
[m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl
rm -f conftest$ac_exeext
-boost_ac_ext_save=$ac_ext
+boost_save_ac_ext=$ac_ext
boost_use_source=:
# If we already have a .o, re-use it. We change $ac_ext so that $ac_link
# tries to link the existing object file instead of compiling from source.
@@ -807,9 +1024,15 @@ dnl FIXME: use AS_TEST_X instead when 2.61 is widespread enough.
_AC_MSG_LOG_CONFTEST
fi
$3])
+ac_objext=$boost_save_ac_objext
+ac_ext=$boost_save_ac_ext
dnl Delete also the IPA/IPO (Inter Procedural Analysis/Optimization)
dnl information created by the PGI compiler (conftest_ipa8_conftest.oo),
dnl as it would interfere with the next link command.
rm -f core conftest.err conftest_ipa8_conftest.oo \
conftest$ac_exeext m4_ifval([$1], [conftest.$ac_ext])[]dnl
])# _BOOST_AC_LINK_IFELSE
+
+# Local Variables:
+# mode: autoconf
+# End:
--
1.5.6.5
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/next has been updated
via ed4e74a2f51a69d580a46b155c9d319d7e7f603c (commit)
from 63c77cdaa94cdbfd1ee3591675f729b74cc0371e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
ed4e74a Makefile.am: Fix call to build_unit_test.sh.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 4 ++++
Makefile.am | 4 +++-
2 files changed, 7 insertions(+), 1 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform