Browse Source

[5337] Altered boost lib test macro to handle static linking

m4macros/ax_boost_for_kea.m4
    Altered the test to add "-static" flag and wrap the compilation
    in a call to libtool as we do in our Makefiles. This should make the
    test yield the same results as when we make.  This is important for
    -static as libtool may use .so if a .a is not available.  On systems
    which glibc .a's are not installed, our Makes with libtool would
    succeed where a call to just g++ will fail.
Thomas Markwalder 7 years ago
parent
commit
31967b5d57
1 changed files with 14 additions and 1 deletions
  1. 14 1
      m4macros/ax_boost_for_kea.m4

+ 14 - 1
m4macros/ax_boost_for_kea.m4

@@ -196,13 +196,26 @@ if test "x${BOOST_LIBS}" != "x"; then
    LIBS_SAVED="$LIBS"
    LIBS="$BOOST_LIBS $LIBS"
 
+   if test $enable_static_link = yes; then
+       LIBS="-static $LIBS"
+   fi
+
+   # Wrap the compilation in libtool as we do in our Makefiles
+   # when linking.  That way if we're static linking we should
+   # get the same result our Makefiles would.  We don't provide
+   # a path to our libtool as it may not exist yet.
+   CXX_SAVED="$CXX"
+   CXX="libtool --tag=CXX --mode=link $CXX"
+
    AC_LINK_IFELSE(
      [AC_LANG_PROGRAM([#include <boost/system/error_code.hpp>],
                       [boost::system::error_code ec;])],
      [AC_MSG_RESULT([checking for Boost system library... yes])],
      [AC_MSG_RESULT([checking for Boost system library... no])
-      AC_MSG_ERROR([Linking with ${BOOST_LIBS} is not enough: please make sure libboost_system is installed])])
+      AC_MSG_ERROR([Linking with ${BOOST_LIBS} is not enough: please make sure libboost_system is installed;
+                    Check config.log for details, you may be missing other libraries.])])
 
+    CXX="$CXX_SAVED"
     LIBS="$LIBS_SAVED"
 fi