4 dnl GSSAPI/Kerberos library detection.
6 dnl Copyright 2007 by Apple Inc.
7 dnl Copyright 2006-2007 by Easy Software Products.
9 dnl This file contains Kerberos support code, copyright 2006 by
12 dnl These coded instructions, statements, and computer programs are the
13 dnl property of Apple Inc. and are protected by Federal copyright
14 dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
15 dnl which should have been included with this file. If this file is
16 dnl file is missing or damaged, see the license at "http://www.cups.org/".
19 AC_ARG_ENABLE(gssapi, [ --enable-gssapi turn on GSSAPI support, default=yes])
23 if test x$enable_gssapi != xno; then
24 AC_PATH_PROG(KRB5CONFIG, krb5-config)
25 if test "x$KRB5CONFIG" != x; then
28 # Mac OS X weak-links to the Kerberos framework...
29 LIBGSSAPI="-weak_framework Kerberos"
32 # Solaris has a non-standard krb5-config, don't use it!
33 AC_CHECK_LIB(gss, gss_display_status,
34 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
35 CFLAGS="`$KRB5CONFIG --cflags` $CFLAGS"
36 CPPFLAGS="`$KRB5CONFIG --cflags` $CPPFLAGS"
37 LIBGSSAPI="-lgss `$KRB5CONFIG --libs`")
40 # Other platforms just ask for GSSAPI
41 CFLAGS="`$KRB5CONFIG --cflags gssapi` $CFLAGS"
42 CPPFLAGS="`$KRB5CONFIG --cflags gssapi` $CPPFLAGS"
43 LIBGSSAPI="`$KRB5CONFIG --libs gssapi`"
46 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
48 # Check for vendor-specific implementations...
51 AC_CHECK_LIB(gss, gss_display_status,
52 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
53 LIBGSSAPI="-lgss -lgssapi_krb5")
56 AC_CHECK_LIB(gss, gss_display_status,
57 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
63 if test "x$LIBGSSAPI" != x; then
64 AC_CHECK_HEADER(krb5.h, AC_DEFINE(HAVE_KRB5_H))
65 AC_CHECK_HEADER(gssapi.h, AC_DEFINE(HAVE_GSSAPI_H))
66 AC_CHECK_HEADER(gssapi/gssapi.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_H))
67 AC_CHECK_HEADER(gssapi/gssapi_generic.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_GENERIC_H))
68 AC_CHECK_HEADER(gssapi/gssapi_krb5.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_KRB5_H))
71 LIBS="$LIBS $LIBGSSAPI"
73 AC_CHECK_FUNC(gsskrb5_register_acceptor_identity,
74 AC_DEFINE(HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY))
75 AC_CHECK_FUNC(krb5_cc_new_unique, AC_DEFINE(HAVE_KRB5_CC_NEW_UNIQUE))
77 AC_MSG_CHECKING(for GSS_C_NT_HOSTBASED_SERVICE)
78 if test $ac_cv_header_gssapi_gssapi_h = yes; then
79 AC_TRY_COMPILE([ #include <gssapi/gssapi.h> ],
80 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
81 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
85 AC_TRY_COMPILE([ #include <gssapi.h> ],
86 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
87 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
94 AC_MSG_CHECKING(for Heimdal Kerberos)
95 AC_TRY_COMPILE([ #include <krb5.h> ],
96 [ char *tmp = heimdal_version; ],
97 AC_DEFINE(HAVE_HEIMDAL)
103 dnl Default GSS service name...
104 AC_ARG_WITH(gssservicename, [ --with-gssservicename set default gss service name],
105 default_gssservicename="$withval",
106 default_gssservicename="default")
108 if test x$default_gssservicename != xno; then
109 if test "x$default_gssservicename" = "xdefault"; then
110 CUPS_DEFAULT_GSSSERVICENAME="ipp"
112 CUPS_DEFAULT_GSSSERVICENAME="$default_gssservicename"
115 CUPS_DEFAULT_GSSSERVICENAME=""
119 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")