1 dnl $Id: gssapi-check.m4,v 1.2 2003-12-15 06:03:33 srittau Exp $
2 dnl Autoconf macro to check for kerberos/gssapi support
3 dnl based on samba3 configure.in
4 dnl modified for netatalk use by bfernhomberg
6 AC_DEFUN([NETATALK_GSSAPI_CHECK],
13 [ --with-gssapi[=DIR] compile Kerberos V UAM],
14 [compilegssapi=$withval],
18 if test x"$compilegssapi" != x"no"; then
20 if test "x$compilegssapi" != "xyes"; then
21 GSSAPI_CFLAGS="-I$withval/include"
22 GSSAPI_CPPFLAGS="-I$withval/include"
23 GSSAPI_LDFLAGS="-L$withval/lib"
25 AC_MSG_CHECKING([checking for GSSAPI support in])
26 AC_MSG_RESULT([$compilegssapi])
30 # Do no harm to the values of CFLAGS and LIBS while testing for
33 ac_save_CFLAGS=$CFLAGS
34 ac_save_CPPFLAGS=$CPPFLAGS
35 ac_save_LDFLAGS=$LDFLAGS
38 if test x$FOUND_GSSAPI = x"no"; then
39 #################################################
40 # check for krb5-config from recent MIT and Heimdal kerberos 5
41 AC_PATH_PROG(KRB5_CONFIG, krb5-config)
42 AC_MSG_CHECKING(for working krb5-config)
43 if test -x "$KRB5_CONFIG"; then
44 ac_save_CFLAGS=$CFLAGS
45 CFLAGS="";export CFLAGS
46 ac_save_LDFLAGS=$LDFLAGS
47 LDFLAGS="";export LDFLAGS
48 GSSAPI_LIBS="`$KRB5_CONFIG --libs gssapi`"
49 GSSAPI_CFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`"
50 GSSAPI_CPPFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`"
51 CFLAGS=$ac_save_CFLAGS;export CFLAGS
52 LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
56 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
60 if test x$FOUND_GSSAPI = x"no"; then
61 #################################################
62 # see if this box has the SuSE location for the heimdal krb implementation
63 AC_MSG_CHECKING(for /usr/include/heimdal)
64 if test -d /usr/include/heimdal; then
65 if test -f /usr/lib/heimdal/lib/libkrb5.a; then
66 GSSAPI_CFLAGS="-I/usr/include/heimdal"
67 GSSAPI_CPPFLAGS="-I/usr/include/heimdal"
68 GSSAPI_LDFLAGS="-L/usr/lib/heimdal/lib"
72 GSSAPI_CFLAGS="-I/usr/include/heimdal"
73 GSSAPI_CPPFLAGS="-I/usr/include/heimdal"
82 if test x$FOUND_GSSAPI = x"no"; then
83 #################################################
84 # see if this box has the RedHat location for kerberos
85 AC_MSG_CHECKING(for /usr/kerberos)
86 if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
87 GSSAPI_LDFLAGS="-L/usr/kerberos/lib"
88 GSSAPI_CFLAGS="-I/usr/kerberos/include"
89 GSSAPI_CPPFLAGS="-I/usr/kerberos/include"
96 CFLAGS="$CFLAGS $GSSAPI_CFLAGS"
97 CPPFLAGS="$CPPFLAGS $GSSAPI_CPPFLAGS"
98 LDFLAGS="$LDFLAGS $GSSAPI_LDFLAGS"
102 # check for gssapi headers
105 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h gssapi/gssapi_krb5.h,[gss_headers_found=yes],[],[])
106 if test x"$gss_headers_found" = x"no"; then
107 AC_MSG_ERROR([GSSAPI installation not found, headers missing])
112 AC_CHECK_LIB(gssapi, gss_display_status)
113 AC_CHECK_LIB(gssapi_krb5, gss_display_status)
115 # check for functions
117 AC_CHECK_FUNC(gss_acquire_cred,[],[AC_MSG_ERROR([GSSAPI: required function gss_acquire_cred missing])])
119 # Heimdal/MIT compatibility fix
120 if test "$ac_cv_header_gssapi_h" = "yes"; then
121 AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE,1,[Wheter GSS_C_NT_HOSTBASED_SERVICE is in gssapi.h]))
123 AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi/gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE,1,[Wheter GSS_C_NT_HOSTBASED_SERVICE is in gssapi.h]))
127 AC_MSG_CHECKING(whether GSSAPI support is used)
128 if test x"$ac_cv_lib_gssapi_gss_display_status" = x"yes" || test x"$ac_cv_lib_gssapi_krb5_gss_display_status" = x"yes"; then
129 AC_DEFINE(HAVE_GSSAPI,1,[Whether to enable GSSAPI support])
131 GSSAPI_LIBS="$LIBS $LDLAGS"
134 AC_MSG_ERROR([GSSAPI installation not found])
139 CFLAGS="$ac_save_CFLAGS"
140 LDFLAGS="$ac_save_LDFLAGS"
141 CPPFLAGS="$ac_save_CPPFLAGS"
144 AM_CONDITIONAL(USE_GSSAPI, test x"$ac_cv_lib_gssapi_gss_display_status" = x"yes")
145 AC_SUBST(GSSAPI_LIBS)
146 AC_SUBST(GSSAPI_CFLAGS)