Port fastcgi code to trunk.
[shibboleth/sp.git] / configure.ac
index 0667d0e..2ecdf6d 100644 (file)
@@ -55,7 +55,7 @@ AC_STRUCT_TM
 # Checks for library functions.
 AC_FUNC_STRFTIME
 AC_FUNC_STRERROR_R
-AC_CHECK_FUNCS([strchr strdup strstr gmtime_r ctime_r strtok_r strcasecmp])
+AC_CHECK_FUNCS([strchr strdup strstr timegm gmtime_r ctime_r strtok_r strcasecmp])
 
 # checks for pthreads
 ACX_PTHREAD([enable_threads="pthread"],[enable_threads="no"])
@@ -87,6 +87,12 @@ AC_ARG_WITH(log4shib,
 if test -f "${LOG4SHIB_CONFIG}"; then
     LDFLAGS="`${LOG4SHIB_CONFIG} --libs` $LDFLAGS"
     CPPFLAGS="`${LOG4SHIB_CONFIG} --cflags` $CPPFLAGS"
+       AC_CHECK_HEADER([log4shib/CategoryStream.hh],,AC_MSG_ERROR([unable to find log4shib header files]))
+       AC_TRY_LINK(
+               [#include <log4shib/CategoryStream.hh>],
+               [log4shib::Category::getInstance("foo").errorStream() << log4shib::eol],
+               [AC_DEFINE(SHIBSP_LOG4SHIB,1,[Define if log4shib library is used.])],
+               [AC_MSG_ERROR([unable to link with log4shib])])
 else
     AC_MSG_WARN([log4shib-config not found, may need to use --with-log4shib option])
     AC_MSG_WARN([will look for original log4cpp library])
@@ -105,24 +111,16 @@ else
                AC_MSG_WARN([will try to use log4cpp, note that most non-Internet2 supplied versions are not thread-safe])
            LDFLAGS="`${LOG4CPP_CONFIG} --libs` $LDFLAGS"
            CPPFLAGS="`${LOG4CPP_CONFIG} --cflags` $CPPFLAGS"
+               AC_CHECK_HEADER([log4cpp/CategoryStream.hh],,AC_MSG_ERROR([unable to find log4cpp header files]))
+               AC_TRY_LINK(
+                       [#include <log4cpp/CategoryStream.hh>],
+                       [log4cpp::Category::getInstance("foo").errorStream() << log4cpp::eol],
+                       [AC_DEFINE(SHIBSP_LOG4CPP,1,[Define if log4cpp library is used.])],
+                       [AC_MSG_ERROR([unable to link with log4cpp, need version 1.0 or later])])
        else
            AC_MSG_ERROR([log4cpp-config not found, may need to use --with-log4cpp option])
        fi
-       AC_CHECK_HEADER([log4cpp/Category.hh],,AC_MSG_ERROR([unable to find log4cpp header files]))
-       AC_CHECK_HEADER([log4cpp/PropertyConfigurator.hh],,AC_MSG_ERROR([you need at least log4cpp 0.3.x]))
-       AC_TRY_LINK(
-               [#include <log4cpp/Category.hh>],
-               [log4cpp::Category::getInstance("foo")],
-               [AC_DEFINE(SHIBSP_LOG4CPP,1,[Define if log4cpp library is used.])],
-               [AC_MSG_ERROR([unable to link with log4cpp])])
 fi
-AC_CHECK_HEADER([log4shib/Category.hh],,AC_MSG_ERROR([unable to find log4shib header files]))
-AC_TRY_LINK(
-       [#include <log4shib/Category.hh>],
-       [log4shib::Category::getInstance("foo")],
-       [AC_DEFINE(SHIBSP_LOG4SHIB,1,[Define if log4shib library is used.])],
-       [AC_MSG_ERROR([unable to link with log4shib])])
-
 
 # Xerces settings
 AC_ARG_WITH(xerces, 
@@ -183,17 +181,17 @@ AC_CHECK_HEADER([xsec/utils/XSECPlatformUtils.hpp],,AC_MSG_ERROR([unable to find
 AC_MSG_CHECKING([XML-Security version])
 AC_PREPROC_IFELSE(
     [AC_LANG_PROGRAM([#include <xsec/utils/XSECPlatformUtils.hpp>],
-    [#if XSEC_VERSION_MAJOR > 1 || (XSEC_VERSION_MAJOR == 1 && XSEC_VERSION_MEDIUM > 3) || (XSEC_VERSION_MAJOR == 1 && XSEC_VERSION_MEDIUM == 3 && XSEC_VERSION_MINOR > 0)
+    [#if XSEC_VERSION_MAJOR > 1 || (XSEC_VERSION_MAJOR == 1 && XSEC_VERSION_MEDIUM > 3)
 int i = 0;
 #else
-#error need version 1.3.1 or later
+#error need version 1.4.0 or later
 #endif])],
     [AC_MSG_RESULT(OK)],
-    [AC_MSG_FAILURE([XML-Security version 1.3.1 or greater is required.])])
+    [AC_MSG_FAILURE([XML-Security version 1.4.0 or greater is required.])])
 AC_TRY_LINK(
         [#include <xsec/utils/XSECPlatformUtils.hpp>],
         [XSECPlatformUtils::Initialise()],,
-        [AC_MSG_ERROR([unable to link with XML-Sec])])
+        [AC_MSG_ERROR([unable to link with XML-Security])])
 
 # restore master libs
 LIBS="$save_LIBS"
@@ -231,10 +229,27 @@ AC_SUBST(LITE_LIBS)
 AC_SUBST(XMLSEC_LIBS)
 
 # output the underlying makefiles
-WANT_SUBDIRS="doc schemas configs shibsp shibd adfs util"
+WANT_SUBDIRS="doc schemas configs shibsp shibd util"
 AC_CONFIG_FILES([Makefile doc/Makefile schemas/Makefile \
        configs/Makefile shibsp/Makefile shibd/Makefile \
-       adfs/Makefile util/Makefile selinux/Makefile])
+       util/Makefile selinux/Makefile])
+
+## ADFS?
+AC_CONFIG_FILES([adfs/Makefile])
+AC_ARG_ENABLE([adfs],
+       AC_HELP_STRING([--disable-adfs], [don't build the ADFS module]),
+       [adfs_enabled=$enableval], [adfs_enabled=yes])
+if test "x$adfs_enabled" = "x" ; then
+   adfs_enabled=yes
+fi
+AC_MSG_CHECKING(whether to build the ADFS module)
+if test "$adfs_enabled" = "no" ; then
+   AC_MSG_RESULT(no)
+else
+   AC_MSG_RESULT(yes)
+   WANT_SUBDIRS="$WANT_SUBDIRS adfs"
+fi
+
 
 #
 # Build NSAPI module?
@@ -279,6 +294,41 @@ if test ! "$WANT_NSAPI" = "no" ; then
     WANT_SUBDIRS="$WANT_SUBDIRS nsapi_shib"
 fi
 
+
+#
+# Build FastCGI support?
+#
+AC_MSG_CHECKING(for FastCGI support)
+AC_ARG_WITH(fastcgi,
+    AC_HELP_STRING([--with-fastcgi=DIR], [Build FastCGI support]),
+    [WANT_FASTCGI=$withval],[WANT_FASTCGI=no])
+AC_MSG_RESULT($WANT_FASTCGI)
+
+if test "$WANT_FASTCGI" != "no"; then
+    if test "$WANT_FASTCGI" != "yes"; then
+        if test x_$WANT_FASTCGI != x_/usr; then
+            FASTCGI_INCLUDE="-I$WANT_FASTCGI/include"
+            FASTCGI_LDFLAGS="-L$WANT_FASTCGI/lib"
+        fi
+    fi
+    AC_CHECK_HEADER([fcgio.h],,
+        AC_MSG_ERROR([unable to find FastCGI header files]))
+    FASTCGI_LIBS="-lfcgi -lfcgi++"
+fi
+
+AC_SUBST(FASTCGI_INCLUDE)
+AC_SUBST(FASTCGI_LDFLAGS)
+AC_SUBST(FASTCGI_LIBS)
+
+# always output the Makefile, even if you don't use it
+AC_CONFIG_FILES([fastcgi/Makefile])
+AM_CONDITIONAL(BUILD_FASTCGI,test ! "$WANT_FASTCGI" = "no")
+
+if test ! "$WANT_FASTCGI" = "no" ; then
+    WANT_SUBDIRS="$WANT_SUBDIRS fastcgi"
+fi
+
+
 #
 # If no --enable-apache-xx specified 
 # find a default and fake the specific parameters
@@ -313,7 +363,7 @@ if test "$need_default" = "yes"; then
   # ask the daemon for the version and set parameters
   AC_MSG_CHECKING(default apache version)
   httpd="`$xs -q SBINDIR`/`$xs -q TARGET`"
-  if test "x$httpd" != "x"; then
+  if test "x$httpd" != "x" && test -f $httpd ; then
      v=`$httpd -v|$SED -n -e 's/.*Apache\/\.*//p'`
      case $v in
        1.3*)   [enable_apache_13]=yes