1 dnl $Id: gssapi-check.m4,v 1.3 2005-04-28 20:50:05 bfernhomberg Exp $
2 dnl Autoconf macro to check for kerberos
4 AC_DEFUN([NETATALK_GSSAPI_CHECK],
11 [ --with-gssapi[[=PATH]] path to GSSAPI for Kerberos V UAM [[auto]]],
12 [compilegssapi=$withval],
16 if test x"$compilegssapi" != x"no"; then
18 if test "x$compilegssapi" != "xyes" -a "x$compilegssapi" != "xauto"; then
19 GSSAPI_CFLAGS="-I$withval/include"
20 GSSAPI_CPPFLAGS="-I$withval/include"
21 GSSAPI_LDFLAGS="-L$withval/${atalk_libname}"
23 AC_MSG_CHECKING([checking for GSSAPI support in])
24 AC_MSG_RESULT([$compilegssapi])
28 # Do no harm to the values of CFLAGS and LIBS while testing for
31 ac_save_CFLAGS=$CFLAGS
32 ac_save_CPPFLAGS=$CPPFLAGS
33 ac_save_LDFLAGS=$LDFLAGS
36 if test x$FOUND_GSSAPI = x"no"; then
37 #################################################
38 # check for krb5-config from recent MIT and Heimdal kerberos 5
39 AC_PATH_PROG(KRB5_CONFIG, krb5-config)
40 AC_MSG_CHECKING(for working krb5-config)
41 if test -x "$KRB5_CONFIG"; then
42 ac_save_CFLAGS=$CFLAGS
43 CFLAGS="";export CFLAGS
44 ac_save_LDFLAGS=$LDFLAGS
45 LDFLAGS="";export LDFLAGS
46 GSSAPI_LIBS="`$KRB5_CONFIG --libs gssapi`"
47 GSSAPI_CFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`"
48 GSSAPI_CPPFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`"
49 CFLAGS=$ac_save_CFLAGS;export CFLAGS
50 LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
54 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
58 if test x$FOUND_GSSAPI = x"no"; then
59 #################################################
60 # see if this box has the SuSE location for the heimdal krb implementation
61 AC_MSG_CHECKING(for /usr/include/heimdal)
62 if test -d /usr/include/heimdal; then
63 if test -f /usr/lib/heimdal/lib/libkrb5.a; then
64 GSSAPI_CFLAGS="-I/usr/include/heimdal"
65 GSSAPI_CPPFLAGS="-I/usr/include/heimdal"
66 GSSAPI_LDFLAGS="-L/usr/lib/heimdal/lib"
70 GSSAPI_CFLAGS="-I/usr/include/heimdal"
71 GSSAPI_CPPFLAGS="-I/usr/include/heimdal"
80 if test x$FOUND_GSSAPI = x"no"; then
81 #################################################
82 # see if this box has the RedHat location for kerberos
83 AC_MSG_CHECKING(for /usr/kerberos)
84 if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
85 GSSAPI_LDFLAGS="-L/usr/kerberos/lib"
86 GSSAPI_CFLAGS="-I/usr/kerberos/include"
87 GSSAPI_CPPFLAGS="-I/usr/kerberos/include"
94 CFLAGS="$CFLAGS $GSSAPI_CFLAGS"
95 CPPFLAGS="$CPPFLAGS $GSSAPI_CPPFLAGS"
96 LDFLAGS="$LDFLAGS $GSSAPI_LDFLAGS"
97 LIBS="$LIBS $GSSAPI_LIBS"
100 # check for gssapi headers
103 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h gssapi/gssapi_krb5.h,[gss_headers_found=yes],[],[])
104 if test x"$gss_headers_found" = x"no"; then
105 AC_MSG_ERROR([GSSAPI installation not found, headers missing])
110 AC_CHECK_LIB(gssapi, gss_display_status)
111 AC_CHECK_LIB(gssapi_krb5, gss_display_status)
112 AC_CHECK_LIB(gss, gss_display_status)
114 # check for functions
116 AC_CHECK_FUNC(gss_acquire_cred,[],[AC_MSG_ERROR([GSSAPI: required function gss_acquire_cred missing])])
118 # Heimdal/MIT compatibility fix
119 if test "$ac_cv_header_gssapi_h" = "yes"; then
120 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]))
122 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]))
126 AC_MSG_CHECKING(whether GSSAPI support is used)
127 if test x"$ac_cv_func_gss_acquire_cred" = x"yes"; then
128 AC_DEFINE(HAVE_GSSAPI,1,[Whether to enable GSSAPI support])
130 GSSAPI_LIBS="$LDFLAGS $LIBS"
133 if test x"$compilegssapi" = x"yes"; then
134 AC_MSG_ERROR([GSSAPI installation not found])
140 CFLAGS="$ac_save_CFLAGS"
141 LDFLAGS="$ac_save_LDFLAGS"
142 CPPFLAGS="$ac_save_CPPFLAGS"
145 if test x"$ac_cv_func_gss_acquire_cred" = x"yes"; then
146 ifelse([$1], , :, [$1])
148 ifelse([$2], , :, [$2])
152 AC_SUBST(GSSAPI_LIBS)
153 AC_SUBST(GSSAPI_CFLAGS)