]> arthur.barton.de Git - netatalk.git/blob - macros/gssapi-check.m4
Fix some issues with older autoconf/automake.
[netatalk.git] / macros / gssapi-check.m4
1 dnl $Id: gssapi-check.m4,v 1.1.2.3 2004-01-03 01:49:54 bfernhomberg Exp $
2 dnl Autoconf macro to check for kerberos
3
4 AC_DEFUN([NETATALK_GSSAPI_CHECK], 
5 [
6         FOUND_GSSAPI=no
7         GSSAPI_LIBS=""
8         GSSAPI_CFLAGS=""
9
10         AC_ARG_WITH(gssapi,
11                 [  --with-gssapi[[=PATH]]    path to GSSAPI for Kerberos V UAM [[auto]]],
12                 [compilegssapi=$withval],
13                 [compilegssapi=auto]
14         )
15
16         if test x"$compilegssapi" != x"no"; then
17
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/lib"
22                         FOUND_GSSAPI=yes
23                         AC_MSG_CHECKING([checking for GSSAPI support in])
24                         AC_MSG_RESULT([$compilegssapi])
25                 fi
26
27
28         # Do no harm to the values of CFLAGS and LIBS while testing for
29         # Kerberos support.
30
31                 ac_save_CFLAGS=$CFLAGS
32                 ac_save_CPPFLAGS=$CPPFLAGS
33                 ac_save_LDFLAGS=$LDFLAGS
34                 ac_save_LIBS=$LIBS
35
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
51           FOUND_GSSAPI=yes
52           AC_MSG_RESULT(yes)
53         else
54           AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
55         fi
56        fi
57
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"
67                 AC_MSG_RESULT(yes)
68                 FOUND_GSSAPI=yes
69           else
70                 GSSAPI_CFLAGS="-I/usr/include/heimdal"
71                 GSSAPI_CPPFLAGS="-I/usr/include/heimdal"
72                 AC_MSG_RESULT(yes)
73                 FOUND_GSSAPI=yes
74           fi
75         else
76           AC_MSG_RESULT(no)
77         fi
78        fi
79
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"
88       AC_MSG_RESULT(yes)
89     else
90       AC_MSG_RESULT(no)
91     fi
92   fi
93
94   CFLAGS="$CFLAGS $GSSAPI_CFLAGS"
95   CPPFLAGS="$CPPFLAGS $GSSAPI_CPPFLAGS"
96   LDFLAGS="$LDFLAGS $GSSAPI_LDFLAGS"
97                 LIBS="$GSSAPI_LIBS"
98
99
100                 # check for gssapi headers
101
102                 gss_headers_found=no
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])
106                 fi
107
108                 # check for libs
109
110                 AC_CHECK_LIB(gssapi, gss_display_status) 
111                 AC_CHECK_LIB(gssapi_krb5, gss_display_status) 
112
113                 # check for functions
114
115                 AC_CHECK_FUNC(gss_acquire_cred,[],[AC_MSG_ERROR([GSSAPI: required function gss_acquire_cred missing])])
116
117                 # Heimdal/MIT compatibility fix
118   if test "$ac_cv_header_gssapi_h" = "yes"; then
119     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]))
120   else
121     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]))
122   fi
123
124
125     AC_MSG_CHECKING(whether GSSAPI support is used)
126     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
127         AC_DEFINE(HAVE_GSSAPI,1,[Whether to enable GSSAPI support])
128         AC_MSG_RESULT([yes])
129         GSSAPI_LIBS="$LIBS $LDLAGS"
130      else
131         AC_MSG_RESULT([no])
132         if test x"$compilegssapi" = x"yes"; then
133           AC_MSG_ERROR([GSSAPI installation not found])
134         fi
135         GSSAPI_LIBS=""
136      fi
137
138   LIBS="$ac_save_LIBS"
139   CFLAGS="$ac_save_CFLAGS"
140   LDFLAGS="$ac_save_LDFLAGS"
141   CPPFLAGS="$ac_save_CPPFLAGS"
142         fi
143
144         if test x"$ac_cv_lib_gssapi_gss_display_status" = x"yes"; then
145                 ifelse([$1], , :, [$1])
146         else
147                 ifelse([$2], , :, [$2])
148         fi
149
150
151         AC_SUBST(GSSAPI_LIBS)
152         AC_SUBST(GSSAPI_CFLAGS)
153
154 ])