Whamcloud - gitweb
LU-3953 build: configure output improvments
[fs/lustre-release.git] / lustre / autoconf / kerberos5.m4
index dfa5738..fd54549 100644 (file)
@@ -38,8 +38,8 @@ AC_DEFUN([AC_KERBEROS_V5],[
                 \( -f $dir/lib/libgssapi_krb5.a -o \
                    -f $dir/lib64/libgssapi_krb5.a -o \
                    -f $dir/lib64/libgssapi_krb5.so -o \
+                   -f $dir/lib/x86_64-linux-gnu/libgssapi_krb5.so -o \
                    -f $dir/lib/libgssapi_krb5.so \) ; then
-         AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries])
          KRBDIR="$dir"
   dnl If we are using MIT K5 1.3.1 and before, we *MUST* use the
   dnl private function (gss_krb5_ccache_name) to get correct
@@ -65,11 +65,17 @@ AC_DEFUN([AC_KERBEROS_V5],[
     fi
   done
   dnl We didn't find a usable Kerberos environment
-  if test "x$KRBDIR" = "x"; then
+  if test "x$require_krb5" = "xyes" -a "x$KRBDIR" = "x"; then
     if test "x$krb5_with" = "x"; then
-      AC_MSG_ERROR(Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=)
+      AC_MSG_ERROR([
+
+Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=
+])
     else
-      AC_MSG_ERROR(Kerberos v5 with GSS support not found at $krb5_with)
+      AC_MSG_ERROR([
+
+Kerberos v5 with GSS support not found at $krb5_with
+])
     fi
   fi
   AC_MSG_RESULT($KRBDIR)
@@ -101,9 +107,29 @@ AC_DEFUN([AC_KERBEROS_V5],[
   AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless,
     AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS)
 
+  dnl Check for krb5int_derive_key
+  AC_CHECK_LIB($gssapi_lib, krb5int_derive_key,
+    [HAVE_KRB5INT_DERIVE_KEY=1; AC_DEFINE(HAVE_KRB5INT_DERIVE_KEY, 1, [Define this if the function krb5int_derive_key is available])], ,$KRBLIBS)
+
+  dnl Check for krb5_derive_key
+  AC_CHECK_LIB($gssapi_lib, krb5_derive_key,
+    [HAVE_KRB5_DERIVE_KEY=1; AC_DEFINE(HAVE_KRB5_DERIVE_KEY, 1, [Define this if the function krb5_derive_key is available])], ,$KRBLIBS)
+
+  AS_IF([test "x$HAVE_KRB5INT_DERIVE_KEY" = "x1" -o "x$HAVE_KRB5_DERIVE_KEY" = "x1"],
+        [AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries])],
+        [KRBDIR=""; AC_MSG_WARN([
+
+Disable gss/krb5 due to missing both
+krb5int_derive_key and krb5_derive_key functions!
+])
+])
+
   dnl If they specified a directory and it didn't work, give them a warning
   if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then
-    AC_MSG_WARN(Using $KRBDIR instead of requested value of $krb5_with for Kerberos!)
+    AC_MSG_WARN([
+
+Using $KRBDIR instead of requested value of $krb5_with for Kerberos!
+])
   fi
 
   AC_SUBST([KRBDIR])