Fix debug option for non-GCC compilers
[shibboleth/sp.git] / configure.ac
index 9da56ee..5e4b23c 100644 (file)
@@ -6,8 +6,27 @@ AM_INIT_AUTOMAKE(shibboleth, 1.2)
 sinclude(acx_pthread.m4)
 sinclude(acx_rpctest.m4)
 
+AC_ARG_ENABLE(debug,
+    AC_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_PROG_CC([gcc3 gcc cc])
 AC_PROG_CXX([g++3 g++ c++ CC])
+
+if test "$GCC" = "yes" ; then
+    CFLAGS="$GCC_CFLAGS"
+    CXXFLAGS="$GCC_CXXFLAGS"
+fi
+
 AC_DISABLE_STATIC
 AC_PROG_LIBTOOL
 
@@ -20,6 +39,7 @@ AC_STRUCT_TM
 
 # Checks for library functions.
 AC_FUNC_STRFTIME
+AC_FUNC_STRERROR_R
 AC_CHECK_FUNCS([strchr strdup strstr gmtime_r strtok_r strcasecmp])
 AC_CHECK_HEADERS([dlfcn.h])
 
@@ -48,20 +68,6 @@ fi
 # Test RPC now -- deal with it later
 ACX_RPCTEST([rpctest="yes"],[rpctest="no"])
 
-# Determine whether to use TCP for the shar socket
-AC_ARG_ENABLE([tcp],
-    AC_HELP_STRING([--enable-tcp], [enable the SHAR to use a TCP socket on Unix]),
-    [tcp_enabled=$enableval], [tcp_enabled=default])
-
-if test "x$tcp_enabled" = "x" ; then
-   tcp_enabled=yes
-fi
-
-if test "$tcp_enabled" = "yes" ; then
-    CFLAGS="$CFLAGS -DWANT_TCP_SHAR"
-    CXXFLAGS="$CXXFLAGS -DWANT_TCP_SHAR"
-fi
-
 AC_ARG_WITH(dmalloc,
             AC_HELP_STRING([--with-dmalloc=PATH], [where dmalloc is installed]),
             [if test x_$with_dmalloc != x_/usr; then
@@ -105,11 +111,11 @@ AC_TRY_LINK_FUNC([SSL_library_init],,
 AC_MSG_RESULT(yes)
 
 # log4cpp settings
-LOG4CPP_CONFIG="log4cpp-config"
+AC_PATH_PROG(LOG4CPP_CONFIG,log4cpp-config)
 AC_ARG_WITH(log4cpp,
             AC_HELP_STRING([--with-log4cpp=PATH], [where log4cpp is installed]),
             [LOG4CPP_CONFIG="${with_log4cpp}/bin/log4cpp-config"])
-if test -f ${LOG4CPP_CONFIG}; then
+if test -f "${LOG4CPP_CONFIG}"; then
     LDFLAGS="`${LOG4CPP_CONFIG} --libs` $LDFLAGS"
     CPPFLAGS="`${LOG4CPP_CONFIG} --cflags` $CPPFLAGS"
 else
@@ -134,8 +140,13 @@ LIBS="-lxerces-c $LIBS"
 AC_CHECK_HEADER([xercesc/dom/DOM.hpp],,
                 AC_MSG_ERROR([unable to find xerces header files]))
 AC_TRY_LINK(
-       [#include <xercesc/util/PlatformUtils.hpp>],
-        [xercesc::XMLPlatformUtils::Initialize()],
+       [#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XercesVersion.hpp>],
+        [#if _XERCES_VERSION >= 20300
+xercesc::XMLPlatformUtils::Initialize();
+#else
+#error Need Xerces-C version 2.3 or higher
+#endif],
        [AC_DEFINE(HAVE_LIBXERCESC,1,[Define if Xerces-C library was found])],
        [AC_MSG_ERROR([unable to link with Xerces])])
 
@@ -165,11 +176,15 @@ AC_CHECK_HEADER([saml/saml.h],,
                 AC_MSG_ERROR([unable to find saml header files]))
 LIBS="-lsaml $LIBS"
 AC_TRY_LINK(
-        [#include <saml/saml.h>],
-        [saml::SAMLConfig::getConfig()],
+       [#include <saml/saml.h>
+#include <saml/version.h>],
+       [#if _OPENSAML_VERSION >= 10000
+saml::SAMLConfig::getConfig();
+#else
+#error Need OpenSAML version 1.0 or higher
+#endif],
         [AC_DEFINE(HAVE_SAML,1,[Define if saml library was found])],
-        [AC_MSG_ERROR([unable to link with saml])])
-
+        [AC_MSG_ERROR([unable to link with saml, or version too old])])
 
 # output the underlying makefiles
 WANT_SUBDIRS="doc shib schemas configs shib-target shar siterefresh test xmlproviders"
@@ -187,7 +202,7 @@ fi
 AM_CONDITIONAL(USE_OUR_ONCRPC,test "$rpctest" = "no")
 
 
-# Apache 1.3 (mod_shire/mod_shibrm)
+# Apache 1.3 (mod_shib_13)
 #   --with-apache-13 (static build, no idea how to do this yet, so not supported)
 #   --with-apxs      (DSO build, the normal way, uses apxs to derive build flags)
 #   --without-apxs   (DSO build, you tell us how to build using the environment)
@@ -322,58 +337,14 @@ else
 fi
 fi
 
-if test "$WANT_APACHE_13" = "yes"; then
-    AC_ARG_WITH(apreq,
-                AC_HELP_STRING([--with-apreq=PATH], [where libapreq is installed]),
-                [if test x_$with_apreq != x_/usr; then
-                    LDFLAGS="-L${with_apreq}/lib $LDFLAGS"
-                    CPPFLAGS="-I${with_apreq}/include $CPPFLAGS"
-                fi])
-
-    saved_CPPFLAGS="$CPPFLAGS"
-    CPPFLAGS="-I$APXS_INCLUDE $APXS_CFLAGS $CPPFLAGS"
-    AC_TRY_COMPILE([#include <libapreq/apache_request.h>],
-                   [int i=0],
-                   test_apreq="yes",test_apreq="no")
-    if test "$test_apreq" = "no"; then
-        CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
-        APXS_CFLAGS="$APXS_CFLAGS -U_XOPEN_SOURCE"
-        AC_CHECK_HEADER([libapreq/apache_request.h],,
-            AC_MSG_ERROR([unable to find a usable libapreq header]))
-    fi
-
-dnl    saved_LIBS="$LIBS"
-dnl    LIBS="-lapreq $LIBS"
-dnl    AC_TRY_LINK(
-dnl        [#include <libapreq/apache_request.h>],
-dnl        [ApacheRequest_expires],
-dnl        [AC_DEFINE(HAVE_APREQ,1,[Define if apreq library was found])],
-dnl        [AC_MSG_ERROR([unable to link with apreq])
-dnl        ])
-dnl    LIBS="$saved_LIBS"
-    CPPFLAGS="$saved_CPPFLAGS"
-
-    AC_ARG_ENABLE([apxs-install],
-       AC_HELP_STRING([--enable-apxs-install],
-                       [use apxs to install the apache modules]),
-       APXS_INSTALL="yes", )
-
-
-    AC_SUBST(APXS_CFLAGS)
-    AC_SUBST(APXS_INCLUDE)
-    AC_SUBST(APXS_LIBEXEC)
-    AC_SUBST(APXS_SYSCONFDIR)
-
-    # output the Apache 1.3 makefiles
-    WANT_SUBDIRS="$WANT_SUBDIRS mod_shire mod_shibrm"
-fi
-# always output the Makefile, even if we don't use it
-AC_CONFIG_FILES([mod_shire/Makefile mod_shibrm/Makefile])
+AC_SUBST(APXS_CFLAGS)
+AC_SUBST(APXS_INCLUDE)
+AC_SUBST(APXS_LIBEXEC)
+AC_SUBST(APXS_SYSCONFDIR)
 AM_CONDITIONAL(HAVE_APXS,test -n "$APXS")
-AM_CONDITIONAL(DO_APXS_INSTALL,test -n "$APXS_INSTALL")
 
 
-# Apache 2.0 (mod_shib in apache-2.0)
+# Apache 2.0 (mod_shib_20)
 #   --with-apache-20   (static build, no idea how to do this yet, so not supported)
 #   --with-apxs2       (DSO build, the normal way, uses apxs to derive build flags)
 #   --without-apxs2    (DSO build, you tell us how to build using the environment)
@@ -510,55 +481,21 @@ else
 fi
 fi
 
-if test "$WANT_APACHE_20" = "yes"; then
-    AC_ARG_WITH(apreq2,
-                AC_HELP_STRING([--with-apreq2=PATH], [where http-apreq-2 is installed]),
-                [if test x_$with_apreq2 != x_/usr; then
-                    LDFLAGS="-L${with_apreq2}/lib $LDFLAGS"
-                    CPPFLAGS="-I${with_apreq2}/include $CPPFLAGS"
-                fi])
-
-    saved_CPPFLAGS="$CPPFLAGS"
-    CPPFLAGS="-I$APXS2_INCLUDE $APXS2_CFLAGS $CPPFLAGS"
-    AC_TRY_COMPILE([#include <apreq.h>],
-                   [int i=0],
-                   test_apreq2="yes",test_apreq2="no")
-    if test "$test_apreq2" = "no"; then
-        CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
-        APXS2_CFLAGS="$APXS2_CFLAGS -U_XOPEN_SOURCE"
-        AC_CHECK_HEADER([apreq.h],,
-            AC_MSG_ERROR([unable to find a usable libapreq2 header]))
-    fi
+AC_SUBST(APXS2_CFLAGS)
+AC_SUBST(APXS2_INCLUDE)
+AC_SUBST(APXS2_LIBEXEC)
+AC_SUBST(APXS2_SYSCONFDIR)
+AM_CONDITIONAL(HAVE_APXS2,test -n "$APXS2")
 
-dnl    saved_LIBS="$LIBS"
-dnl    LIBS="-lapreq $LIBS"
-dnl    AC_TRY_LINK(
-dnl        [#include <apreq.h>],
-dnl        [apreq_param],
-dnl        [AC_DEFINE(HAVE_APREQ2,1,[Define if apreq2 library was found])],
-dnl        [AC_MSG_ERROR([unable to link with apreq2])
-dnl        ])
-dnl    LIBS="$saved_LIBS"
-    CPPFLAGS="$saved_CPPFLAGS"
-
-    AC_ARG_ENABLE([apxs2-install],
-       AC_HELP_STRING([--enable-apxs2-install],
-                       [use apxs to install the apache-2 modules]),
-       APXS2_INSTALL="yes", )
-
-
-    AC_SUBST(APXS2_CFLAGS)
-    AC_SUBST(APXS2_INCLUDE)
-    AC_SUBST(APXS2_LIBEXEC)
-    AC_SUBST(APXS2_SYSCONFDIR)
-
-    # output the Apache 2.0 makefiles
-    WANT_SUBDIRS="$WANT_SUBDIRS apache-2.0"
+# 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")
+
+# add the apache module to the list of wanted subdirs..
+if test "$WANT_APACHE_13" = "yes" || test "$WANT_APACHE_20" = "yes" ; then
+    WANT_SUBDIRS="$WANT_SUBDIRS apache"
 fi
-# always output the Makefile, even if we don't use it
-AC_CONFIG_FILES([apache-2.0/Makefile])
-AM_CONDITIONAL(HAVE_APXS2,test -n "$APXS2")
-AM_CONDITIONAL(DO_APXS2_INSTALL,test -n "$APXS2_INSTALL")
 
 
 #