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