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