[svn] commit: r1772 - /branches/trac148/configure.ac
BIND 10 source code commits
bind10-changes at lists.isc.org
Wed Apr 21 08:02:41 UTC 2010
Author: jinmei
Date: Wed Apr 21 08:02:40 2010
New Revision: 1772
Log:
checkpoint
Modified:
branches/trac148/configure.ac
Modified: branches/trac148/configure.ac
==============================================================================
--- branches/trac148/configure.ac (original)
+++ branches/trac148/configure.ac Wed Apr 21 08:02:40 2010
@@ -181,8 +181,15 @@
[specify exact directory for Boost libraries]),
[if test "$withval" != "yes" -a "$withval" != "no"; then
BOOST_LDFLAGS="-L$withval"
+ boost_rpath_flag="-R$withval"
+ boost_library_path=$withval
fi])
-AC_SUBST(BOOST_LDFLAGS)
+
+# We'll substitute BOOST_LDFLAGS later; we first need to check necessary
+# configuration for linking particular boost libraries. In particular, if
+# we end up using an "rpath" linker option, we'll add it to BOOST_LDFLAGS
+# then substitute it.
+use_boost_rflag=no
# Check availability of the Boost System library
@@ -199,17 +206,42 @@
CPPFLAGS="$CPPFLAGS -Iext"
for BOOST_TRY_LIB in boost_system boost_system-mt; do
- LDFLAGS="$LDFLAGS_SAVED ${BOOST_LDFLAGS}"
- LIBS="$LIBS_SAVED -l${BOOST_TRY_LIB}"
- AC_TRY_LINK([#include <boost/system/error_code.hpp>],
- [ boost::system::error_code error_code;
- std::string message(error_code.message());
- return 0; ],
+ for mode in normal with_rflag with_static; do
+ case "${mode}" in
+ normal)
+ LDFLAGS="$LDFLAGS_SAVED ${BOOST_LDFLAGS}"
+ BOOST_SYSTEM_LIB="-l${BOOST_TRY_LIB}"
+ ;;
+ with_rflag)
+ LDFLAGS="$LDFLAGS_SAVED ${BOOST_LDFLAGS} ${boost_rpath_flag}"
+ BOOST_SYSTEM_LIB="-l${BOOST_TRY_LIB}"
+ ;;
+ with_static)
+ LDFLAGS="$LDFLAGS_SAVED ${BOOST_LDFLAGS}"
+ if test -z "${boost_library_path}"; then
+ continue
+ fi
+ BOOST_SYSTEM_LIB="${boost_library_path}/lib${BOOST_TRY_LIB}.a"
+ ;;
+ esac
+ LIBS="$LIBS_SAVED ${BOOST_SYSTEM_LIB}"
+ AC_TRY_RUN([
+#include <boost/system/error_code.hpp>
+int main() {
+ boost::system::error_code error_code;
+ std::string message(error_code.message());
+ return 0;
+}
+],
[ AC_MSG_RESULT(yes)
- BOOST_SYSTEM_LIB="-l${BOOST_TRY_LIB}"
- ],[])
+ if test $mode = "with_rflag"; then
+ use_boost_rflag=yes
+ fi
+ break
+ ],[BOOST_SYSTEM_LIB=""])
+ done
if test "X${BOOST_SYSTEM_LIB}" != X; then
- break
+ break
fi
done
@@ -220,6 +252,9 @@
if test "X${BOOST_SYSTEM_LIB}" = X; then
AC_MSG_RESULT(no)
+ if test "X$boost_library_path" != X; then
+ AC_MSG_WARN([Could not find boost system library in $boost_library_path. If it is a shared library in a non standard path, retry with specifying the run time load path (such as LD_LIBRARY_PATH).])
+ fi
if test "$with_boost_system" = "yes"; then
AC_MSG_ERROR([boost system library is requested but not found])
fi
@@ -247,15 +282,41 @@
CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
for BOOST_TRY_LIB in boost_python boost_python-mt; do
- LDFLAGS="$LDFLAGS_SAVED ${BOOST_LDFLAGS} ${PYTHON_LDFLAGS}"
- LIBS="$LIBS_SAVED -l${BOOST_TRY_LIB} ${PYTHON_LIB}"
- AC_TRY_LINK([#include <boost/python/module.hpp>
- using namespace boost::python;
- BOOST_PYTHON_MODULE(test) { throw "Boost::Python test."; }],
- [ return 0; ],
- [ AC_MSG_RESULT(yes)
- BOOST_PYTHON_LIB="-l${BOOST_TRY_LIB}"
- ],[])
+ for mode in normal with_rflag with_static; do
+ case "${mode}" in
+ normal)
+ LDFLAGS="$LDFLAGS_SAVED ${BOOST_LDFLAGS}"
+ BOOST_PYTHON_LIB="-l${BOOST_TRY_LIB}"
+ ;;
+ with_rflag)
+ LDFLAGS="$LDFLAGS_SAVED ${BOOST_LDFLAGS} ${boost_rpath_flag}"
+ BOOST_PYTHON_LIB="-l${BOOST_TRY_LIB}"
+ ;;
+ with_static)
+ LDFLAGS="$LDFLAGS_SAVED ${BOOST_LDFLAGS}"
+ if test -z "${boost_library_path}"; then
+ continue
+ fi
+ BOOST_PYTHON_LIB="${boost_library_path}/lib${BOOST_TRY_LIB}.a"
+ ;;
+ esac
+ LIBS="$LIBS_SAVED ${BOOST_PYTHON_LIB}"
+ AC_TRY_RUN([
+#include <boost/python/module.hpp>
+using namespace boost::python;
+BOOST_PYTHON_MODULE(test) { throw "Boost::Python test."; }
+int main() {
+ return 0;
+}
+],
+ [ AC_MSG_RESULT(yes)
+ BOOST_PYTHON_LIB="-l${BOOST_TRY_LIB}"
+ if test $mode = "with_rflag"; then
+ use_boost_rflag=yes
+ fi
+ break
+ ],[BOOST_PYTHON_LIB=""])
+ done
if test "X${BOOST_PYTHON_LIB}" != X; then
break
fi
@@ -268,6 +329,9 @@
if test "X${BOOST_PYTHON_LIB}" = X; then
AC_MSG_RESULT(no)
+ if test "X$boost_library_path" != X; then
+ AC_MSG_WARN([Could not find boost python library in $boost_library_path. If it is a shared library in a non standard path, retry with specifying the run time load path (such as LD_LIBRARY_PATH).])
+ fi
if test "$with_boost_python" = "yes"; then
AC_MSG_ERROR([boost python library is requested but not found])
fi
@@ -277,6 +341,11 @@
AM_CONDITIONAL(HAVE_BOOST_PYTHON, test "X${BOOST_PYTHON_LIB}" != X)
AC_SUBST(BOOST_PYTHON_LIB)
+
+if test $use_boost_rflag = "yes"; then
+ BOOST_LDFLAGS=$boost_rpath_flag
+fi
+AC_SUBST(BOOST_LDFLAGS)
#
# Check availability of gtest, which will be used for unit tests.
More information about the bind10-changes
mailing list