]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-gssapi.m4
Load cups into easysw/current.
[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 2006-2007 by Easy Software Products.
7 dnl
8 dnl This file contains Kerberos support code, copyright 2006 by
9 dnl Jelmer Vernooij.
10 dnl
11 dnl These coded instructions, statements, and computer programs are the
12 dnl property of Easy Software Products and are protected by Federal
13 dnl copyright law. Distribution and use rights are outlined in the file
14 dnl "LICENSE.txt" which should have been included with this file. If this
15 dnl file is missing or damaged please contact Easy Software Products
16 dnl at:
17 dnl
18 dnl Attn: CUPS Licensing Information
19 dnl Easy Software Products
20 dnl 44141 Airport View Drive, Suite 204
21 dnl Hollywood, Maryland 20636 USA
22 dnl
23 dnl Voice: (301) 373-9600
24 dnl EMail: cups-info@cups.org
25 dnl WWW: http://www.cups.org
26 dnl
27
28 AC_ARG_ENABLE(gssapi, [ --enable-gssapi turn on GSSAPI support, default=yes])
29
30 LIBGSSAPI=""
31
32 if test x$enable_gssapi != xno; then
33 AC_PATH_PROG(KRB5CONFIG, krb5-config)
34 if test "x$KRB5CONFIG" != x; then
35 if test "x$uname" = "xDarwin"; then
36 # Mac OS X weak-links to the Kerberos framework...
37 LIBGSSAPI="-weak_framework Kerberos"
38 else
39 CFLAGS="`$KRB5CONFIG --cflags gssapi` $CFLAGS"
40 CPPFLAGS="`$KRB5CONFIG --cflags gssapi` $CPPFLAGS"
41 LIBGSSAPI="`$KRB5CONFIG --libs gssapi`"
42 fi
43 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
44 else
45 # Solaris provides its own GSSAPI implementation...
46 AC_CHECK_LIB(gss, gss_display_status,
47 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
48 LIBGSSAPI="-lgss")
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
64 AC_MSG_CHECKING(for GSS_C_NT_HOSTBASED_SERVICE)
65 if test $ac_cv_header_gssapi_gssapi_h = yes; then
66 AC_TRY_COMPILE([ #include <gssapi/gssapi.h> ],
67 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
68 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
69 AC_MSG_RESULT(yes),
70 AC_MSG_RESULT(no))
71 else
72 AC_TRY_COMPILE([ #include <gssapi.h> ],
73 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
74 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
75 AC_MSG_RESULT(yes),
76 AC_MSG_RESULT(no))
77 fi
78
79 LIBS="$SAVELIBS"
80
81 AC_MSG_CHECKING(for Heimdal Kerberos)
82 AC_TRY_COMPILE([ #include <krb5.h> ],
83 [ char *tmp = heimdal_version; ],
84 AC_DEFINE(HAVE_HEIMDAL)
85 AC_MSG_RESULT(yes),
86 AC_MSG_RESULT(no))
87 fi
88 fi
89
90 dnl Default GSS service name...
91 AC_ARG_WITH(gssservicename, [ --with-gssservicename set default gss service name],
92 default_gssservicename="$withval",
93 default_gssservicename="default")
94
95 if test x$default_gssservicename != xno; then
96 if test "x$default_gssservicename" = "xdefault"; then
97 CUPS_DEFAULT_GSSSERVICENAME="IPP"
98 else
99 CUPS_DEFAULT_GSSSERVICENAME="$default_gssservicename"
100 fi
101 else
102 CUPS_DEFAULT_GSSSERVICENAME=""
103 fi
104
105 AC_SUBST(LIBGSSAPI)
106 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")
107
108 dnl
109 dnl End of "$Id$".
110 dnl