1dnl Autoconf macro to check for kerberos 2 3AC_DEFUN([NETATALK_GSSAPI_CHECK], 4[ 5 FOUND_GSSAPI=no 6 GSSAPI_LIBS="" 7 GSSAPI_CFLAGS="" 8 GSSAPI_LDFLAGS="" 9 save_CFLAGS="$CFLAGS" 10 save_LDFLAGS="$LDFLAGS" 11 save_LIBS="$LIBS" 12 13 AC_ARG_WITH(gssapi, 14 [ --with-gssapi[[=PATH]] path to GSSAPI for Kerberos V UAM [[auto]]], 15 [compilegssapi=$withval], 16 [compilegssapi=auto] 17 ) 18 19 if test x"$compilegssapi" != x"no" ; then 20 if test "x$compilegssapi" != "xyes" -a "x$compilegssapi" != "xauto" ; then 21 export CFLAGS="$CFLAGS -I$withval/include" 22 export LDFLAGS="$LDFLAGS -L$withval/${atalk_libname}" 23 AC_MSG_NOTICE([checking for GSSAPI support in $compilegssapi]) 24 fi 25 26 if test x"$compilegssapi" = x"yes" -o x"$compilegssapi" = x"auto" ; then 27 # check for krb5-config from recent MIT and Heimdal kerberos 5 28 AC_PATH_PROG(KRB5_CONFIG, krb5-config) 29 AC_MSG_CHECKING([for working krb5-config that takes --libs gssapi]) 30 31 if test -x "$KRB5_CONFIG" ; then 32 TEMP="`$KRB5_CONFIG --libs gssapi`" 33 if test $? -eq 0 ; then 34 GSSAPI_CFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`" 35 GSSAPI_LIBS="$TEMP" 36 FOUND_GSSAPI=yes 37 AC_MSG_RESULT(yes) 38 else 39 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy) 40 fi 41 else 42 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy) 43 fi 44 fi 45 fi 46 47 if test x"$compilegssapi" != x"no" -a x"$FOUND_GSSAPI" = x"no" ; then 48 # check for gssapi headers 49 gss_headers_found=no 50 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h gssapi/gssapi_krb5.h, 51 [gss_headers_found=yes]) 52 if test x"$gss_headers_found" = x"no" ; then 53 AC_MSG_ERROR([GSSAPI installation not found, headers missing]) 54 fi 55 # check for libs 56 AC_SEARCH_LIBS(gss_display_status, [gss gssapi gssapi_krb5]) 57 if test x"$ac_cv_search_gss_display_status" = x"no" ; then 58 AC_MSG_ERROR([GSSAPI installation not found, library missing]) 59 fi 60 GSSAPI_CFLAGS="$CFLAGS" 61 GSSAPI_LIBS="$LIBS" 62 FOUND_GSSAPI=yes 63 fi 64 65 if test x"$FOUND_GSSAPI" = x"yes" ; then 66 # check for functions 67 export CFLAGS="$CFLAGS $GSSAPI_CFLAGS" 68 export LIBS="$LIBS $GSSAPI_LIBS" 69 AC_CHECK_FUNC(gss_acquire_cred, [], [AC_MSG_ERROR([GSSAPI: required function gss_acquire_cred missing])]) 70 71 # Heimdal/MIT compatibility fix 72 if test "$ac_cv_header_gssapi_h" = "yes" ; then 73 AC_EGREP_HEADER( 74 GSS_C_NT_HOSTBASED_SERVICE, 75 gssapi.h, 76 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE, 1, [Wheter GSS_C_NT_HOSTBASED_SERVICE is in gssapi.h]) 77 ) 78 else 79 AC_EGREP_HEADER( 80 GSS_C_NT_HOSTBASED_SERVICE, 81 gssapi/gssapi.h, 82 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE, 1, [Wheter GSS_C_NT_HOSTBASED_SERVICE is in gssapi.h]) 83 ) 84 fi 85 86 AC_DEFINE(HAVE_GSSAPI, 1, [Whether to enable GSSAPI support]) 87 if test x"$ac_cv_func_gss_acquire_cred" = x"yes" ; then 88 ifelse([$1], , :, [$1]) 89 else 90 ifelse([$2], , :, [$2]) 91 fi 92 fi 93 94 AC_SUBST(GSSAPI_LIBS) 95 AC_SUBST(GSSAPI_CFLAGS) 96 AC_SUBST(GSSAPI_LDFLAGS) 97 98 export LIBS="$save_LIBS" 99 export CFLAGS="$save_CFLAGS" 100 export LDFLAGS="$save_LDFLAGS" 101]) 102