removed compilation warnings
[mod_auth_kerb.git] / configure.in
index ec17a99..2029216 100644 (file)
@@ -1,7 +1,7 @@
 # Process this file with autoconf to produce a configure script.
 AC_REVISION($Revision$)
 AC_PREREQ(2.57)
-AC_INIT(mod_auth_kerb, 0.5-rc6, modauthkerb-developers@lists.sourceforge.net)
+AC_INIT(mod_auth_kerb, 5.3, modauthkerb-developers@lists.sourceforge.net)
 AC_CONFIG_SRCDIR([src/mod_auth_kerb.c])
 AC_CONFIG_HEADER([config.h])
 
@@ -39,6 +39,10 @@ AC_ARG_WITH(krb5,
   AC_HELP_STRING([--with-krb5=dir],[use krb5 in dir]),
   [ with_krb5="$withval" ])
 
+if test "x$with_krb5" = "xyes" ; then
+  with_krb5=""
+fi
+
 if test "x$with_krb5" != "xno" ; then
   ac_save_CPPFLAGS="$CPPFLAGS"
   ac_save_LDFLAGS="$LDFLAGS"
@@ -61,7 +65,7 @@ if test "x$with_krb5" != "xno" ; then
      if test -n "$krb5_config_command"; then
         TMP_KRB5_CPPFLAGS=`$krb5_config_command --cflags gssapi 2>/dev/null`
      fi
-     if test -z "$TMP_KRB5_CPPFLAGS"; then
+     if test -z "$TMP_KRB5_CPPFLAGS" -a -n "with_krb5"; then
         TMP_KRB5_CPPFLAGS="-I$with_krb5/include"
      fi
      CPPFLAGS="$CPPFLAGS $TMP_KRB5_CPPFLAGS"
@@ -87,10 +91,14 @@ if test "x$with_krb5" != "xno" ; then
         LIBS="$ac_save_LIBS"
      fi
   fi
-
+  if test "x$with_krb5"="x"; then
+        tmp_lf_inc=""
+     else
+        tmp_lf_inc="-L"
+  fi
   if test -z "$KRB5_LDFLAGS"; then
      #try MIT
-     TMP_KRB5_LDFLAGS="-L$with_krb5/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err"
+     TMP_KRB5_LDFLAGS="$tmp_lf_inc$with_krb5/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err"
      LIBS="$LIBS $TMP_KRB5_LDFLAGS $LIB_resolv"
      AC_CHECK_LIB(krb5, krb5_init_context, [ KRB5_LDFLAGS="$TMP_KRB5_LDFLAGS" ])
      LIBS="$ac_save_LIBS"
@@ -98,7 +106,7 @@ if test "x$with_krb5" != "xno" ; then
 
   if test -z "$KRB5_LDFLAGS"; then
      #Try Heimdal
-     TMP_KRB5_LDFLAGS="-L$with_krb5/lib -lgssapi -lkrb5 -lasn1 -lcrypto -lroken -lcrypt"
+     TMP_KRB5_LDFLAGS="$tmp_lf_inc$with_krb5/lib -lgssapi -lkrb5 -lasn1 -lcrypto -lroken -lcrypt"
      LIBS="$LIBS $TMP_KRB5_LDFLAGS $LIB_resolv"
      AC_CHECK_LIB(krb5, krb5_init_context, [ KRB5_LDFLAGS="$TMP_KRB5_LDFLAGS" ])
      LIBS="$ac_save_LIBS"
@@ -106,7 +114,7 @@ if test "x$with_krb5" != "xno" ; then
 
   if test -z "$KRB5_LDFLAGS"; then
      #Try Heimdal on OpenBSD
-     TMP_KRB5_LDFLAGS="-L$with_krb5/lib -lgssapi -lkrb5 -lasn1 -ldes -lcrypto"
+     TMP_KRB5_LDFLAGS="$tmp_lf_inc$with_krb5/lib -lgssapi -lkrb5 -lasn1 -ldes -lcrypto"
      LIBS="$LIBS $TMP_KRB5_LDFLAGS $LIB_resolv"
      AC_CHECK_LIB(krb5, krb5_init_context, [ KRB5_LDFLAGS="$TMP_KRB5_LDFLAGS" ])
      LIBS="$ac_save_LIBS"
@@ -115,8 +123,10 @@ if test "x$with_krb5" != "xno" ; then
   if test -z "$KRB5_LDFLAGS"; then
      with_krb5=no
   else
-     with_krb5=yes
      AC_DEFINE(KRB5)
+     AC_CHECK_LIB(krb5,
+                  krb5_cc_new_unique,
+                  [ AC_DEFINE(HAVE_KRB5_CC_NEW_UNIQUE) ])
 
      # check for Heimdal
      have_heimdal=""
@@ -132,25 +142,64 @@ if test "x$with_krb5" != "xno" ; then
      CFLAGS="$ac_save_CFLAGS"
 
 # If SPNEGO is supported by the gssapi libraries, we shouln't build our support.
-# SPNEGO is supported as of Heimdal 0.7, don't know about MIT.
+# SPNEGO is supported as of Heimdal 0.7, and MIT 1.5.
      gssapi_supports_spnego=""
      AC_MSG_CHECKING(whether the GSSAPI libraries support SPNEGO)
-     # Invent some better test
-     if test "$have_heimdal" = yes; then
-       ac_save_CFLAGS="$CFLAGS"
-       CFLAGS="$KRB5_CPPFLAGS"
-       AC_TRY_COMPILE([#include <gssapi.h>],
-                      [ gss_OID oid = GSS_SPNEGO_MECHANISM; ],
-                      [ AC_MSG_RESULT(yes)
-                        AC_DEFINE(GSSAPI_SUPPORTS_SPNEGO)
-                        gssapi_supports_spnego=yes ],
-                      [ AC_MSG_RESULT(no) ])
-       CFLAGS="$ac_save_CFLAGS"
-     else
-       AC_MSG_RESULT(no)
+
+     ac_save_CFLAGS="$CFLAGS"
+     CFLAGS="$KRB5_CPPFLAGS"
+     ac_save_LDFLAGS="$LDFLAGS"
+     if test -n "$with_krb5"; then
+        LDFLAGS="$KRB5_LDFLAGS -Wl,-rpath -Wl,$with_krb5/lib"
+     else 
+        LDFLAGS="$KRB5_LDFLAGS"
      fi
+     AC_TRY_RUN([
+#include <string.h>
+#include <krb5.h>
+#ifdef HEIMDAL
+#include <gssapi.h>
+#else
+#include <gssapi/gssapi.h>
+#endif
+int main(int argc, char** argv)
+{
+       OM_uint32 major_status, minor_status;
+       gss_OID_set mech_set;
+       gss_OID_desc spnego_oid_desc = {6, (void *)"\x2b\x06\x01\x05\x05\x02"};
+       int SPNEGO = 0;
+                                                                               
+       major_status = gss_indicate_mechs(&minor_status, &mech_set);
+       if (GSS_ERROR(major_status))
+               return 1;
+       else {
+               unsigned int i;
+               for (i=0; i < mech_set->count && !SPNEGO; i++) {
+                       gss_OID tmp_oid = &mech_set->elements[i];
+                      if (tmp_oid->length == spnego_oid_desc.length &&
+                           !memcmp(tmp_oid->elements, spnego_oid_desc.elements, 
+                                   tmp_oid->length)) {
+                               SPNEGO = 1;
+                               break;
+                       }
+               }
+               gss_release_oid_set(&minor_status, &mech_set);
+               return (!SPNEGO);
+       }
+}],
+                [ if test $? -eq 0; then 
+                     AC_MSG_RESULT(yes)
+                     AC_DEFINE(GSSAPI_SUPPORTS_SPNEGO)
+                     gssapi_supports_spnego=yes 
+                  else
+                     AC_MSG_RESULT(no)
+                  fi],
+                [AC_MSG_RESULT(no)])
+
+     CFLAGS="$ac_save_CFLAGS"
+     LDFLAGS="$ac_save_LDFLAGS"
 
-     if test -z "gssapi_supports_spnego"; then
+     if test -z "$gssapi_supports_spnego"; then
        if test -n "$have_heimdal"; then SPNEGO_SRCS="\
                spnegokrb5/asn1_MechType.c         \
                spnegokrb5/asn1_MechTypeList.c     \
@@ -195,6 +244,10 @@ AC_ARG_WITH(krb4,
   AC_HELP_STRING([--with-krb4=dir], [use krb4 in dir]),
   [ with_krb4="$withval" ])
 
+if test "x$with_krb4" = "xyes" ; then
+  with_krb4=""
+fi
+
 if test "x$with_krb4" != "xno"; then
   AC_MSG_CHECKING([for Kerberos4 installation])
   if test "x$with_krb4" != "x"; then
@@ -281,7 +334,10 @@ AC_ARG_WITH(apache,
 
 AC_PATH_PROG([APXS], [apxs], [], [$with_apache/bin:$with_apache/sbin:$PATH])
 if test -z "$APXS"; then
-   AC_MSG_ERROR([failed to find apache apxs executable])
+   AC_PATH_PROG([APXS], [apxs2], [], [$with_apache/bin:$with_apache/sbin:$PATH])
+   if test -z "$APXS"; then
+      AC_MSG_ERROR([failed to find apache apxs executable])
+   fi
 fi
 AC_SUBST(APXS)