ID_BOOST may check for regex
[m4-moved-to-github.git] / boost.m4
index f3eb607..1f6f03a 100644 (file)
--- a/boost.m4
+++ b/boost.m4
@@ -28,7 +28,11 @@ AC_DEFUN([ID_BOOST],
            BOOST_CPPFLAGS=""
            BOOST_LIB=""
        else
-           BOOST_LIB="-L${with_boost}/lib"
+           for b in ${with_boost}/lib ${with_boost}/lib64; do
+               if test -d "$b"; then
+                   BOOST_LIB="-L$b"
+               fi
+            done
            BOOST_CPPFLAGS="-I${with_boost}/include"
            if test ! -f "${with_boost}/include/boost/version.hpp"; then
                for b in ${with_boost}/include/boost-*; do
@@ -53,7 +57,8 @@ AC_DEFUN([ID_BOOST],
 version_is:BOOST_VERSION
 ]])])
            BOOST_GOT_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP version_is 2>/dev/null | cut -d ":" -f2`
-           if test "$BOOST_GOT_VERSION" = "BOOST_VERSION"; then
+           if test -z "$BOOST_GOT_VERSION" -o \
+               "$BOOST_GOT_VERSION" = "BOOST_VERSION"; then
                AC_MSG_RESULT([no])
                AC_MSG_ERROR([Boost development libraries required])
            fi
@@ -112,6 +117,28 @@ BOOST_AUTO_TEST_CASE( t )
                        fi
                        LIBS="${saveLIBS}"
                        ;;
+                   regex)
+                       AC_MSG_CHECKING([Boost regex])
+                       AC_SUBST([BOOST_REGEX_LIB])
+                       saveLIBS="${LIBS}"
+                       BOOST_REGEX_LIB=""
+                       for l in boost_regex${BOOST_TOOLSET}-mt boost_regex${BOOST_TOOLSET}; do
+                           LIBS="${saveLIBS} -l${l}"
+                       AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <boost/version.hpp>
+#include <boost/regex.hpp>
+]],[[ 
+int x = BOOST_VERSION;
+]])],[
+                           BOOST_REGEX_LIB="-l${l}"
+                           break],[])
+                       done
+                       if test "${BOOST_REGEX_LIB}"; then
+                           AC_MSG_RESULT([yes])
+                       else
+                           AC_MSG_RESULT([no])
+                       fi
+                       ;;
                esac
            done
        fi