
##### http://autoconf-archive.cryp.to/ax_boost_base.html
#
# SYNOPSIS
#
#   AX_BOOST_BASE([MINIMUM-VERSION])
#
# DESCRIPTION
#
#   Test for the Boost C++ libraries of a particular version (or newer)
#
#   If no path to the installed boost library is given the macro
#   searchs under /usr, /usr/local, and /opt, and evaluates the
#   $BOOST_ROOT environment variable. Further documentation is
#   available at <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS)
#
#   And sets:
#
#     HAVE_BOOST
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_BASE],
[
AC_ARG_WITH([boost],
   AS_HELP_STRING([--with-boost@<:@=DIR@:>@], [use boost (default is No) - it is possible to specify the root directory for boost (optional)]),
   [
    if test "$withval" = "no"; then
      want_boost="no"
    elif test "$withval" = "yes"; then
        want_boost="yes"
        ac_boost_path=""
    else
       want_boost="yes"
        ac_boost_path="$withval"
   fi
    ],
                [
                want_boost="yes"
                ])

if test "x$want_boost" = "xyes"; then
   boost_lib_version_req=ifelse([$1], ,1.20.0,$1)
   boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
   boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'`
   boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
   boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
   if test "x$boost_lib_version_req_sub_minor" = "x" ; then
      boost_lib_version_req_sub_minor="0"
       fi
   WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+  $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
   AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
   succeeded=no

   dnl first we check the system location for boost libraries
   dnl this location ist chosen if boost libraries are installed with the --layout=system option
   dnl or if you install boost with RPM
   if test "$ac_boost_path" != ""; then
##      BOOST_LDFLAGS="-L$ac_boost_path/lib"
     if test "${build_cpu}" = "x86_64"; then
            BOOST_LDFLAGS="-L$ac_boost_path/lib64"
     else
            BOOST_LDFLAGS="-L$ac_boost_path/lib"
      fi
      BOOST_CPPFLAGS="-I$ac_boost_path/include"
   else
      case "${host}" in
        *-mingw32*)
          ac_boost_path_default="/usr/i686-pc-mingw32/sys-root/mingw"
	  ;;
        *)
          ac_boost_path_default="$INSROOT /usr /usr/local /opt /opt/local"
          ;;
      esac
      for ac_boost_path_tmp in $ac_boost_path_default; do
         if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
##            BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib"
            if test "${build_cpu}" = "x86_64"; then
                  BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib64"
            else
                  BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib"
            fi
            BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
            break;
         fi
      done
   fi
   CPPFLAGS_SAVED="$CPPFLAGS"
   CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
   export CPPFLAGS
   LDFLAGS_SAVED="$LDFLAGS"
   LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
   export LDFLAGS

   AC_LANG_PUSH(C++)
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
   @%:@include <boost/version.hpp>
   ]], [[
   #if BOOST_VERSION >= $WANT_BOOST_VERSION
   // Everything is okay
   #else
   #  error Boost version is too old
   #endif
   ]])],[
        AC_MSG_RESULT(yes)
   succeeded=yes
   found_system=yes
          ],[
          ])
   AC_LANG_POP([C++])



   dnl if we found no boost with system layout we search for boost libraries
   dnl built and installed without the --layout=system option or for a staged(not installed) version
   if test "x$succeeded" != "xyes"; then
      _version=0
      if test "$ac_boost_path" != ""; then
#          BOOST_LDFLAGS="-L$ac_boost_path/lib"
         if test "${build_cpu}" = "x86_64"; then
               BOOST_LDFLAGS="-L$ac_boost_path/lib64"
         else
               BOOST_LDFLAGS="-L$ac_boost_path/lib"
         fi
         if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
            for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
               _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
               V_CHECK=`expr $_version_tmp \> $_version`
               if test "$V_CHECK" = "1" ; then
                  _version=$_version_tmp
               fi
               VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
               BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
            done
         fi
      else
         for ac_boost_path in $INSROOT /usr /usr/local /opt ; do
            if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
               for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
                  _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
                  V_CHECK=`expr $_version_tmp \> $_version`
                  if test "$V_CHECK" = "1" ; then
                     _version=$_version_tmp
                                 best_path=$ac_boost_path
                  fi
               done
            fi
         done

         VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
         BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
##         BOOST_LDFLAGS="-L$best_path/lib"
         if test "${build_cpu}" = "x86_64"; then
               BOOST_LDFLAGS="-L$best_path/lib64"
         else
               BOOST_LDFLAGS="-L$best_path/lib"
         fi
         if test "x$BOOST_ROOT" != "x"; then
            if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/lib" && test -r "$BOOST_ROOT/stage/lib"; then
               version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
               stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
                    stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
               V_CHECK=`expr $stage_version_shorten \>\= $_version`
                    if test "$V_CHECK" = "1" ; then
                  AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
                  BOOST_CPPFLAGS="-I$BOOST_ROOT"
##                  BOOST_LDFLAGS="-L$BOOST_ROOT/stage/lib"
                  if test "${build_cpu}" = "x86_64"; then
                      BOOST_LDFLAGS="-L$BOOST_ROOT/stage/lib64"
                  else
                      BOOST_LDFLAGS="-L$BOOST_ROOT/stage/lib"
                  fi
               fi
            fi
         fi
      fi

      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS

      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS

      AC_LANG_PUSH(C++)
           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
      @%:@include <boost/version.hpp>
      ]], [[
      #if BOOST_VERSION >= $WANT_BOOST_VERSION
      // Everything is okay
      #else
      #  error Boost version is too old
      #endif
      ]])],[
           AC_MSG_RESULT(yes)
      succeeded=yes
      found_system=yes
             ],[
             ])
      AC_LANG_POP([C++])
   fi

   if test "$succeeded" != "yes" ; then
      if test "$_version" = "0" ; then
         AC_MSG_ERROR([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option.  If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
      else
         AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
      fi
   else
      AC_SUBST(BOOST_CPPFLAGS)
      AC_SUBST(BOOST_LDFLAGS)
      AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
   fi

        CPPFLAGS="$CPPFLAGS_SAVED"
          LDFLAGS="$LDFLAGS_SAVED"
fi

])
##### http://autoconf-archive.cryp.to/ax_boost_date_time.html
#
# SYNOPSIS
#
#   AX_BOOST_DATE_TIME
#
# DESCRIPTION
#
#   Test for Date_Time library from the Boost C++ libraries. The macro
#   requires a preceding call to AX_BOOST_BASE. Further documentation
#   is available at <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_DATE_TIME_LIB)
#
#   And sets:
#
#     HAVE_BOOST_DATE_TIME
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#   Copyright (c) 2006 Michael Tindal <mtindal@paradoxpoint.com>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_DATE_TIME],
[
   AC_ARG_WITH([boost-date-time],
   AS_HELP_STRING([--with-boost-date-time@<:@=special-lib@:>@],
                   [use the Date_Time library from boost - it is possible to specify a certain library for the linker
                        e.g. --with-boost-date-time=boost_date_time-gcc-mt-d-1_33_1 ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_date_time_lib=""
        else
          want_boost="yes"
           ax_boost_user_date_time_lib="$withval"
      fi
        ],
                [
                want_boost="yes"
                ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS

        AC_CACHE_CHECK(whether the Boost::Date_Time library is available,
                  ax_cv_boost_date_time,
        [AC_LANG_PUSH([C++])
       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/date_time/gregorian/gregorian_types.hpp>]],
                                   [[using namespace boost::gregorian; date d(2002,Jan,10);
                                     return 0;
                                   ]])],
         [ax_cv_boost_date_time=yes], [ax_cv_boost_date_time=no])
         AC_LANG_POP([C++])
      ])
      if test "x$ax_cv_boost_date_time" = "xyes"; then
         AC_DEFINE(HAVE_BOOST_DATE_TIME,,[define if the Boost::Date_Time library is available])
         BN=boost_date_time
            if test "x$ax_boost_user_date_time_lib" = "x"; then
            for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                               lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                               $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
               AC_CHECK_LIB($ax_lib, main, [BOOST_DATE_TIME_LIB="-l$ax_lib" AC_SUBST(BOOST_DATE_TIME_LIB) link_date_time="yes" break],
                               [link_date_time="no"])
              done
            else
               for ax_lib in $ax_boost_user_date_time_lib $BN-$ax_boost_user_date_time_lib; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_DATE_TIME_LIB="-l$ax_lib" AC_SUBST(BOOST_DATE_TIME_LIB) link_date_time="yes" break],
                                   [link_date_time="no"])
                  done

            fi
         if test "x$link_date_time" = "xno"; then
            AC_MSG_ERROR(Could not link against $ax_lib !)
         fi
      fi

      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])
##### http://autoconf-archive.cryp.to/ax_boost_filesystem.html
#
# SYNOPSIS
#
#   AX_BOOST_FILESYSTEM
#
# DESCRIPTION
#
#   Test for Filesystem library from the Boost C++ libraries. The macro
#   requires a preceding call to AX_BOOST_BASE. Further documentation
#   is available at <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_FILESYSTEM_LIB)
#
#   And sets:
#
#     HAVE_BOOST_FILESYSTEM
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#   Copyright (c) 2006 Michael Tindal <mtindal@paradoxpoint.com>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_FILESYSTEM],
[
   AC_ARG_WITH([boost-filesystem],
   AS_HELP_STRING([--with-boost-filesystem@<:@=special-lib@:>@],
                   [use the Filesystem library from boost - it is possible to specify a certain library for the linker
                        e.g. --with-boost-filesystem=boost_filesystem-gcc-mt ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_filesystem_lib=""
        else
          want_boost="yes"
           ax_boost_user_filesystem_lib="$withval"
      fi
        ],
                [ want_boost="yes" ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS

       AC_MSG_NOTICE(Checking $LDFLAGS)
       AC_MSG_NOTICE(Checking $CPPFLAGS)

        AC_CACHE_CHECK(whether the Boost::Filesystem library is available,
                  ax_cv_boost_filesystem,
        [AC_LANG_PUSH([C++])
         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/filesystem/path.hpp>]],
                                   [[using namespace boost::filesystem;
                                   path my_path( "foo/bar/data.txt" );
                                   return 0;]])],
                               [ax_cv_boost_filesystem=yes], [ax_cv_boost_filesystem=no])
         AC_LANG_POP([C++])
      ])

      if test "x$ax_cv_boost_filesystem" = "xyes"; then
     AC_MSG_NOTICE(Checking!! $BOOST_CPPFLAGS)
         AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available])
         BN=boost_filesystem
            if test "x$ax_boost_user_filesystem_lib" = "x"; then
             for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                              lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                              $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
                AC_CHECK_LIB($ax_lib, main,
                                 [BOOST_FILESYSTEM_LIB="-l$ax_lib" AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes" break],
                                 [link_filesystem="no"])
              done
            else
               for ax_lib in $ax_boost_user_filesystem_lib $BN-$ax_boost_user_filesystem_lib; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_FILESYSTEM_LIB="-l$ax_lib" AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes" break],
                                   [link_filesystem="no"])
                  done

            fi
         if test "x$link_filesystem" = "xno"; then
            AC_MSG_ERROR(Could not link against $ax_lib !)
         fi
      fi
     AC_MSG_NOTICE(Checking $BOOST_CPPFLAGS)

      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])
##### http://autoconf-archive.cryp.to/ax_boost_iostreams.html
#
# SYNOPSIS
#
#   AX_BOOST_IOSTREAMS
#
# DESCRIPTION
#
#   Test for IOStreams library from the Boost C++ libraries. The macro
#   requires a preceding call to AX_BOOST_BASE. Further documentation
#   is available at <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_IOSTREAMS_LIB)
#
#   And sets:
#
#     HAVE_BOOST_IOSTREAMS
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_IOSTREAMS],
[
   AC_ARG_WITH([boost-iostreams],
   AS_HELP_STRING([--with-boost-iostreams@<:@=special-lib@:>@],
                   [use the IOStreams library from boost - it is possible to specify a certain library for the linker
                        e.g. --with-boost-iostreams=boost_iostreams-gcc-mt-d-1_33_1 ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_iostreams_lib=""
        else
          want_boost="yes"
           ax_boost_user_iostreams_lib="$withval"
      fi
        ],
                [
                want_boost="yes"
                case "${host}" in
                  *-mingw32*)
                     ac_boost_path_default="/usr/i686-pc-mingw32/sys-root/mingw/"
                     ;;
                  *)
                     ac_boost_path_default="$INSROOT /usr /usr/local /opt /opt/local"
                     ;;
                esac
                ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS

        AC_CACHE_CHECK(whether the Boost::IOStreams library is available,
                  ax_cv_boost_iostreams,
        [AC_LANG_PUSH([C++])
       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/iostreams/filtering_stream.hpp>
                                  @%:@include <boost/range/iterator_range.hpp>
                                 ]],
                                  [[std::string  input = "Hello World!";
                                namespace io = boost::iostreams;
                            io::filtering_istream  in(boost::make_iterator_range(input));
                            return 0;
                                   ]])],
                             [ax_cv_boost_iostreams=yes], [ax_cv_boost_iostreams=no])
         AC_LANG_POP([C++])
      ])
      if test "x$ax_cv_boost_iostreams" = "xyes"; then
         AC_DEFINE(HAVE_BOOST_IOSTREAMS,,[define if the Boost::IOStreams library is available])
         BN=boost_iostreams
            if test "x$ax_boost_user_iostreams_lib" = "x"; then
            for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                              lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                              $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
                AC_CHECK_LIB($ax_lib, main, [BOOST_IOSTREAMS_LIB="-l$ax_lib" AC_SUBST(BOOST_IOSTREAMS_LIB) link_thread="yes" break],
                                 [link_thread="no"])
              done
            else
               for ax_lib in $ax_boost_user_iostreams_lib $BN-$ax_boost_user_iostreams_lib; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_IOSTREAMS_LIB="-l$ax_lib" AC_SUBST(BOOST_IOSTREAMS_LIB) link_iostreams="yes" break],
                                   [link_iostreams="no"])
                  done

            fi
         if test "x$link_iostreams" = "xno"; then
            AC_MSG_ERROR(Could not link against $ax_lib !)
         fi
      fi

      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])
##### http://autoconf-archive.cryp.to/ax_boost_program_options.html
#
# SYNOPSIS
#
#   AX_BOOST_PROGRAM_OPTIONS
#
# DESCRIPTION
#
#   Test for program options library from the Boost C++ libraries. The
#   macro requires a preceding call to AX_BOOST_BASE. Further
#   documentation is available at
#   <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_PROGRAM_OPTIONS_LIB)
#
#   And sets:
#
#     HAVE_BOOST_PROGRAM_OPTIONS
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_PROGRAM_OPTIONS],
[
   AC_ARG_WITH([boost-program-options],
      AS_HELP_STRING([--with-boost-program-options@<:@=special-lib@:>@],
                       [use the program options library from boost - it is possible to specify a certain library for the linker
                        e.g. --with-boost-program-options=boost_program_options-gcc-mt-1_33_1 ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_program_options_lib=""
        else
          want_boost="yes"
           ax_boost_user_program_options_lib="$withval"
      fi
        ],
                [
                want_boost="yes"
                case "${host}" in
                  *-mingw32*)
                     ac_boost_path_default="/usr/i686-pc-mingw32/sys-root/mingw/"
                     ;;
                  *)
                     ac_boost_path_default="$INSROOT /usr /usr/local /opt /opt/local"
                     ;;
                esac
                ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
       export want_boost
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS
      AC_CACHE_CHECK([whether the Boost::Program_Options library is available],
                  ax_cv_boost_program_options,
                  [AC_LANG_PUSH(C++)
                       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/program_options.hpp>
                                                          ]],
                                  [[boost::program_options::options_description generic("Generic options");
                                   return 0;]])],
                           [ax_cv_boost_program_options=yes], [ax_cv_boost_program_options=no])
                           AC_LANG_POP([C++])
      ])
      if test "$ax_cv_boost_program_options" = yes; then
            AC_DEFINE(HAVE_BOOST_PROGRAM_OPTIONS,,[define if the Boost::PROGRAM_OPTIONS library is available])
              BN=boost_program_options
                if test "x$ax_boost_user_program_options_lib" = "x"; then
              for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                                lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                                $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_PROGRAM_OPTIONS_LIB="-l$ax_lib" AC_SUBST(BOOST_PROGRAM_OPTIONS_LIB) link_program_options="yes" break],
                                   [link_program_options="no"])
                done
                else
                  for ax_lib in $ax_boost_user_program_options_lib $BN-$ax_boost_user_program_options_lib; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_PROGRAM_OPTIONS_LIB="-l$ax_lib" AC_SUBST(BOOST_PROGRAM_OPTIONS_LIB) link_program_options="yes" break],
                                   [link_program_options="no"])
                  done
                fi
            if test "x$link_program_options" = "xno"; then
               AC_MSG_ERROR([Could not link against [$ax_lib] !])
            fi
      fi
      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])
##### http://autoconf-archive.cryp.to/ax_boost_python.html
#
# SYNOPSIS
#
#   AX_BOOST_PYTHON
#
# DESCRIPTION
#
#   This macro checks to see if the Boost.Python library is installed.
#   It also attempts to guess the currect library name using several
#   attempts. It tries to build the library name using a user supplied
#   name or suffix and then just the raw library.
#
#   If the library is found, HAVE_BOOST_PYTHON is defined and
#   BOOST_PYTHON_LIB is set to the name of the library.
#
#   This macro calls AC_SUBST(BOOST_PYTHON_LIB).
#
#   In order to ensure that the Python headers are specified on the
#   include path, this macro requires AX_PYTHON to be called.
#
# LAST MODIFICATION
#
#   2005-05-20
#
# COPYLEFT
#
#   Copyright (c) 2005 Michael Tindal <mtindal@paradoxpoint.com>
#
#   This program is free software; you can redistribute it and/or
#   modify it under the terms of the GNU General Public License as
#   published by the Free Software Foundation; either version 2 of the
#   License, or (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful, but
#   WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#   General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#   02111-1307, USA.
#
#   As a special exception, the respective Autoconf Macro's copyright
#   owner gives unlimited permission to copy, distribute and modify the
#   configure scripts that are the output of Autoconf when processing
#   the Macro. You need not follow the terms of the GNU General Public
#   License when using or distributing such scripts, even though
#   portions of the text of the Macro appear in them. The GNU General
#   Public License (GPL) does govern all other use of the material that
#   constitutes the Autoconf Macro.
#
#   This special exception to the GPL applies to versions of the
#   Autoconf Macro released by the Autoconf Macro Archive. When you
#   make and distribute a modified version of the Autoconf Macro, you
#   may extend this special exception to the GPL to apply to your
#   modified version as well.



AC_DEFUN([AX_BOOST_PYTHON],
[AC_REQUIRE([AX_PYTHON])dnl
AC_CACHE_CHECK(whether the Boost::Python library is available,
ac_cv_boost_python,
[AC_LANG_SAVE
 AC_LANG_CPLUSPLUS
 CPPFLAGS_SAVE=$CPPFLAGS
 if test x$PYTHON_INCLUDE_DIR != x; then
   CPPFLAGS=$PYTHON_INCLUDE_DIR $CPPFLAGS
 fi
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #include <boost/python/module.hpp>
 using namespace boost::python;
 BOOST_PYTHON_MODULE(test) { throw "Boost::Python test."; }]],
             [[return 0;]])],
              [ac_cv_boost_python=yes], [ac_cv_boost_python=no])
 AC_LANG_RESTORE
 CPPFLAGS=$CPPFLAGS_SAVE
 LIBS=$LIBS_SAVE
])
if test "$ac_cv_boost_python" = "yes"; then
  AC_DEFINE(HAVE_BOOST_PYTHON,,[define if the Boost::Python library is available])
  ax_python_lib=boost_python
  AC_ARG_WITH([boost-python],AS_HELP_STRING([--with-boost-python],[specify the boost python library or suffix to use]),
  [if test "x$with_boost_python" != "xno"; then
     ax_python_lib=$with_boost_python
     ax_boost_python_lib=boost_python-$with_boost_python
   fi])
  LIBS_SAVED="$LIBS"
  if test x$PYTHON_LIB != x; then
      LIBS="$LIBS $PYTHON_LIB"
  fi
  for ax_lib in $ax_python_lib $ax_boost_python_lib boost_python; do
    AC_CHECK_LIB($ax_lib, main, [BOOST_PYTHON_LIB=-l$ax_lib break])
  done
  AC_SUBST(BOOST_PYTHON_LIB)
fi
])dnl
##### http://autoconf-archive.cryp.to/ax_boost_regex.html
#
# SYNOPSIS
#
#   AX_BOOST_REGEX
#
# DESCRIPTION
#
#   Test for Regex library from the Boost C++ libraries. The macro
#   requires a preceding call to AX_BOOST_BASE. Further documentation
#   is available at <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_REGEX_LIB)
#
#   And sets:
#
#     HAVE_BOOST_REGEX
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#   Copyright (c) 2006 Michael Tindal <mtindal@paradoxpoint.com>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_REGEX],
[
   AC_ARG_WITH([boost-regex],
   AS_HELP_STRING([--with-boost-regex@<:@=special-lib@:>@],
                   [use the Regex library from boost - it is possible to specify a certain library for the linker
                        e.g. --with-boost-regex=boost_regex-gcc-mt-d-1_33_1 ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_regex_lib=""
        else
          want_boost="yes"
           ax_boost_user_regex_lib="$withval"
      fi
        ],
                [
                want_boost="yes"
                case "${host}" in
                  *-mingw32*)
                     ac_boost_path_default="/usr/i686-pc-mingw32/sys-root/mingw/"
                     ;;
                  *)
                     ac_boost_path_default="$INSROOT /usr /usr/local /opt /opt/local"
                     ;;
                esac
                ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS
        AC_CACHE_CHECK(whether the Boost::Regex library is available,
                  ax_cv_boost_regex,
        [AC_LANG_PUSH([C++])
          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/regex.hpp>
                                    ]],
                                   [[boost::regex r(); return 0;]])],
                   [ax_cv_boost_regex=yes], [ax_cv_boost_regex=no])
         AC_LANG_POP([C++])
      ])
      if test "x$ax_cv_boost_regex" = "xyes"; then
         AC_DEFINE(HAVE_BOOST_REGEX,,[define if the Boost::Regex library is available])
         BN=boost_regex
            if test "x$ax_boost_user_regex_lib" = "x"; then
            for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                              lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                              $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
                AC_CHECK_LIB($ax_lib, main, [BOOST_REGEX_LIB="-l$ax_lib" AC_SUBST(BOOST_REGEX_LIB) link_regex="yes" break],
                                 [link_regex="no"])
              done
            else
               for ax_lib in $ax_boost_user_regex_lib $BN-$ax_boost_user_regex_lib; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_REGEX_LIB="-l$ax_lib" AC_SUBST(BOOST_REGEX_LIB) link_regex="yes" break],
                                   [link_regex="no"])
               done
            fi
         if test "x$link_regex" = "xno"; then
            AC_MSG_ERROR(Could not link against $ax_lib !)
                         else
                                 AC_MSG_NOTICE(Linked against $ax_lib !) 
         fi
      fi
      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])
##### http://autoconf-archive.cryp.to/ax_boost_serialization.html
#
# SYNOPSIS
#
#   AX_BOOST_SERIALIZATION
#
# DESCRIPTION
#
#   Test for Serialization library from the Boost C++ libraries. The
#   macro requires a preceding call to AX_BOOST_BASE. Further
#   documentation is available at
#   <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_SERIALIZATION_LIB)
#
#   And sets:
#
#     HAVE_BOOST_SERIALIZATION
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_SERIALIZATION],
[
   AC_ARG_WITH([boost-serialization],
   AS_HELP_STRING([--with-boost-serialization@<:@=special-lib@:>@],
                   [use the Serialization library from boost - it is possible to specify a certain library for the linker
                        e.g. --with-boost-serialization=boost_serialization-gcc-mt-d-1_33_1 ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_serialization_lib=""
        else
          want_boost="yes"
           ax_boost_user_serialization_lib="$withval"
      fi
        ],
                [
                want_boost="yes"
                case "${host}" in
                  *-mingw32*)
                     ac_boost_path_default="/usr/i686-pc-mingw32/sys-root/mingw/"
                     ;;
                  *)
                     ac_boost_path_default="$INSROOT /usr /usr/local /opt /opt/local"
                     ;;
                esac
                ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS

        AC_CACHE_CHECK(whether the Boost::Serialization library is available,
                  ax_cv_boost_serialization,
        [AC_LANG_PUSH([C++])
          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <fstream>
                                     @%:@include <boost/archive/text_oarchive.hpp>
                                                 @%:@include <boost/archive/text_iarchive.hpp>
                                    ]],
                                   [[std::ofstream ofs("filename");
                           boost::archive::text_oarchive oa(ofs);
                            return 0;
                                   ]])],
                   [ax_cv_boost_serialization=yes], [ax_cv_boost_serialization=no])
         AC_LANG_POP([C++])
      ])
      if test "x$ax_cv_boost_serialization" = "xyes"; then
         AC_DEFINE(HAVE_BOOST_SERIALIZATION,,[define if the Boost::Serialization library is available])
         BN=boost_serialization
            if test "x$ax_boost_user_serialization_lib" = "x"; then
            for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                              lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                              $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
                AC_CHECK_LIB($ax_lib, main,
                                 [BOOST_SERIALIZATION_LIB="-l$ax_lib" AC_SUBST(BOOST_SERIALIZATION_LIB) link_serialization="yes" break],
                                 [link_serialization="no"])
              done
            else
               for ax_lib in $ax_boost_user_serialization_lib $BN-$ax_boost_user_serialization_lib; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_SERIALIZATION_LIB="-l$ax_lib" AC_SUBST(BOOST_SERIALIZATION_LIB) link_serialization="yes" break],
                                   [link_serialization="no"])
                  done

            fi
         if test "x$link_serialization" = "xno"; then
            AC_MSG_ERROR(Could not link against $ax_lib !)
         fi
      fi

      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])
##### http://autoconf-archive.cryp.to/ax_boost_signals.html
#
# SYNOPSIS
#
#   AX_BOOST_SIGNALS
#
# DESCRIPTION
#
#   Test for Signals library from the Boost C++ libraries. The macro
#   requires a preceding call to AX_BOOST_BASE. Further documentation
#   is available at <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_SIGNALS_LIB)
#
#   And sets:
#
#     HAVE_BOOST_SIGNALS
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#   Copyright (c) 2006 Michael Tindal <mtindal@paradoxpoint.com>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_SIGNALS],
[
   AC_ARG_WITH([boost-signals],
   AS_HELP_STRING([--with-boost-signals@<:@=special-lib@:>@],
                   [use the Signals library from boost - it is possible to specify a certain library for the linker
                        e.g. --with-boost-signals=boost_signals-gcc-mt-d ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_signals_lib=""
        else
          want_boost="yes"
           ax_boost_user_signals_lib="$withval"
      fi
        ],
                [
                want_boost="yes"
                case "${host}" in
                  *-mingw32*)
                     ac_boost_path_default="/usr/i686-pc-mingw32/sys-root/mingw/"
                     ;;
                  *)
                     ac_boost_path_default="$INSROOT /usr /usr/local /opt /opt/local"
                     ;;
                esac
                ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS

        AC_CACHE_CHECK(whether the Boost::Signals library is available,
                  ax_cv_boost_signals,
        [AC_LANG_PUSH([C++])
       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/signal.hpp>
                                 ]],
                                  [[boost::signal<void ()> sig;
                                    return 0;
                                  ]])],
                           [ax_cv_boost_signals=yes], [ax_cv_boost_signals=no])
         AC_LANG_POP([C++])
      ])
      if test "x$ax_cv_boost_signals" = "xyes"; then
         AC_DEFINE(HAVE_BOOST_SIGNALS,,[define if the Boost::Signals library is available])
         BN=boost_signals
            if test "x$ax_boost_user_signals_lib" = "x"; then
            for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                              lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                              $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
                AC_CHECK_LIB($ax_lib, main, [BOOST_SIGNALS_LIB="-l$ax_lib" AC_SUBST(BOOST_SIGNALS_LIB) link_signals="yes" break],
                                 [link_signals="no"])
              done
            else
               for ax_lib in $ax_boost_user_signals_lib $BN-$ax_boost_user_signals_lib; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_SIGNALS_LIB="-l$ax_lib" AC_SUBST(BOOST_SIGNALS_LIB) link_signals="yes" break],
                                   [link_signals="no"])
                  done

            fi
         if test "x$link_signals" = "xno"; then
            AC_MSG_ERROR(Could not link against $ax_lib !)
         fi
      fi

      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])
##### http://autoconf-archive.cryp.to/ax_boost_thread.html
#
# SYNOPSIS
#
#   AX_BOOST_THREAD
#
# DESCRIPTION
#
#   Test for Thread library from the Boost C++ libraries. The macro
#   requires a preceding call to AX_BOOST_BASE. Further documentation
#   is available at <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_THREAD_LIB)
#
#   And sets:
#
#     HAVE_BOOST_THREAD
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#   Copyright (c) 2006 Michael Tindal <mtindal@paradoxpoint.com>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_THREAD],
[
   AC_ARG_WITH([boost-thread],
   AS_HELP_STRING([--with-boost-thread@<:@=special-lib@:>@],
                   [use the Thread library from boost - it is possible to specify a certain library for the linker
                        e.g. --with-boost-thread=boost_thread-gcc-mt ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_thread_lib=""
        else
          want_boost="yes"
           ax_boost_user_thread_lib="$withval"
      fi
        ],
                [
                want_boost="yes"
                case "${host}" in
                  *-mingw32*)
                     ac_boost_path_default="/usr/i686-pc-mingw32/sys-root/mingw/"
                     ;;
                  *)
                     ac_boost_path_default="$INSROOT /usr /usr/local /opt /opt/local"
                     ;;
                esac
                ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS

        AC_CACHE_CHECK(whether the Boost::Thread library is available,
                  ax_cv_boost_thread,
        [AC_LANG_PUSH([C++])
          CXXFLAGS_SAVE=$CXXFLAGS

          if test "x$host_os" = "xsolaris" ; then
               CXXFLAGS="-pthreads $CXXFLAGS"
          elif test "x$host_os" = "xming32" ; then
             CXXFLAGS="-mthreads $CXXFLAGS"
          elif test "x$host_os" = "xmingw32" ; then
             CXXFLAGS="-mthreads $CXXFLAGS"
          elif test "x$host_os" = "xlinux-gnu" ; then
            CXXFLAGS="-pthread $CXXFLAGS"
          fi
          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/thread/thread.hpp>]],
                                   [[boost::thread_group thrds;
                                   return 0;]])],
                   [ax_cv_boost_thread=yes], [ax_cv_boost_thread=no])
          CXXFLAGS=$CXXFLAGS_SAVE
             AC_LANG_POP([C++])
      ])
      if test "x$ax_cv_boost_thread" = "xyes"; then
           if test "x$host_os" = "xsolaris" ; then
           BOOST_CPPFLAGS="-pthreads $BOOST_CPPFLAGS"
         elif test "x$host_os" = "xming32" ; then
           BOOST_CPPFLAGS="-mthreads $BOOST_CPPFLAGS"
         elif test "x$host_os" = "xmingw32" ; then
           BOOST_CPPFLAGS="-mthreads $BOOST_CPPFLAGS"
         elif test "x$host_os" = "xlinux-gnu" ; then
           BOOST_CPPFLAGS="-pthread $BOOST_CPPFLAGS"
         fi

         AC_SUBST(BOOST_CPPFLAGS)

         AC_DEFINE(HAVE_BOOST_THREAD,,[define if the Boost::Date_Time library is available])
         BN=boost_thread

            if test "x$ax_boost_user_thread_lib" = "x"; then
            for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                              lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                              $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
                AC_CHECK_LIB($ax_lib, main, [BOOST_THREAD_LIB="-l$ax_lib" AC_SUBST(BOOST_THREAD_LIB) link_thread="yes" break],
                                 [link_thread="no"])
              done
            else
               for ax_lib in $ax_boost_user_thread_lib $BN-$ax_boost_user_thread_lib; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_THREAD_LIB="-l$ax_lib" AC_SUBST(BOOST_THREAD_LIB) link_thread="yes" break],
                                   [link_thread="no"])
                  done

            fi
         if test "x$link_thread" = "xno"; then
            AC_MSG_ERROR(Could not link against $ax_lib !)
         fi
      fi

      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])
##### http://autoconf-archive.cryp.to/ax_boost_unit_test_framework.html
#
# SYNOPSIS
#
#   AX_BOOST_UNIT_TEST_FRAMEWORK
#
# DESCRIPTION
#
#   Test for Unit_Test_Framework library from the Boost C++ libraries.
#   The macro requires a preceding call to AX_BOOST_BASE. Further
#   documentation is available at
#   <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB)
#
#   And sets:
#
#     HAVE_BOOST_UNIT_TEST_FRAMEWORK
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK],
[
   AC_ARG_WITH([boost-unit-test-framework],
   AS_HELP_STRING([--with-boost-unit-test-framework@<:@=special-lib@:>@],
                   [use the Unit_Test_Framework library from boost - it is possible to specify a certain library for the linker
                        e.g. --with-boost-unit-test-framework=boost_unit_test_framework-gcc ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_unit_test_framework_lib=""
        else
          want_boost="yes"
           ax_boost_user_unit_test_framework_lib="$withval"
      fi
        ],
                [
                want_boost="yes"
                case "${host}" in
                  *-mingw32*)
                     ac_boost_path_default="/usr/i686-pc-mingw32/sys-root/mingw/"
                     ;;
                  *)
                     ac_boost_path_default="$INSROOT /usr /usr/local /opt /opt/local"
                     ;;
                esac
                ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS

        AC_CACHE_CHECK(whether the Boost::Unit_Test_Framework library is available,
                  ax_cv_boost_unit_test_framework,
        [AC_LANG_PUSH([C++])
          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/test/unit_test.hpp>]],
                                    [[using boost::unit_test::test_suite;
                                test_suite* test= BOOST_TEST_SUITE( "Unit test example 1" ); return 0;]])],
                   [ax_cv_boost_unit_test_framework=yes], [ax_cv_boost_unit_test_framework=no])
         AC_LANG_POP([C++])
      ])
      if test "x$ax_cv_boost_unit_test_framework" = "xyes"; then
         AC_DEFINE(HAVE_BOOST_UNIT_TEST_FRAMEWORK,,[define if the Boost::Unit_Test_Framework library is available])
         BN=boost_unit_test_framework
            if test "x$ax_boost_user_unit_test_framework_lib" = "x"; then
               saved_ldflags="${LDFLAGS}"
             for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                             lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                             $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
                   LDFLAGS="${LDFLAGS} -l$ax_lib"
                AC_CACHE_CHECK(Boost::UnitTestFramework library linkage,
                               ax_cv_boost_unit_test_framework_link,
                    [AC_LANG_PUSH([C++])
                   AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@define BOOST_TEST_NO_MAIN 1
                                                     @%:@include <boost/test/included/unit_test_framework.hpp>
                                                     using namespace boost::unit_test;
                                                     test_suite* init_unit_test_suite() {
                                                        test_suite* test = BOOST_TEST_SUITE( "Unit test example 1" );
                                                        return test;
                                                     }
                                                   ]],
                                 [[init_unit_test_suite();]])],
                                 link_unit_test_framework="yes",link_unit_test_framework="no")
               AC_LANG_POP([C++])
                  ])
                  LDFLAGS="${saved_ldflags}"

               if test "x$link_unit_test_framework" = "xyes"; then
                      BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"
                      AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB)
                 break
              fi
                done
            else
               saved_ldflags="${LDFLAGS}"
               for ax_lib in $ax_boost_user_unit_test_framework_lib $BN-$ax_boost_user_unit_test_framework_lib; do
                   LDFLAGS="${LDFLAGS} -l$ax_lib"
                          AC_CACHE_CHECK(Boost::UnitTestFramework library linkage,
                               ax_cv_boost_unit_test_framework_link,
                    [AC_LANG_PUSH([C++])
                           AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/test/unit_test.hpp>
                                                        using boost::unit_test::test_suite;
                                                        test_suite* init_unit_test_suite( int argc, char * argv[] ) {
                                                        test_suite* test= BOOST_TEST_SUITE( "Unit test example 1" );
                                                        return test;
                                                        }
                                                   ]],
                                 [[ return 0;]])],
                                 link_unit_test_framework="yes",link_unit_test_framework="no")
               AC_LANG_POP([C++])
                  ])
                  LDFLAGS="${saved_ldflags}"
               if test "x$link_unit_test_framework" = "xyes"; then
                      BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"
                      AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB)
                 break
              fi
               done
            fi
         if test "x$link_unit_test_framework" = "xno"; then
            AC_MSG_ERROR(Could not link against $ax_lib !)
         fi
      fi

      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])
##### http://autoconf-archive.cryp.to/ax_boost_wserialization.html
#
# SYNOPSIS
#
#   AX_BOOST_WSERIALIZATION
#
# DESCRIPTION
#
#   Test for Serialization library from the Boost C++ libraries. The
#   macro requires a preceding call to AX_BOOST_BASE. Further
#   documentation is available at
#   <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_WSERIALIZATION_LIB)
#
#   And sets:
#
#     HAVE_BOOST_WSERIALIZATION
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_WSERIALIZATION],
[
   AC_ARG_WITH([boost-wserialization],
   AS_HELP_STRING([--with-boost-wserialization@<:@=special-lib@:>@],
                   [use the WSerialization library from boost -  it is possible to specify a certain library for the linker
                        e.g. --with-boost-wserialization=boost_wserialization-gcc-mt-d-1_33_1 ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_wserialization_lib=""
        else
          want_boost="yes"
           ax_boost_user_wserialization_lib="$withval"
      fi
        ],
                [
                want_boost="yes"
                case "${host}" in
                  *-mingw32*)
                     ac_boost_path_default="/usr/i686-pc-mingw32/sys-root/mingw/"
                     ;;
                  *)
                     ac_boost_path_default="$INSROOT /usr /usr/local /opt /opt/local"
                     ;;
                esac
                ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS

        AC_CACHE_CHECK(whether the Boost::WSerialization library is available,
                  ax_cv_boost_wserialization,
        [AC_LANG_PUSH([C++])
          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <fstream>
                                     @%:@include <boost/archive/text_oarchive.hpp>
                                                 @%:@include <boost/archive/text_iarchive.hpp>
                                    ]],
                                   [[std::ofstream ofs("filename");
                           boost::archive::text_oarchive oa(ofs);
                            return 0;
                                   ]])],
                   [ax_cv_boost_wserialization=yes], [ax_cv_boost_wserialization=no])
         AC_LANG_POP([C++])
      ])
      if test "x$ax_cv_boost_wserialization" = "xyes"; then
         AC_DEFINE(HAVE_BOOST_WSERIALIZATION,,[define if the Boost::WSerialization library is available])
         BN=boost_wserialization
            if test "x$ax_boost_user_wserialization_lib" = "x"; then
            for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                              lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                              $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
                AC_CHECK_LIB($ax_lib, main,
                                 [BOOST_WSERIALIZATION_LIB="-l$ax_lib" AC_SUBST(BOOST_WSERIALIZATION_LIB) link_wserialization="yes" break],
                                 [link_wserialization="no"])
              done
            else
               for ax_lib in $ax_boost_user_wserialization_lib $BN-$ax_boost_user_wserialization_lib; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_WSERIALIZATION_LIB="-l$ax_lib" AC_SUBST(BOOST_WSERIALIZATION_LIB) link_wserialization="yes" break],
                                   [link_wserialization="no"])
                  done

            fi
         if test "x$link_wserialization" = "xno"; then
            AC_MSG_ERROR(Could not link against $ax_lib !)
         fi
      fi

      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])


AC_DEFUN([AX_BOOST_XPRESSIVE],
[
CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
    AC_CACHE_CHECK(Boost::xpressive header,
             ax_cv_boost_xpressive,    [AC_LANG_PUSH([C++])
       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/xpressive/xpressive.hpp>]],[[]])],
                   [ax_cv_boost_xpressive=yes], [ax_cv_boost_xpressive=no])
         AC_LANG_POP([C++])
    ])

    if test "ax_cv_boost_xpressive" = "xyes"; then
      AC_DEFINE(HAVE_BOOST_XPRESSIVE,,[define if the Boost::xpressive is available])
    fi

CPPFLAGS="$CPPFLAGS_SAVED"
])

AC_DEFUN([AX_BOOST_CIRCULARBUFFER],
[
CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
    AC_CACHE_CHECK(Boost::circular_buffer header,
             ax_cv_boost_circular_buffer,    [AC_LANG_PUSH([C++])
       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/circular_buffer.hpp>]],[[]])],
                   [ax_cv_boost_circular_buffer=yes], [ax_cv_boost_circular_buffer=no])
         AC_LANG_POP([C++])
    ])

    if test "x$ax_cv_boost_circular_buffer" = "xyes"; then
      AC_DEFINE(HAVE_BOOST_CIRCULAR_BUFFER,,[define if the Boost::circular_buffer is available])
    fi
    AM_CONDITIONAL(HAVE_BOOST_CIRCULAR_BUFFER, test "x$ax_cv_boost_circular_buffer" = "xyes")

CPPFLAGS="$CPPFLAGS_SAVED"
])

##### http://autoconf-archive.cryp.to/ax_boost_system.html
#
# SYNOPSIS
#
#   AX_BOOST_SYSTEM
#
# DESCRIPTION
#
#   Test for System library from the Boost C++ libraries. The macro
#   requires a preceding call to AX_BOOST_BASE. Further documentation
#   is available at <http://randspringer.de/boost/index.html>.
#
#   This macro calls:
#
#     AC_SUBST(BOOST_SYSTEM_LIB)
#
#   And sets:
#
#     HAVE_BOOST_SYSTEM
#
# LAST MODIFICATION
#
#   2006-06-15
#
# COPYLEFT
#
#   Copyright (c) 2006 Thomas Porschberg <thomas@randspringer.de>
#   Copyright (c) 2006 Michael Tindal <mtindal@paradoxpoint.com>
#
#   Copying and distribution of this file, with or without
#   modification, are permitted in any medium without royalty provided
#   the copyright notice and this notice are preserved.

AC_DEFUN([AX_BOOST_SYSTEM],
[
   AC_ARG_WITH([boost-system],
   AS_HELP_STRING([--with-boost-system@<:@=special-lib@:>@],
                   [use the System library from boost - it is possible to specify a certain library for the linker
                        e.g. --with-boost-system=boost_system-gcc-mt ]),
        [
        if test "$withval" = "no"; then
         want_boost="no"
        elif test "$withval" = "yes"; then
            want_boost="yes"
            ax_boost_user_system_lib=""
        else
          want_boost="yes"
           ax_boost_user_system_lib="$withval"
      fi
        ],
                [
                want_boost="yes"
                case "${host}" in
                  *-mingw32*)
                     ac_boost_path_default="/usr/i686-pc-mingw32/sys-root/mingw/"
                     ;;
                  *)
                     ac_boost_path_default="$INSROOT /usr /usr/local /opt /opt/local"
                     ;;
                esac
                ]
   )

   if test "x$want_boost" = "xyes"; then
        AC_REQUIRE([AC_PROG_CC])
      CPPFLAGS_SAVED="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
      export CPPFLAGS
       LDFLAGS_SAVED="$LDFLAGS"
      LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
      export LDFLAGS

        AC_CACHE_CHECK(whether the Boost::System library is available,
                  ax_cv_boost_system,
        [AC_LANG_PUSH([C++])
          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/system/error_code.hpp>]],
                                   [[boost::system::error_code  err;
                                   return 0;]])],
                   [ax_cv_boost_system=yes], [ax_cv_boost_system=no])
             AC_LANG_POP([C++])
      ])
      if test "x$ax_cv_boost_system" = "xyes"; then
         AC_DEFINE(HAVE_BOOST_SYSTEM,,[define if the Boost::Date_Time library is available])
         BN=boost_system

            if test "x$ax_boost_user_system_lib" = "x"; then
            for ax_lib in $BN-mt $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \
                              lib$BN lib$BN-$CC lib$BN-mt lib$BN-$CC-mt lib$BN-mt lib$BN-$CC-mt-s lib$BN-$CC-s \
                              $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do
                AC_CHECK_LIB($ax_lib, main, [BOOST_SYSTEM_LIB="-l$ax_lib" AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes" break],
                                 [link_system="no"])
              done
            else
               for ax_lib in $ax_boost_user_system_lib $BN-$ax_boost_user_system_lib; do
                  AC_CHECK_LIB($ax_lib, main,
                                   [BOOST_SYSTEM_LIB="-l$ax_lib" AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes" break],
                                   [link_system="no"])
                  done

            fi
         if test "x$link_system" = "xno"; then
            AC_MSG_ERROR(Could not link against $ax_lib !)
         fi
      fi

      CPPFLAGS="$CPPFLAGS_SAVED"
       LDFLAGS="$LDFLAGS_SAVED"
   fi
])
