]> git.ipfire.org Git - thirdparty/cups.git/blame - config-scripts/cups-gssapi.m4
Merge changes from CUPS 1.5svn-r9763.
[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"
eac3a0a0
MS
31 AC_MSG_CHECKING(for GSS framework)
32 if test -d /System/Library/Frameworks/GSS.framework; then
33 AC_MSG_RESULT(yes)
34 LIBGSSAPI="$LIBGSSAPI -weak_framework GSS"
35 else
36 AC_MSG_RESULT(no)
37 fi
0a682745
MS
38 ;;
39 SunOS*)
40 # Solaris has a non-standard krb5-config, don't use it!
41 AC_CHECK_LIB(gss, gss_display_status,
42 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
eac3a0a0
MS
43 CFLAGS="`$KRB5CONFIG --cflags` $CFLAGS"
44 CPPFLAGS="`$KRB5CONFIG --cflags` $CPPFLAGS"
0a682745
MS
45 LIBGSSAPI="-lgss `$KRB5CONFIG --libs`")
46 ;;
47 *)
48 # Other platforms just ask for GSSAPI
eac3a0a0
MS
49 CFLAGS="`$KRB5CONFIG --cflags gssapi` $CFLAGS"
50 CPPFLAGS="`$KRB5CONFIG --cflags gssapi` $CPPFLAGS"
0a682745
MS
51 LIBGSSAPI="`$KRB5CONFIG --libs gssapi`"
52 ;;
53 esac
f7deaa1a 54 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
55 else
09a101d6 56 # Check for vendor-specific implementations...
57 case "$uname" in
58 HP-UX*)
59 AC_CHECK_LIB(gss, gss_display_status,
60 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
61 LIBGSSAPI="-lgss -lgssapi_krb5")
62 ;;
63 SunOS*)
64 AC_CHECK_LIB(gss, gss_display_status,
65 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
66 LIBGSSAPI="-lgss")
67 ;;
68 esac
f7deaa1a 69 fi
70
71 if test "x$LIBGSSAPI" != x; then
72 AC_CHECK_HEADER(krb5.h, AC_DEFINE(HAVE_KRB5_H))
eac3a0a0
MS
73 if test -d /System/Library/Frameworks/GSS.framework; then
74 AC_CHECK_HEADER(GSS/gssapi.h, AC_DEFINE(HAVE_GSS_GSSAPI_H))
75 AC_CHECK_HEADER(GSS/gssapi_generic.h, AC_DEFINE(HAVE_GSSAPI_GENERIC_H))
76 AC_CHECK_HEADER(GSS/gssapi_krb5.h, AC_DEFINE(HAVE_GSSAPI_KRB5_H))
77 AC_CHECK_HEADER(GSS/gssapi_spi.h, AC_DEFINE(HAVE_GSS_GSSAPI_SPI_H))
78 else
79 AC_CHECK_HEADER(gssapi.h, AC_DEFINE(HAVE_GSSAPI_H))
80 AC_CHECK_HEADER(gssapi/gssapi.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_H))
81 AC_CHECK_HEADER(gssapi/gssapi_generic.h, AC_DEFINE(HAVE_GSSAPI_GENERIC_H))
82 AC_CHECK_HEADER(gssapi/gssapi_krb5.h, AC_DEFINE(HAVE_GSSAPI_KRB5_H))
83 fi
f7deaa1a 84
85 SAVELIBS="$LIBS"
86 LIBS="$LIBS $LIBGSSAPI"
87
eac3a0a0
MS
88 AC_CHECK_FUNC(__ApplePrivate_gss_acquire_cred_ex_f,
89 AC_DEFINE(HAVE_GSS_ACQUIRE_CRED_EX_F))
f7deaa1a 90
91 AC_MSG_CHECKING(for GSS_C_NT_HOSTBASED_SERVICE)
eac3a0a0 92 if test x$ac_cv_header_gssapi_gssapi_h = xyes; then
f7deaa1a 93 AC_TRY_COMPILE([ #include <gssapi/gssapi.h> ],
94 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
95 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
96 AC_MSG_RESULT(yes),
97 AC_MSG_RESULT(no))
eac3a0a0
MS
98 elif test x$ac_cv_header_gss_gssapi_h = xyes; then
99 AC_TRY_COMPILE([ #include <GSS/gssapi.h> ],
100 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
101 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
102 AC_MSG_RESULT(yes),
103 AC_MSG_RESULT(no))
f7deaa1a 104 else
105 AC_TRY_COMPILE([ #include <gssapi.h> ],
106 [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
107 AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
108 AC_MSG_RESULT(yes),
109 AC_MSG_RESULT(no))
110 fi
111
112 LIBS="$SAVELIBS"
f7deaa1a 113 fi
114fi
115
116dnl Default GSS service name...
117AC_ARG_WITH(gssservicename, [ --with-gssservicename set default gss service name],
118 default_gssservicename="$withval",
119 default_gssservicename="default")
120
121if test x$default_gssservicename != xno; then
122 if test "x$default_gssservicename" = "xdefault"; then
68b10830 123 CUPS_DEFAULT_GSSSERVICENAME="host"
f7deaa1a 124 else
125 CUPS_DEFAULT_GSSSERVICENAME="$default_gssservicename"
126 fi
127else
128 CUPS_DEFAULT_GSSSERVICENAME=""
129fi
130
f7deaa1a 131AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")
132
133dnl
134dnl End of "$Id$".
135dnl