X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=configure.ac;h=9788c9d285163d32db46d2751b94c23581980d5b;hb=refs%2Fheads%2Fmoonshot-packaging-fixes;hp=963932c39aaf185366a43d68e7273fdcd3395437;hpb=28fcbaa4e8c5090550a3e0ceaf0ea6a1355b890b;p=shibboleth%2Fsp.git diff --git a/configure.ac b/configure.ac index 963932c..9788c9d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.50]) -AC_INIT([shibboleth],[2.5],[https://bugs.internet2.edu/],[shibboleth]) +AC_INIT([shibboleth],[2.5.0],[https://issues.shibboleth.net/],[shibboleth-sp]) AC_CONFIG_SRCDIR(shibsp) AC_CONFIG_AUX_DIR(build-aux) AC_CONFIG_MACRO_DIR(m4) @@ -32,7 +32,7 @@ else fi AC_CONFIG_HEADERS([config.h shibsp/config_pub.h]) -AC_CONFIG_FILES([shibboleth.spec pkginfo Portfile]) +AC_CONFIG_FILES([shibboleth.spec]) AC_PROG_CC([gcc gcc3 cc]) AC_PROG_CXX([g++ g++3 c++ CC]) @@ -48,20 +48,23 @@ 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 + ;; + *osf*) + CXXFLAGS="$CXXFLAGS -D_POSIX_PII_SOCKET" + ;; +esac + AC_LANG(C) # Checks for typedefs, structures, and compiler characteristics. @@ -72,8 +75,12 @@ AC_STRUCT_TM # Checks for library functions. AC_FUNC_STRFTIME AC_FUNC_STRERROR_R -AC_CHECK_HEADERS([sys/utsname.h]) -AC_CHECK_FUNCS([strchr strdup strstr timegm gmtime_r strtok_r strcasecmp]) +AC_CHECK_HEADERS([sys/utsname.h grp.h pwd.h]) +AC_CHECK_HEADERS([sys/socket.h], [AC_DEFINE([SHIBSP_HAVE_SYS_SOCKET_H],[1],[Define to 1 if you have the header file.])], []) +AC_CHECK_FUNCS([strchr strdup strstr timegm gmtime_r localtime_r strtok_r strcasecmp getpwnam getgrnam]) +AC_CHECK_TYPES([struct sockaddr_storage], [], [], [[#include ]]) +AC_CHECK_MEMBERS([struct sockaddr.sa_len], [], [], [[#include ]]) + # checks for pthreads ACX_PTHREAD([enable_threads="pthread"],[enable_threads="no"]) @@ -116,6 +123,16 @@ AC_LANG([C++]) AC_CXX_NAMESPACES AC_CXX_REQUIRE_STL +# Boost +BOOST_REQUIRE +BOOST_BIND +BOOST_LAMBDA +BOOST_PTR_CONTAINER +BOOST_SMART_PTR +BOOST_STRING_ALGO +BOOST_TUPLE +CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS" + # Thank you Solaris, really. AC_MSG_CHECKING(for ctime_r) if test -z "$ac_cv_ctime_args"; then @@ -190,12 +207,15 @@ fi # Xerces settings AC_ARG_WITH(xerces, - AS_HELP_STRING([--with-xerces=PATH],[where xerces-c is installed]), - [if test x_$with_xerces != x_/usr; then - LDFLAGS="-L${with_xerces}/lib $LDFLAGS" - CPPFLAGS="-I${with_xerces}/include $CPPFLAGS" - fi]) -LIBS="-lxerces-c $LIBS" + AS_HELP_STRING([--with-xerces=PATH],[where xerces-c is installed]),, + [with_xerces=/usr]) +if test x_$with_xerces != x_/usr; then + CPPFLAGS="-I${with_xerces}/include $CPPFLAGS" + LIBS="-L${with_xerces}/lib -lxerces-c $LIBS" +else + LIBS="-lxerces-c $LIBS" +fi + AC_CHECK_HEADER([xercesc/dom/DOM.hpp],,AC_MSG_ERROR([unable to find xerces header files])) AC_MSG_CHECKING([Xerces version]) AC_PREPROC_IFELSE( @@ -237,12 +257,12 @@ AC_COMPILE_IFELSE( AC_ARG_WITH(xmlsec, AS_HELP_STRING([--with-xmlsec=PATH],[where xmlsec is installed]),, [with_xmlsec=/usr]) - if test x_$with_xmlsec != x_/usr; then - LDFLAGS="-L${with_xmlsec}/lib $LDFLAGS" CPPFLAGS="-I${with_xmlsec}/include $CPPFLAGS" -fi -XMLSEC_LIBS="-lxml-security-c $XMLSEC_LIBS" + XMLSEC_LIBS="-L${with_xmlsec}/lib -lxml-security-c $XMLSEC_LIBS" +else + XMLSEC_LIBS="-lxml-security-c $XMLSEC_LIBS" +fi # save and append master libs save_LIBS="$LIBS" @@ -273,16 +293,19 @@ LIBS="$save_LIBS" #XML-Tooling settings AC_ARG_WITH(xmltooling, - AS_HELP_STRING([--with-xmltooling=PATH],[where xmltooling is installed]), - [if test x_$with_xmltooling != x_/usr; then - LDFLAGS="-L${with_xmltooling}/lib $LDFLAGS" - CPPFLAGS="-I${with_xmltooling}/include $CPPFLAGS" - DX_INCLUDE="${with_xmltooling}/include" - fi]) -LITE_LIBS="-lxmltooling-lite" -XMLSEC_LIBS="-lxmltooling $XMLSEC_LIBS" + AS_HELP_STRING([--with-xmltooling=PATH],[where xmltooling is installed]),, + [with_xmltooling=/usr]) +if test x_$with_xmltooling != x_/usr; then + CPPFLAGS="-I${with_xmltooling}/include $CPPFLAGS" + DX_INCLUDE="${with_xmltooling}/include" + LITE_LIBS="-L${with_xmltooling}/lib -lxmltooling-lite" + XMLSEC_LIBS="-L${with_xmltooling}/lib -lxmltooling $XMLSEC_LIBS" +else + LITE_LIBS="-lxmltooling-lite" + XMLSEC_LIBS="-lxmltooling $XMLSEC_LIBS" +fi + AC_CHECK_HEADER([xmltooling/base.h],,AC_MSG_ERROR([unable to find xmltooling header files])) - # save and append master libs save_LIBS="$LIBS" @@ -291,10 +314,10 @@ LIBS="$XMLSEC_LIBS $LIBS" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[#include #include ]], - [[#if _XMLTOOLING_VERSION >= 10400 + [[#if _XMLTOOLING_VERSION >= 10500 xmltooling::XMLToolingConfig::getConfig(); #else -#error Need XMLTooling version 1.4 or higher +#error Need XMLTooling version 1.5 or higher #endif]])], ,[AC_MSG_ERROR([unable to link with XMLTooling, or version was too old])]) @@ -321,13 +344,15 @@ AC_SUBST(XMLTOOLINGXMLDIR) # OpenSAML settings AC_ARG_WITH(saml, - AS_HELP_STRING([--with-saml=PATH],[where saml is installed]), - [if test x_$with_saml != x_/usr; then - LDFLAGS="-L${with_saml}/lib $LDFLAGS" - CPPFLAGS="-I${with_saml}/include $CPPFLAGS" - DX_INCLUDE="$DX_INCLUDE ${with_saml}/include" - fi]) -XMLSEC_LIBS="-lsaml $XMLSEC_LIBS" + AS_HELP_STRING([--with-saml=PATH],[where opensaml is installed]),, + [with_saml=/usr]) +if test x_$with_xmltooling != x_/usr; then + CPPFLAGS="-I${with_saml}/include $CPPFLAGS" + DX_INCLUDE="$DX_INCLUDE ${with_saml}/include" + XMLSEC_LIBS="-L${with_saml}/lib -lsaml $XMLSEC_LIBS" +else + XMLSEC_LIBS="-lsaml $XMLSEC_LIBS" +fi # save and append master libs save_LIBS="$LIBS" @@ -337,10 +362,10 @@ AC_CHECK_HEADER([saml/saml2/metadata/Metadata.h],,AC_MSG_ERROR([unable to find O AC_LINK_IFELSE( [AC_LANG_PROGRAM([[#include #include ]], -[[#if _OPENSAML_VERSION >= 20400 +[[#if _OPENSAML_VERSION >= 20500 opensaml::SAMLConfig::getConfig(); #else -#error Need OpenSAML version 2.4 or higher +#error Need OpenSAML version 2.5 or higher #endif]])], ,[AC_MSG_ERROR([unable to link with OpenSAML, or version was too old]) ]) @@ -488,6 +513,9 @@ if test "$WANT_MEMCACHED" != "no"; then fi AC_CHECK_HEADER([libmemcached/memcached.h],, AC_MSG_ERROR([unable to find Memcached header files])) + AC_CHECK_DECL([memcached_last_error_message], + [AC_DEFINE([HAVE_MEMCACHED_LAST_ERROR_MESSAGE],[1],[Define to 1 if libmemcached supports error handling function.])],, + [#include ]) MEMCACHED_LIBS="-lmemcached" fi @@ -643,7 +671,7 @@ if test "$WANT_APACHE_20" = "yes" ; then AC_ARG_WITH(apxs2, AS_HELP_STRING([--with-apxs2=FILE],[Specifies where to find the Apache 2.0 apxs script.]), [ - AC_MSG_CHECKING(for user-specified Apache2 apxs name/location) + AC_MSG_CHECKING(for user-specified Apache 2.0 apxs name/location) if test "$withval" != "no" ; then if test "$withval" != "yes"; then APXS2=$withval @@ -672,10 +700,10 @@ if test "$WANT_APACHE_20" = "yes" ; then fi ]) - AC_MSG_CHECKING([to see if Apache2 apxs was located]) + AC_MSG_CHECKING([to see if Apache 2.0 apxs was located]) if test ! -f "$APXS2" ; then AC_MSG_RESULT(no) - AC_MSG_ERROR([Unable to locate Apache2 apxs script. An Apache development package may be missing from your server, or you may need to use the --with-apxs2 option.]) + AC_MSG_ERROR([Unable to locate Apache 2.0 apxs script. An Apache development package may be missing from your server, or you may need to use the --with-apxs2 option.]) fi AC_MSG_RESULT($APXS2) AC_SUBST(APXS2) @@ -708,7 +736,7 @@ if test "$WANT_APACHE_20" = "yes" ; then AC_MSG_CHECKING(for user-specified apu-config name/location) if test "$withval" != "no" ; then if test "$withval" != "yes"; then - APR_CONFIG=$withval + APU_CONFIG=$withval AC_MSG_RESULT("$withval") fi fi @@ -756,7 +784,7 @@ if test "$WANT_APACHE_22" = "yes" ; then AC_ARG_WITH(apxs22, AS_HELP_STRING([--with-apxs22=FILE],[Specifies where to find the Apache 2.2 apxs script.]), [ - AC_MSG_CHECKING(for user-specified Apache2.2 apxs name/location) + AC_MSG_CHECKING(for user-specified Apache 2.2 apxs name/location) if test "$withval" != "no" ; then if test "$withval" != "yes"; then APXS22=$withval @@ -785,10 +813,10 @@ if test "$WANT_APACHE_22" = "yes" ; then fi ]) - AC_MSG_CHECKING([to see if Apache2.2 apxs was located]) + AC_MSG_CHECKING([to see if Apache 2.2 apxs was located]) if test ! -f "$APXS22" ; then AC_MSG_RESULT(no) - AC_MSG_ERROR([Unable to locate Apache2.2 apxs script. An Apache development package may be missing from your server, or you may need to use the --with-apxs22 option.]) + AC_MSG_ERROR([Unable to locate Apache 2.2 apxs script. An Apache development package may be missing from your server, or you may need to use the --with-apxs22 option.]) fi AC_MSG_RESULT($APXS22) AC_SUBST(APXS22) @@ -844,14 +872,130 @@ fi AC_SUBST(APXS22_CFLAGS) AC_SUBST(APXS22_INCLUDE) +# Apache 2.4 (mod_shib_24) +# --enable-apache-24 +# --with-apxs24 (DSO build, the normal way, uses apxs to derive build flags) +# --with-apr1 (DSO build, APR development package installed separately) +# --with-apu1 (DSO build, APR-UTIL development package installed separately) + +AC_ARG_ENABLE(apache-24, + AS_HELP_STRING([--enable-apache-24],[enable the Apache 2.4 module]), + [if test "x$enableval" = "x" ; then + WANT_APACHE_24=yes + else + WANT_APACHE_24="$enableval" + fi + ],[ WANT_APACHE_24=no ]) +AC_MSG_CHECKING(whether to build Apache 2.4 module) +if test "$WANT_APACHE_24" != yes && test "$WANT_APACHE_24" != no ; then + WANT_APACHE_24=yes +fi +AC_MSG_RESULT($WANT_APACHE_24) + +if test "$WANT_APACHE_24" = "yes" ; then + AC_ARG_WITH(apxs24, + AS_HELP_STRING([--with-apxs24=FILE],[Specifies where to find the Apache 2.4 apxs script.]), + [ + AC_MSG_CHECKING(for user-specified Apache 2.4 apxs name/location) + if test "$withval" != "no" ; then + if test "$withval" != "yes"; then + APXS24=$withval + AC_MSG_RESULT("$withval") + fi + fi + ], + [ + AC_PATH_PROG(APXS24, apxs2, no) + if test "$APXS24" = "no" ; then + AC_PATH_PROG(APXS24, apxs, no) + fi + if test "$APXS24" = "no" ; then + for i in /usr/sbin /usr/local/apache2/bin /usr/local/apache/bin ; do + if test "$APXS24" = "no" && test -f "$i/apxs2" ; then + APXS24="$i/apxs2" + fi + done + if test "$APXS24" = "no" ; then + for i in /usr/sbin /usr/local/apache2/bin /usr/local/apache/bin ; do + if test "$APXS24" = "no" && test -f "$i/apxs" ; then + APXS24="$i/apxs" + fi + done + fi + fi + ]) + + AC_MSG_CHECKING([to see if Apache 2.4 apxs was located]) + if test ! -f "$APXS24" ; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([Unable to locate Apache 2.4 apxs script. An Apache development package may be missing from your server, or you may need to use the --with-apxs24 option.]) + fi + AC_MSG_RESULT($APXS24) + AC_SUBST(APXS24) + + # If we haven't done this work already for Apache 2.2 + if test "$WANT_APACHE_22" != "yes" ; then + # APR1 settings + AC_ARG_WITH(apr1, + AS_HELP_STRING([--with-apr1=PATH],[where apr-1-config is installed]), + [ + AC_MSG_CHECKING(for user-specified apr-1-config name/location) + if test "$withval" != "no" ; then + if test "$withval" != "yes"; then + APR1_CONFIG=$withval + AC_MSG_RESULT("$withval") + fi + fi + ], + [ + AC_PATH_PROG(APR1_CONFIG, apr-1-config,,[`$APXS22 -q SBINDIR`]:[$PATH]) + ]) + if test -f "${APR1_CONFIG}"; then + APR1_CFLAGS="`${APR1_CONFIG} --cflags` `${APR1_CONFIG} --cppflags` `${APR1_CONFIG} --includes`" + else + AC_MSG_ERROR([Unable to locate apr-1-config, may need --with-apr1 option.]) + fi + + # APU1 settings + AC_ARG_WITH(apu1, + AS_HELP_STRING([--with-apu1=PATH],[where apu-1-config is installed]), + [ + AC_MSG_CHECKING(for user-specified apu-1-config name/location) + if test "$withval" != "no" ; then + if test "$withval" != "yes"; then + APU1_CONFIG=$withval + AC_MSG_RESULT("$withval") + fi + fi + ], + [ + AC_PATH_PROG(APU1_CONFIG, apu-1-config,,[`$APXS22 -q SBINDIR`]:[$PATH]) + ]) + if test -f "${APU1_CONFIG}"; then + APU1_CFLAGS="`${APU1_CONFIG} --includes`" + else + AC_MSG_ERROR([Unable to locate apu-1-config, may need --with-apu1 option.]) + fi + fi + + # extract settings we need from APXS24 -q + APXS24_CC="`$APXS24 -q CC`" + APXS24_CFLAGS="`$APXS24 -q CPPFLAGS` `$APXS24 -q CFLAGS` $APR1_CFLAGS $APU1_CFLAGS" + APXS24_INCLUDE="`$APXS24 -q INCLUDEDIR`" +fi + +AC_SUBST(APXS24_CFLAGS) +AC_SUBST(APXS24_INCLUDE) + # always output the Makefile, even if you don't use it AC_CONFIG_FILES([apache/Makefile]) AM_CONDITIONAL(BUILD_AP13,test "$WANT_APACHE_13" = "yes") AM_CONDITIONAL(BUILD_AP20,test "$WANT_APACHE_20" = "yes") AM_CONDITIONAL(BUILD_AP22,test "$WANT_APACHE_22" = "yes") +AM_CONDITIONAL(BUILD_AP24,test "$WANT_APACHE_24" = "yes") # add the apache module to the list of wanted subdirs.. -if test "$WANT_APACHE_13" = "yes" || test "$WANT_APACHE_20" = "yes" || test "$WANT_APACHE_22" = "yes" ; then +if test "$WANT_APACHE_13" = "yes" || test "$WANT_APACHE_20" = "yes" || test "$WANT_APACHE_22" = "yes" || test "$WANT_APACHE_24" = "yes" ; then WANT_SUBDIRS="$WANT_SUBDIRS apache" fi @@ -1087,6 +1231,7 @@ if test x"$want_gss" = xyes; then #ifdef SHIBSP_HAVE_GSSGNU # include #elif defined SHIBSP_HAVE_GSSMIT +# include # include #else # include @@ -1101,6 +1246,7 @@ if test x"$want_gss" = xyes; then #ifdef SHIBSP_HAVE_GSSGNU # include #elif defined SHIBSP_HAVE_GSSMIT +# include # include #else # include @@ -1157,6 +1303,18 @@ if test -n "$APXS22_CC" && test "$APXS22_CC" != "$CC" ; then echo "==================================================================" fi +if test -n "$APXS24_CC" && test "$APXS24_CC" != "$CC" ; then + echo "==================================================================" + echo "WARNING: You have chosen to compile Apache-2.4 modules with a different" + echo " compiler than the one used to compile Apache." + echo "" + echo " Current compiler: $CC" + echo " Apache's compiler: $APXS24_CC" + echo "" + echo "This could cause problems." + echo "==================================================================" +fi + LIBTOOL="$LIBTOOL --silent" AC_OUTPUT