2 dnl "$Id: cups-gssapi.m4 10083 2011-10-19 20:21:16Z mike $"
4 dnl GSSAPI/Kerberos library detection for CUPS.
6 dnl Copyright 2007-2011 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, [ --disable-gssapi disable GSSAPI support])
24 if test x$enable_gssapi != xno; then
25 AC_PATH_PROG(KRB5CONFIG, krb5-config)
26 if test "x$KRB5CONFIG" != x; then
29 # Mac OS X weak-links to the Kerberos framework...
30 LIBGSSAPI="-weak_framework Kerberos"
31 AC_MSG_CHECKING(for GSS framework)
32 if test -d /System/Library/Frameworks/GSS.framework; then
34 LIBGSSAPI="$LIBGSSAPI -weak_framework GSS"
40 # Solaris has a non-standard krb5-config, don't use it!
41 AC_CHECK_LIB(gss, gss_display_status,
42 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
43 CFLAGS="`$KRB5CONFIG --cflags` $CFLAGS"
44 CPPFLAGS="`$KRB5CONFIG --cflags` $CPPFLAGS"
45 LIBGSSAPI="-lgss `$KRB5CONFIG --libs`")
48 # Other platforms just ask for GSSAPI
49 CFLAGS="`$KRB5CONFIG --cflags gssapi` $CFLAGS"
50 CPPFLAGS="`$KRB5CONFIG --cflags gssapi` $CPPFLAGS"
51 LIBGSSAPI="`$KRB5CONFIG --libs gssapi`"
54 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
56 # Check for vendor-specific implementations...
59 AC_CHECK_LIB(gss, gss_display_status,
60 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
61 LIBGSSAPI="-lgss -lgssapi_krb5")
64 AC_CHECK_LIB(gss, gss_display_status,
65 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
71 if test "x$LIBGSSAPI" != x; then
72 AC_CHECK_HEADER(krb5.h, AC_DEFINE(HAVE_KRB5_H))
73 if test -d /System/Library/Frameworks/GSS.framework; then
74 gssdir="/System/Library/Frameworks/GSS.framework"
75 AC_MSG_CHECKING(for GSS/gssapi.h presence)
76 if test -f $gssdir/Headers/gssapi.h; then
77 AC_DEFINE(HAVE_GSS_GSSAPI_H)
82 AC_MSG_CHECKING(for GSS/gssapi_generic.h presence)
83 if test -f $gssdir/Headers/gssapi_generic.h; then
84 AC_DEFINE(HAVE_GSSAPI_GENERIC_H)
89 AC_MSG_CHECKING(for GSS/gssapi_krb5.h presence)
90 if test -f $gssdir/Headers/gssapi_krb5.h; then
91 AC_DEFINE(HAVE_GSSAPI_KRB5_H)
96 AC_MSG_CHECKING(for GSS/gssapi_spi.h presence)
97 if test -f $gssdir/PrivateHeaders/gssapi_spi.h; then
99 AC_MSG_CHECKING(for GSS/gssapi_spi.h usability)
100 if test -s $gssdir/PrivateHeaders/gssapi_spi.h; then
102 AC_DEFINE(HAVE_GSS_GSSAPI_SPI_H)
108 if test $uversion -ge 110; then
109 # Broken public headers in 10.7...
110 AC_MSG_ERROR(Run 'sudo mkdir -p $gssdir/PrivateHeaders' and 'sudo touch $gssdir/PrivateHeaders/gssapi_spi.h' to build CUPS.)
114 AC_CHECK_HEADER(gssapi.h, AC_DEFINE(HAVE_GSSAPI_H))
115 AC_CHECK_HEADER(gssapi/gssapi.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_H))
116 AC_CHECK_HEADER(gssapi/gssapi_generic.h, AC_DEFINE(HAVE_GSSAPI_GENERIC_H))
117 AC_CHECK_HEADER(gssapi/gssapi_krb5.h, AC_DEFINE(HAVE_GSSAPI_KRB5_H))
121 LIBS="$LIBS $LIBGSSAPI"
123 AC_CHECK_FUNC(__ApplePrivate_gss_acquire_cred_ex_f,
124 AC_DEFINE(HAVE_GSS_ACQUIRE_CRED_EX_F))
126 AC_MSG_CHECKING(for GSS_C_NT_HOSTBASED_SERVICE)
127 if test x$ac_cv_header_gssapi_gssapi_h = xyes; then
128 AC_TRY_COMPILE([ #include <gssapi/gssapi.h> ],
129 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
130 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
133 elif test x$ac_cv_header_gss_gssapi_h = xyes; then
134 AC_TRY_COMPILE([ #include <GSS/gssapi.h> ],
135 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
136 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
140 AC_TRY_COMPILE([ #include <gssapi.h> ],
141 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
142 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
151 dnl Default GSS service name...
152 AC_ARG_WITH(gssservicename, [ --with-gssservicename set default gss service name],
153 default_gssservicename="$withval",
154 default_gssservicename="default")
156 if test x$default_gssservicename != xno; then
157 if test "x$default_gssservicename" = "xdefault"; then
158 CUPS_DEFAULT_GSSSERVICENAME="host"
160 CUPS_DEFAULT_GSSSERVICENAME="$default_gssservicename"
163 CUPS_DEFAULT_GSSSERVICENAME=""
166 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")
169 dnl End of "$Id: cups-gssapi.m4 10083 2011-10-19 20:21:16Z mike $".