]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-gssapi.m4
Merge changes from CUPS trunk, r6758.
[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 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, [ --enable-gssapi turn on GSSAPI support, default=yes])
20
21 LIBGSSAPI=""
22
23 if test x$enable_gssapi != xno; then
24 AC_PATH_PROG(KRB5CONFIG, krb5-config)
25 if test "x$KRB5CONFIG" != x; then
26 if test "x$uname" = "xDarwin"; then
27 # Mac OS X weak-links to the Kerberos framework...
28 LIBGSSAPI="-weak_framework Kerberos"
29 else
30 CFLAGS="`$KRB5CONFIG --cflags gssapi` $CFLAGS"
31 CPPFLAGS="`$KRB5CONFIG --cflags gssapi` $CPPFLAGS"
32 LIBGSSAPI="`$KRB5CONFIG --libs gssapi`"
33 fi
34 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
35 else
36 # Check for vendor-specific implementations...
37 case "$uname" in
38 HP-UX*)
39 AC_CHECK_LIB(gss, gss_display_status,
40 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
41 LIBGSSAPI="-lgss -lgssapi_krb5")
42 ;;
43 SunOS*)
44 AC_CHECK_LIB(gss, gss_display_status,
45 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
46 LIBGSSAPI="-lgss")
47 ;;
48 esac
49 fi
50
51 if test "x$LIBGSSAPI" != x; then
52 AC_CHECK_HEADER(krb5.h, AC_DEFINE(HAVE_KRB5_H))
53 AC_CHECK_HEADER(gssapi.h, AC_DEFINE(HAVE_GSSAPI_H))
54 AC_CHECK_HEADER(gssapi/gssapi.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_H))
55 AC_CHECK_HEADER(gssapi/gssapi_generic.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_GENERIC_H))
56 AC_CHECK_HEADER(gssapi/gssapi_krb5.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_KRB5_H))
57
58 SAVELIBS="$LIBS"
59 LIBS="$LIBS $LIBGSSAPI"
60
61 AC_CHECK_FUNC(gsskrb5_register_acceptor_identity,
62 AC_DEFINE(HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY))
63 AC_CHECK_FUNC(krb5_cc_new_unique, AC_DEFINE(HAVE_KRB5_CC_NEW_UNIQUE))
64
65 AC_MSG_CHECKING(for GSS_C_NT_HOSTBASED_SERVICE)
66 if test $ac_cv_header_gssapi_gssapi_h = yes; then
67 AC_TRY_COMPILE([ #include <gssapi/gssapi.h> ],
68 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
69 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
70 AC_MSG_RESULT(yes),
71 AC_MSG_RESULT(no))
72 else
73 AC_TRY_COMPILE([ #include <gssapi.h> ],
74 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
75 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
76 AC_MSG_RESULT(yes),
77 AC_MSG_RESULT(no))
78 fi
79
80 LIBS="$SAVELIBS"
81
82 AC_MSG_CHECKING(for Heimdal Kerberos)
83 AC_TRY_COMPILE([ #include <krb5.h> ],
84 [ char *tmp = heimdal_version; ],
85 AC_DEFINE(HAVE_HEIMDAL)
86 AC_MSG_RESULT(yes),
87 AC_MSG_RESULT(no))
88 fi
89 fi
90
91 dnl Default GSS service name...
92 AC_ARG_WITH(gssservicename, [ --with-gssservicename set default gss service name],
93 default_gssservicename="$withval",
94 default_gssservicename="default")
95
96 if test x$default_gssservicename != xno; then
97 if test "x$default_gssservicename" = "xdefault"; then
98 CUPS_DEFAULT_GSSSERVICENAME="ipp"
99 else
100 CUPS_DEFAULT_GSSSERVICENAME="$default_gssservicename"
101 fi
102 else
103 CUPS_DEFAULT_GSSSERVICENAME=""
104 fi
105
106 AC_SUBST(LIBGSSAPI)
107 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")
108
109 dnl
110 dnl End of "$Id$".
111 dnl