]> git.ipfire.org Git - thirdparty/cups.git/blame - config-scripts/cups-gssapi.m4
Merge changes from CUPS 1.4svn-r8639.
[thirdparty/cups.git] / config-scripts / cups-gssapi.m4
CommitLineData
f7deaa1a 1dnl
2dnl "$Id$"
3dnl
4dnl GSSAPI/Kerberos library detection.
5dnl
bf3816c7 6dnl Copyright 2007-2009 by Apple Inc.
f7deaa1a 7dnl Copyright 2006-2007 by Easy Software Products.
8dnl
9dnl This file contains Kerberos support code, copyright 2006 by
10dnl Jelmer Vernooij.
11dnl
12dnl These coded instructions, statements, and computer programs are the
bc44d920 13dnl property of Apple Inc. and are protected by Federal copyright
14dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
15dnl which should have been included with this file. If this file is
16dnl file is missing or damaged, see the license at "http://www.cups.org/".
f7deaa1a 17dnl
18
bf3816c7 19AC_ARG_ENABLE(gssapi, [ --disable-gssapi disable GSSAPI support])
f7deaa1a 20
21LIBGSSAPI=""
e07d4801 22AC_SUBST(LIBGSSAPI)
f7deaa1a 23
24if test x$enable_gssapi != xno; then
25 AC_PATH_PROG(KRB5CONFIG, krb5-config)
26 if test "x$KRB5CONFIG" != x; then
0a682745
MS
27 case "$uname" in
28 Darwin)
29 # Mac OS X weak-links to the Kerberos framework...
30 LIBGSSAPI="-weak_framework Kerberos"
31 ;;
32 SunOS*)
33 # Solaris has a non-standard krb5-config, don't use it!
34 AC_CHECK_LIB(gss, gss_display_status,
35 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
36 CFLAGS="`$KRB5CONFIG --cflags` $CFLAGS"
37 CPPFLAGS="`$KRB5CONFIG --cflags` $CPPFLAGS"
38 LIBGSSAPI="-lgss `$KRB5CONFIG --libs`")
39 ;;
40 *)
41 # Other platforms just ask for GSSAPI
42 CFLAGS="`$KRB5CONFIG --cflags gssapi` $CFLAGS"
43 CPPFLAGS="`$KRB5CONFIG --cflags gssapi` $CPPFLAGS"
44 LIBGSSAPI="`$KRB5CONFIG --libs gssapi`"
45 ;;
46 esac
f7deaa1a 47 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
48 else
09a101d6 49 # Check for vendor-specific implementations...
50 case "$uname" in
51 HP-UX*)
52 AC_CHECK_LIB(gss, gss_display_status,
53 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
54 LIBGSSAPI="-lgss -lgssapi_krb5")
55 ;;
56 SunOS*)
57 AC_CHECK_LIB(gss, gss_display_status,
58 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
59 LIBGSSAPI="-lgss")
60 ;;
61 esac
f7deaa1a 62 fi
63
64 if test "x$LIBGSSAPI" != x; then
65 AC_CHECK_HEADER(krb5.h, AC_DEFINE(HAVE_KRB5_H))
66 AC_CHECK_HEADER(gssapi.h, AC_DEFINE(HAVE_GSSAPI_H))
67 AC_CHECK_HEADER(gssapi/gssapi.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_H))
68 AC_CHECK_HEADER(gssapi/gssapi_generic.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_GENERIC_H))
69 AC_CHECK_HEADER(gssapi/gssapi_krb5.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_KRB5_H))
70
71 SAVELIBS="$LIBS"
72 LIBS="$LIBS $LIBGSSAPI"
73
74 AC_CHECK_FUNC(gsskrb5_register_acceptor_identity,
75 AC_DEFINE(HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY))
c24d2134 76 AC_CHECK_FUNC(krb5_cc_new_unique, AC_DEFINE(HAVE_KRB5_CC_NEW_UNIQUE))
e07d4801 77 AC_CHECK_FUNC(krb5_ipc_client_set_target_uid, AC_DEFINE(HAVE_KRB5_IPC_CLIENT_SET_TARGET_UID))
f7deaa1a 78
79 AC_MSG_CHECKING(for GSS_C_NT_HOSTBASED_SERVICE)
80 if test $ac_cv_header_gssapi_gssapi_h = yes; then
81 AC_TRY_COMPILE([ #include <gssapi/gssapi.h> ],
82 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
83 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
84 AC_MSG_RESULT(yes),
85 AC_MSG_RESULT(no))
86 else
87 AC_TRY_COMPILE([ #include <gssapi.h> ],
88 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
89 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
90 AC_MSG_RESULT(yes),
91 AC_MSG_RESULT(no))
92 fi
93
94 LIBS="$SAVELIBS"
95
96 AC_MSG_CHECKING(for Heimdal Kerberos)
97 AC_TRY_COMPILE([ #include <krb5.h> ],
98 [ char *tmp = heimdal_version; ],
99 AC_DEFINE(HAVE_HEIMDAL)
100 AC_MSG_RESULT(yes),
101 AC_MSG_RESULT(no))
102 fi
103fi
104
105dnl Default GSS service name...
106AC_ARG_WITH(gssservicename, [ --with-gssservicename set default gss service name],
107 default_gssservicename="$withval",
108 default_gssservicename="default")
109
110if test x$default_gssservicename != xno; then
111 if test "x$default_gssservicename" = "xdefault"; then
bc44d920 112 CUPS_DEFAULT_GSSSERVICENAME="ipp"
f7deaa1a 113 else
114 CUPS_DEFAULT_GSSSERVICENAME="$default_gssservicename"
115 fi
116else
117 CUPS_DEFAULT_GSSSERVICENAME=""
118fi
119
f7deaa1a 120AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")
121
122dnl
123dnl End of "$Id$".
124dnl