X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=configure.ac;h=9b7a8ca4871b76245a084223f0390e2cd571aebf;hb=cde64486c9af5b2411e98cbad32b332912e88126;hp=918d895ac03ad95d9a43a85e7f9f953f5d5e5f7d;hpb=bbbc0618f8db436d3deb9daa31f1cd79eb93852a;p=shibboleth%2Fcpp-sp-resolver.git diff --git a/configure.ac b/configure.ac index 918d895..9b7a8ca 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.50]) -AC_INIT([shibboleth-resolver], [0.2], [MOONSHOT-COMMUNITY@JISCMAIL.AC.UK], [shibboleth-resolver]) +AC_INIT([shibboleth-resolver], [1.0.0], [MOONSHOT-COMMUNITY@JISCMAIL.AC.UK], [shibboleth-resolver]) AC_CONFIG_SRCDIR(src) AC_CONFIG_AUX_DIR(build-aux) AC_CONFIG_MACRO_DIR(m4) @@ -19,7 +19,7 @@ else GCC_CXXFLAGS="$CXXFLAGS -O2 -DNDEBUG" fi -AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_HEADERS([config.h src/shibresolver/config_pub.h]) AC_CONFIG_FILES([resolver.spec Portfile]) AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile]) @@ -37,20 +37,20 @@ if test "$GCC" = "yes" ; then # ]) CFLAGS="-Wall $GCC_CFLAGS" CXXFLAGS="-Wall $GCC_CXXFLAGS" -else -# Fix for Sun Workshop compiler in debug mode, may be Sun case #6360993 - case "${host_cpu}-${host_os}" in - *solaris*) - if test "$CXX" = "CC" ; then - CXXFLAGS="$CXXFLAGS -Qoption ccfe -stabs=no%dfltlit+no%dflthlp" - fi - ;; - *osf*) - CXXFLAGS="$CXXFLAGS -D_POSIX_PII_SOCKET" - ;; - esac 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. @@ -269,6 +269,155 @@ AC_COMPILE_IFELSE( # restore master libs LIBS="$save_LIBS" +# GSS-API checking + +GSSAPI_ROOT="/usr" +AC_ARG_WITH(gssapi-includes, + AS_HELP_STRING([--with-gssapi-includes=DIR],[Specify location of GSSAPI header]), + [ GSSAPI_INCS="-I$withval" + want_gss="yes" ] +) + +AC_ARG_WITH(gssapi-libs, + AS_HELP_STRING([--with-gssapi-libs=DIR],[Specify location of GSSAPI libs]), + [ GSSAPI_LIB_DIR="-L$withval" + want_gss="yes" ] +) + +AC_ARG_WITH(gssapi, + AS_HELP_STRING([--with-gssapi=DIR],[Where to look for GSSAPI]), + [ GSSAPI_ROOT="$withval" + if test x"$GSSAPI_ROOT" != xno; then + want_gss="yes" + if test x"$GSSAPI_ROOT" = xyes; then + dnl if yes, then use default root + GSSAPI_ROOT="/usr" + fi + fi +]) + +save_CPPFLAGS="$CPPFLAGS" +AC_MSG_CHECKING([if GSSAPI support is requested]) +if test x"$want_gss" = xyes; then + AC_MSG_RESULT(yes) + + if test -z "$GSSAPI_INCS"; then + if test -f "$GSSAPI_ROOT/bin/krb5-config"; then + GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi` + elif test "$GSSAPI_ROOT" != "yes"; then + GSSAPI_INCS="-I$GSSAPI_ROOT/include" + fi + fi + + CPPFLAGS="$CPPFLAGS $GSSAPI_INCS" + + AC_CHECK_HEADER(gss.h, + [ + dnl found in the given dirs + AC_DEFINE([SHIBRESOLVER_HAVE_GSSGNU],[1],[if you have the GNU gssapi libraries]) + gnu_gss=yes + ], + [ + dnl not found, check Heimdal or MIT + AC_CHECK_HEADERS([gssapi/gssapi.h], [], [not_mit=1]) + AC_CHECK_HEADERS( + [gssapi/gssapi_generic.h gssapi/gssapi_krb5.h], + [], + [not_mit=1], + [ +AC_INCLUDES_DEFAULT +#ifdef HAVE_GSSAPI_GSSAPI_H +#include +#endif + ]) + if test "x$not_mit" = "x1"; then + dnl MIT not found, check for Heimdal + AC_CHECK_HEADER([gssapi.h], + [ + dnl found + AC_DEFINE([SHIBRESOLVER_HAVE_GSSHEIMDAL],[1],[if you have the Heimdal gssapi libraries]) + ], + [ + dnl no header found, disabling GSS + want_gss=no + AC_MSG_WARN([disabling GSSAPI since no header files was found]) + ] + ) + else + dnl MIT found + AC_DEFINE([SHIBRESOLVER_HAVE_GSSMIT],[1],[if you have the MIT gssapi libraries]) + dnl check if we have a really old MIT kerberos (<= 1.2) + AC_MSG_CHECKING([if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#include +#include +#include + ]],[[ + gss_import_name( + (OM_uint32 *)0, + (gss_buffer_t)0, + GSS_C_NT_HOSTBASED_SERVICE, + (gss_name_t *)0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + ],[ + AC_MSG_RESULT([no]) + AC_DEFINE([HAVE_OLD_GSSMIT],[1],[if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE]) + ]) + fi + ] + ) +else + AC_MSG_RESULT(no) +fi +if test x"$want_gss" = xyes; then + AC_DEFINE([SHIBRESOLVER_HAVE_GSSAPI],[1],[if you have the gssapi libraries]) + + if test -n "$gnu_gss"; then + LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" + LIBS="$LIBS -lgss" + else + if test -z "$GSSAPI_LIB_DIR"; then + GSSAPI_LIB_DIR="$GSSAPI_ROOT/lib$libsuff" + fi + if test "$GSSAPI_ROOT" != "yes"; then + LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff" + fi + if test -f "$GSSAPI_ROOT/bin/krb5-config"; then + dnl krb5-config does not have --libs-only-L or similar, put everything into LIBS + gss_libs=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi` + else + if test "x$not_mit" = "x1"; then + gss_libs="-lgssapi" + else + gss_libs="-lgssapi_krb5" + fi + fi + LIBS="$LIBS $gss_libs" + fi + + AC_MSG_CHECKING([whether GSS-API naming extensions are available]) + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ +#ifdef SHIBRESOLVER_HAVE_GSSGNU +# include +#elif defined SHIBRESOLVER_HAVE_GSSMIT +# include +# include +#else +# include +#endif]], + [[gss_get_name_attribute(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);]])], + [AC_MSG_RESULT([yes])AC_DEFINE([SHIBRESOLVER_HAVE_GSSAPI_NAMINGEXTS],[1],[Define to 1 if GSS-API naming extensions are available.])], + [AC_MSG_RESULT([no])]) + +else + CPPFLAGS="$save_CPPFLAGS" +fi + + AC_SUBST(LITE_LIBS) AC_SUBST(XMLSEC_LIBS)