Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
108 lines (86 sloc) 3.67 KB
dnl __BEGIN_LICENSE__
dnl Copyright (C) 2006-2010 United States Government as represented by
dnl the Administrator of the National Aeronautics and Space Administration.
dnl All Rights Reserved.
dnl __END_LICENSE__
m4_ifdef([_AX_FIXUPS], [], [m4_include([m4/fixups.m4])])
# Usage: AX_PKG_BOOST(<required boost libs> [,boost_lib, how-to-detect-lib]*)
AC_DEFUN([AX_PKG_BOOST],
[
m4_divert_once([INIT_PREPARE], [dnl
AC_ARG_WITH(boost,
AS_HELP_STRING([--with-boost], [look for the boost package]),
[ HAVE_PKG_BOOST=$withval ]
)])
AC_LANG_ASSERT(C++)
if test -n "${HAVE_PKG_BOOST}" && test "${HAVE_PKG_BOOST}" != "yes" && test "${HAVE_PKG_BOOST}" != "no" && test x"${HAVE_PKG_BOOST#no:}" = "x$HAVE_PKG_BOOST"; then
PKG_PATHS_BOOST="${HAVE_PKG_BOOST}"
else
PKG_PATHS_BOOST="${PKG_PATHS}"
fi
# Skip testing if the user has overridden
if test "no" = "$HAVE_PKG_BOOST"; then
HAVE_PKG_BOOST="no:disabled by user"
elif test x"${HAVE_PKG_BOOST#no:}" != "x$HAVE_PKG_BOOST"; then # read as: if has_prefix(HAVE_PKG_BOOST, "no:")
:
else
HAVE_PKG_BOOST=no
for ax_boost_base_path in $PKG_PATHS_BOOST; do
boost_base_path_glob="${ax_boost_base_path}/include/boost-*"
for ax_boost_inc_path in ${ax_boost_base_path}/include `echo ${boost_base_path_glob} | xargs -n1 | sort -r` ; do
AX_LOG([Checking for a boost in ${ax_boost_inc_path}])
if test -f "${ax_boost_inc_path}/boost/version.hpp"; then
AC_MSG_NOTICE([Checking if Boost at ${ax_boost_inc_path}/boost is OK])
AX_EXTRACT_CPP_SYMBOL([BOOST_VERSION], [#include <boost/version.hpp>], [BOOST_VERSION=$output],
[AX_LOG([Couldn't get boost version for $ax_boost_inc_path/boost]); continue;],
["-I${ax_boost_inc_path}"])
AX_LOG([Found boost includes at ${ax_boost_inc_path}, version(${BOOST_VERSION})])
PKG_BOOST_INCDIR="${ax_boost_inc_path}"
PKG_BOOST_LIBDIR="${ax_boost_base_path}/${AX_LIBDIR}"
# In case it's not in lib64 despite specifying lib64...
if test ! -d $PKG_BOOST_LIBDIR -a x"${AX_OTHER_LIBDIR}" != "x"; then
PKG_BOOST_LIBDIR="${ax_boost_base_path}/${AX_OTHER_LIBDIR}"
fi
m4_for([idx], 3, $#, 2, [m4_do(m4_argn(idx, $@)) ])
missing=
AC_FOREACH([required], $1,
[AS_IF([test x"$HAVE_PKG_]required[" != "xyes"], [missing="${missing} required"])
])
AS_IF([test -n "$missing"], [AC_MSG_NOTICE([${ax_boost_inc_path}/boost is missing these required libraries: $missing]); continue;],
[
HAVE_PKG_BOOST="yes"
break 2
])
fi
done
done
fi
AC_MSG_CHECKING(for package BOOST)
if test "${HAVE_PKG_BOOST}" = "yes" ; then
ax_have_pkg_bool=1
OTHER_CPPFLAGS="${OTHER_CPPFLAGS} -I${PKG_BOOST_INCDIR}"
OTHER_LDFLAGS="${OTHER_LDFLAGS} -L${PKG_BOOST_LIBDIR}"
AC_MSG_RESULT([yes])
elif test x"${HAVE_PKG_BOOST#no:}" != "x$HAVE_PKG_BOOST"; then # read as: if has_prefix(HAVE_PKG_BOOST, "no:")
dnl { and } break AC_MSG_RESULT
reason="${HAVE_PKG_BOOST#no:}"
AC_MSG_RESULT([no ($reason)])
else
HAVE_PKG_BOOST=no
ax_have_pkg_bool=0
AC_MSG_RESULT([no])
fi
AC_DEFINE_UNQUOTED([HAVE_PKG_BOOST],
[$ax_have_pkg_bool],
[Define to 1 if the BOOST package is available.])
AC_SUBST(PKG_BOOST_CPPFLAGS)
AC_SUBST(PKG_BOOST_LIBS)
AC_SUBST(HAVE_PKG_BOOST)
AX_LOG(HAVE_PKG_BOOST=${HAVE_PKG_BOOST})
AX_LOG(PKG_BOOST_CPPFLAGS=$PKG_BOOST_CPPFLAGS)
AX_LOG(PKG_BOOST_LIBS=$PKG_BOOST_LIBS)
AX_LOG(CPPFLAGS=$CPPFLAGS)
AX_LOG(LDFLAGS=$LDFLAGS)
AX_LOG(OTHER_CPPFLAGS=$OTHER_CPPFLAGS)
AX_LOG(OTHER_LDFLAGS=$OTHER_LDFLAGS)
])
Jump to Line
Something went wrong with that request. Please try again.