AC_PREREQ([2.50])
AC_INIT([shibboleth-resolver], [3.1.0], [MOONSHOT-COMMUNITY@JISCMAIL.AC.UK], [shibboleth-resolver])
AC_CONFIG_SRCDIR(src)
AC_CONFIG_AUX_DIR(build-aux)
AC_CONFIG_MACRO_DIR(m4)
AM_INIT_AUTOMAKE
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
PKG_INSTALLDIR
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug],[Have GCC compile with symbols (Default = no)]),
enable_debug=$enableval, enable_debug=no)
if test "$enable_debug" = "yes" ; then
GCC_CFLAGS="$CFLAGS -g -D_DEBUG"
GCC_CXXFLAGS="$CXXFLAGS -g -D_DEBUG"
else
GCC_CFLAGS="$CFLAGS -O2 -DNDEBUG"
GCC_CXXFLAGS="$CXXFLAGS -O2 -DNDEBUG"
fi
AC_CONFIG_HEADERS([config.h src/shibresolver/config_pub.h])
AC_CONFIG_FILES([resolver.spec shibresolver.pc shibresolver-lite.pc])
AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile])
AC_PROG_CC([gcc gcc3 cc])
AC_PROG_CXX([g++ g++3 c++ CC])
AC_CANONICAL_HOST
if test "$GCC" = "yes" ; then
# AC_HAVE_GCC_VERSION(4,0,0,0,
# [
# AC_DEFINE(GCC_HASCLASSVISIBILITY,1,
# [Define to enable class visibility control in gcc.])
# GCC_CFLAGS="$GCC_CFLAGS -fvisibility=hidden -fvisibility-inlines-hidden"
# GCC_CXXFLAGS="$GCC_CXXFLAGS -fvisibility=hidden -fvisibility-inlines-hidden"
# ])
CFLAGS="-Wall $GCC_CFLAGS"
CXXFLAGS="-Wall $GCC_CXXFLAGS"
fi
# Fix for Sun Workshop compiler in debug mode, may be Sun case #6360993
# Also enables POSIX semantics for some functions.
case "${host_cpu}-${host_os}" in
*solaris*)
CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS"
CXXFLAGS="$CXXFLAGS -D_POSIX_PTHREAD_SEMANTICS"
if test "$CXX" = "CC" ; then
CXXFLAGS="$CXXFLAGS -Qoption ccfe -stabs=no%dfltlit+no%dflthlp"
fi
;;
esac
AC_LANG(C)
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_STRUCT_TM
# Checks for library functions.
AC_CHECK_FUNCS([strcasecmp])
AX_PTHREAD(,[AC_MSG_ERROR([unable to find pthreads, currently this is required])])
AC_LANG(C++)
# C++ requirements
AC_CXX_NAMESPACES
AC_CXX_REQUIRE_STL
AX_PKG_CHECK_MODULES([log4shib],,[log4shib],
[AC_DEFINE([SHIBRESOLVER_LOG4SHIB],[1],[Define to 1 if log4shib library is used.])],
[AX_PKG_CHECK_MODULES([log4cpp],,[log4cpp],
[AC_DEFINE([SHIBRESOLVER_LOG4CPP],[1],[Define to 1 if log4cpp library is used.])],,
[SHIBRESOLVER_LITE_REQUIRES],[SHIBRESOLVER_LITE_REQUIRES_PRIVATE])],,
[SHIBRESOLVER_LITE_REQUIRES],[SHIBRESOLVER_LITE_REQUIRES_PRIVATE])
AX_PKG_CHECK_MODULES([xerces],,[xerces-c >= 3.2],,,
[SHIBRESOLVER_LITE_REQUIRES],[SHIBRESOLVER_LITE_REQUIRES_PRIVATE])
AX_PKG_CHECK_MODULES([xmlsec],,[xml-security-c >= 2],,,
[SHIBRESOLVER_REQUIRES],[SHIBRESOLVER_REQUIRES_PRIVATE])
AX_PKG_CHECK_MODULES([xmltooling],,[xmltooling >= 3],,,
[SHIBRESOLVER_REQUIRES],[SHIBRESOLVER_REQUIRES_PRIVATE])
AX_PKG_CHECK_MODULES([xmltooling_lite],,[xmltooling-lite >= 3],,,
[SHIBRESOLVER_LITE_REQUIRES],[SHIBRESOLVER_LITE_REQUIRES_PRIVATE])
AX_PKG_CHECK_MODULES([opensaml],,[opensaml >= 3],,,
[SHIBRESOLVER_REQUIRES],[SHIBRESOLVER_REQUIRES_PRIVATE])
AX_PKG_CHECK_MODULES([shibsp],,[shibsp >= 3],,,
[SHIBRESOLVER_REQUIRES],[SHIBRESOLVER_REQUIRES_PRIVATE])
AX_PKG_CHECK_MODULES([shibsp_lite],,[shibsp-lite >= 3],,,
[SHIBRESOLVER_LITE_REQUIRES],[SHIBRESOLVER_LITE_REQUIRES_PRIVATE])
AC_ARG_WITH([gssapi],
[AS_HELP_STRING([--with-gssapi],[include GSSAPI support])],,[with_gssapi=check])
AS_IF([test "x$with_gssapi" != xno],
[AX_PKG_CHECK_MODULES([gss],,[krb5-gssapi],
[PKG_CHECK_VAR([GSS_VENDOR],[krb5-gssapi],[vendor])
AS_CASE(["$GSS_VENDOR"],
[Heimdal],[AC_DEFINE([SHIBRESOLVER_HAVE_GSSHEIMDAL],[1],[if you have the Heimdal gssapi libraries])],
[MIT],[AC_DEFINE([SHIBRESOLVER_HAVE_GSSMIT],[1],[if you have the MIT gssapi libraries])])],
[AX_PKG_CHECK_MODULES([gnu_gss],,[gss],
[AC_DEFINE([SHIBRESOLVER_HAVE_GSSGNU],[1],[if you have the GNU gssapi libraries])],
[with_gssapi=no],
[SHIBRESOLVER_LITE_REQUIRES],[SHIBRESOLVER_LITE_REQUIRES_PRIVATE])],
[SHIBRESOLVER_LITE_REQUIRES],[SHIBRESOLVER_LITE_REQUIRES_PRIVATE])
AS_IF([test "x$with_gssapi" != xno],
[AC_DEFINE([SHIBRESOLVER_HAVE_GSSAPI],[1],[if you have the gssapi libraries])
AX_SAVE_FLAGS
CXXFLAGS="$gss_CFLAGS $gnu_gss_CFLAGS $CXXFLAGS"
LIBS="$gss_LIBS $gnu_gss_LIBS $LIBS"
AC_CHECK_DECLS([gss_get_name_attribute,GSS_C_NT_EXPORT_NAME_COMPOSITE],,,[[
#ifdef SHIBRESOLVER_HAVE_GSSGNU
# include <gss.h>
#elif defined SHIBRESOLVER_HAVE_GSSMIT
# include <gssapi/gssapi.h>
# include <gssapi/gssapi_ext.h>
#else
# include <gssapi.h>
#endif
]])
AX_RESTORE_FLAGS
])
])
AS_IF([test "x$ac_cv_have_decl_gss_get_name_attribute" = xyes],
[AC_DEFINE([SHIBRESOLVER_HAVE_GSSAPI_NAMINGEXTS],[1],[Define to 1 if GSS-API naming extensions are available.])])
AC_OUTPUT