[buildd-tools-devel] [PATCH] build: Auto-detect whether -mt is needed for Boost libs
Geoffrey Thomas
geofft at MIT.EDU
Sat Nov 21 01:32:03 UTC 2009
From: Geoffrey Thomas <geofft at mit.edu>
This makes compiling on older distributions easier.
Signed-off-by: Geoffrey Thomas <geofft at mit.edu>
---
configure.ac | 56 ++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 38 insertions(+), 18 deletions(-)
diff --git a/configure.ac b/configure.ac
index e8f7313..c54ad48 100644
--- a/configure.ac
+++ b/configure.ac
@@ -496,26 +496,36 @@ fi
AC_MSG_CHECKING([for boost::program_options::variables_map in -lboost_program_options])
saved_LIBS="${LIBS}"
-LIBS="${LIBS} -lboost_program_options"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <boost/program_options.hpp>],
- [boost::program_options::variables_map::variables_map dummy()])],
+LIBS="${saved_LIBS} -lboost_program_options"
+define([testprog], [AC_LANG_PROGRAM([#include <boost/program_options.hpp>],
+ [boost::program_options::variables_map::variables_map dummy()])])
+AC_LINK_IFELSE(testprog,
[AC_MSG_RESULT([yes])
BOOST_LIBS="${BOOST_LIBS} -lboost_program_options"],
+LIBS="${saved_LIBS} -lboost_program_options-mt"
+[AC_LINK_IFELSE(testprog,
+ [AC_MSG_RESULT([yes])
+ BOOST_LIBS="${BOOST_LIBS} -lboost_program_options-mt"],
[AC_MSG_RESULT([no])
- AC_MSG_FAILURE([libboost_program_options (Boost C++ Libraries) is not installed, but is required by schroot])])
+ AC_MSG_FAILURE([libboost_program_options (Boost C++ Libraries) is not installed, but is required by schroot])])])
LIBS="${saved_LIBS}"
AC_MSG_CHECKING([for boost::program_options::options_description::options() in -lboost_program_options])
saved_LIBS="${LIBS}"
-LIBS="${LIBS} -lboost_program_options"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <boost/program_options.hpp>],
- [boost::program_options::options_description testgrp("test group");
- bool notused = testgrp.options().empty();
-])],
+LIBS="${saved_LIBS} -lboost_program_options"
+define([testprog], [AC_LANG_PROGRAM([#include <boost/program_options.hpp>],
+ [boost::program_options::options_description testgrp("test group");
+ bool notused = testgrp.options().empty();
+])])
+AC_LINK_IFELSE(testprog,
+ [AC_MSG_RESULT([yes])
+ BOOST_PROGRAM_OPTIONS_DESCRIPTION_METHODS="current"],
+LIBS="${saved_LIBS} -lboost_program_options"
+[AC_LINK_IFELSE(testprog,
[AC_MSG_RESULT([yes])
BOOST_PROGRAM_OPTIONS_DESCRIPTION_METHODS="current"],
[AC_MSG_RESULT([no])
- BOOST_PROGRAM_OPTIONS_DESCRIPTION_METHODS="old"])
+ BOOST_PROGRAM_OPTIONS_DESCRIPTION_METHODS="old"])])
LIBS="${saved_LIBS}"
AH_TEMPLATE(BOOST_PROGRAM_OPTIONS_DESCRIPTION_OLD, [Set if boost::program_options::options_description::options() is not available])
if test "$BOOST_PROGRAM_OPTIONS_DESCRIPTION_METHODS" = "old"; then
@@ -524,24 +534,34 @@ fi
AC_MSG_CHECKING([for boost::regex in -lboost_regex])
saved_LIBS="${LIBS}"
-LIBS="${LIBS} -lboost_regex"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <boost/regex.hpp>],
- [boost::regex("^foo[bar]$")])],
+LIBS="${saved_LIBS} -lboost_regex"
+define([testprog], [AC_LANG_PROGRAM([#include <boost/regex.hpp>],
+ [boost::regex("^foo[bar]$")])])
+AC_LINK_IFELSE(testprog,
[AC_MSG_RESULT([yes])
BOOST_LIBS="${BOOST_LIBS} -lboost_regex"],
+LIBS="${saved_LIBS} -lboost_regex-mt"
+[AC_LINK_IFELSE(testprog,
+ [AC_MSG_RESULT([yes])
+ BOOST_LIBS="${BOOST_LIBS} -lboost_regex-mt"],
[AC_MSG_RESULT([no])
- AC_MSG_FAILURE([libboost_regex (Boost C++ Libraries) is not installed, but is required by schroot])])
+ AC_MSG_FAILURE([libboost_regex (Boost C++ Libraries) is not installed, but is required by schroot])])])
LIBS="${saved_LIBS}"
AC_MSG_CHECKING([for boost::filesystem in -lboost_filesystem])
saved_LIBS="${LIBS}"
-LIBS="${LIBS} -lboost_filesystem"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <boost/filesystem.hpp>],
- [boost::filesystem::is_directory("/")])],
+LIBS="${saved_LIBS} -lboost_filesystem"
+define([testprog], [AC_LANG_PROGRAM([#include <boost/filesystem.hpp>],
+ [boost::filesystem::is_directory("/")])])
+AC_LINK_IFELSE(testprog,
[AC_MSG_RESULT([yes])
BOOST_FILESYSTEM_LIBS="-lboost_filesystem"],
+LIBS="${saved_LIBS} -lboost_filesystem-mt"
+[AC_LINK_IFELSE(testprog,
+ [AC_MSG_RESULT([yes])
+ BOOST_FILESYSTEM_LIBS="-lboost_filesystem-mt"],
[AC_MSG_RESULT([no])
- AC_MSG_FAILURE([libboost_filesystem (Boost C++ Libraries) is not installed, but is required by schroot])])
+ AC_MSG_FAILURE([libboost_filesystem (Boost C++ Libraries) is not installed, but is required by schroot])])])
LIBS="${saved_LIBS}"
AC_SUBST([BOOST_LIBS])
--
1.6.3.3
More information about the Buildd-tools-devel
mailing list