Merge branch 'new_boost'
authorAdam Dickmeiss <adam@indexdata.dk>
Sun, 13 Apr 2008 16:59:53 +0000 (18:59 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Sun, 13 Apr 2008 16:59:53 +0000 (18:59 +0200)
boost.m4 [new file with mode: 0644]

diff --git a/boost.m4 b/boost.m4
new file mode 100644 (file)
index 0000000..084e36e
--- /dev/null
+++ b/boost.m4
@@ -0,0 +1,90 @@
+# configure for Boost libs
+#
+# ID_BOOST([components],[libs])
+AC_DEFUN([ID_BOOST],
+    [
+       AC_SUBST(BOOST_CPPFLAGS)
+       AC_SUBST(BOOST_LIB)
+       
+       AC_MSG_CHECKING([for Boost])
+       AC_LANG_PUSH([C++])
+       oldCPPFLAGS="$CPPFLAGS"
+       oldLIBS="$LIBS"
+       BOOST_REQ_VERSION=`echo "$2" | awk 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 1000 + [$]2) * 100 + [$]3;}'`
+       CPPFLAGS="$CPPFLAGS -DBOOST_REQ_VERSION=${BOOST_REQ_VERSION}"
+
+       AC_ARG_WITH([boost],[[  --with-boost=DIR  use Boost in prefix DIR]])
+       if test "$with_boost" = "yes" -o -z "$with_boost"; then
+           BOOST_CPPFLAGS=""
+           BOOST_LIB=""
+       else
+           BOOST_CPPFLAGS="-I${with_boost}/include"
+           BOOST_LIB="-L${with_boost}/lib"
+       fi
+       if test "${with_boost}" = "no"; then
+           AC_MSG_RESULT([disabled])
+       else
+           CPPFLAGS="${CPPFLAGS} ${BOOST_CPPFLAGS}"
+           LIBS="${LIBS} ${BOOST_LIB}"
+            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <boost/version.hpp>
+]],[[ 
+int x = BOOST_VERSION;
+]])],[AC_MSG_RESULT([yes])],[AC_MSG_RESULT([no])
+           AC_MSG_ERROR([Boost development libraries required])
+])
+
+
+            AC_MSG_CHECKING([Boost version])
+           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <boost/version.hpp>
+]],[[
+#if BOOST_VERSION < BOOST_REQ_VERSION
+#error Version too old
+#endif
+]])],[
+           AC_MSG_RESULT([ok])
+],[
+           AC_MSG_RESULT([version too old])
+           AC_MSG_ERROR([A newer version of Boost is required])
+       ])
+       fi
+       for c in $1; do
+           case $c in 
+               thread)
+                   AC_SUBST(BOOST_THREAD_LIB)
+                   BOOST_THREAD_LIB="-lboost_thread"
+                   AC_MSG_CHECKING([Boost threads])
+                   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <boost/version.hpp>
+#include <boost/thread/thread.hpp>
+]],[[ 
+int x = BOOST_VERSION;
+]])],[AC_MSG_RESULT([yes])],[
+AC_MSG_RESULT([no])
+AC_MSG_ERROR([Boost thread libraries required])
+])
+                    ;;
+               test)
+                   AC_SUBST(BOOST_TEST_LIB)
+                   BOOST_TEST_LIB="-lboost_unit_test_framework"
+                   AC_MSG_CHECKING([Boost unit test framework])
+                   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#define BOOST_TEST_DYN_LINK
+#include <boost/test/auto_unit_test.hpp>
+BOOST_AUTO_TEST_CASE( t ) 
+{
+    BOOST_CHECK(1);
+}
+]],[[ 
+]])],[AC_MSG_RESULT([yes])],[AC_MSG_RESULT([no])
+AC_MSG_ERROR([Boost unit test framework libraries required])])
+                    ;;
+               esac
+       done
+       CPPFLAGS="$oldCPPFLAGS"
+       LIBS="$oldLIBS"
+       AC_LANG_POP([C++])
+    ])
+