]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-gssapi.m4
Import changes from CUPS 1.4svn-r8704.
[thirdparty/cups.git] / config-scripts / cups-gssapi.m4
1 dnl
2 dnl "$Id$"
3 dnl
4 dnl GSSAPI/Kerberos library detection.
5 dnl
6 dnl Copyright 2007-2009 by Apple Inc.
7 dnl Copyright 2006-2007 by Easy Software Products.
8 dnl
9 dnl This file contains Kerberos support code, copyright 2006 by
10 dnl Jelmer Vernooij.
11 dnl
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/".
17 dnl
18
19 AC_ARG_ENABLE(gssapi, [ --disable-gssapi disable GSSAPI support])
20
21 LIBGSSAPI=""
22 AC_SUBST(LIBGSSAPI)
23
24 if test x$enable_gssapi != xno; then
25 AC_PATH_PROG(KRB5CONFIG, krb5-config)
26 if test "x$KRB5CONFIG" != x; then
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
47 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
48 else
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
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))
76 AC_CHECK_FUNC(krb5_cc_new_unique, AC_DEFINE(HAVE_KRB5_CC_NEW_UNIQUE))
77 AC_CHECK_FUNC(krb5_ipc_client_set_target_uid, AC_DEFINE(HAVE_KRB5_IPC_CLIENT_SET_TARGET_UID))
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
103 fi
104
105 dnl Default GSS service name...
106 AC_ARG_WITH(gssservicename, [ --with-gssservicename set default gss service name],
107 default_gssservicename="$withval",
108 default_gssservicename="default")
109
110 if test x$default_gssservicename != xno; then
111 if test "x$default_gssservicename" = "xdefault"; then
112 CUPS_DEFAULT_GSSSERVICENAME="host"
113 else
114 CUPS_DEFAULT_GSSSERVICENAME="$default_gssservicename"
115 fi
116 else
117 CUPS_DEFAULT_GSSSERVICENAME=""
118 fi
119
120 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")
121
122 dnl
123 dnl End of "$Id$".
124 dnl