]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-gssapi.m4
Fix source file header text duplication text duplication.
[thirdparty/cups.git] / config-scripts / cups-gssapi.m4
1 dnl
2 dnl GSSAPI/Kerberos library detection for CUPS.
3 dnl
4 dnl Copyright 2007-2013 by Apple Inc.
5 dnl Copyright 2006-2007 by Easy Software Products.
6 dnl
7 dnl This file contains Kerberos support code, copyright 2006 by
8 dnl Jelmer Vernooij.
9 dnl
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
14 dnl missing or damaged, see the license at "http://www.cups.org/".
15 dnl
16
17 AC_ARG_ENABLE(gssapi, [ --disable-gssapi disable GSSAPI support])
18
19 LIBGSSAPI=""
20 AC_SUBST(LIBGSSAPI)
21
22 if test x$enable_gssapi != xno; then
23 AC_PATH_TOOL(KRB5CONFIG, krb5-config)
24 if test "x$KRB5CONFIG" != x; then
25 case "$uname" in
26 Darwin)
27 # macOS weak-links to the Kerberos framework...
28 LIBGSSAPI="-weak_framework Kerberos"
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
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])
41 CFLAGS="`$KRB5CONFIG --cflags` $CFLAGS"
42 CPPFLAGS="`$KRB5CONFIG --cflags` $CPPFLAGS"
43 LIBGSSAPI="-lgss `$KRB5CONFIG --libs`")
44 ;;
45 *)
46 # Other platforms just ask for GSSAPI
47 CFLAGS="`$KRB5CONFIG --cflags gssapi` $CFLAGS"
48 CPPFLAGS="`$KRB5CONFIG --cflags gssapi` $CPPFLAGS"
49 LIBGSSAPI="`$KRB5CONFIG --libs gssapi`"
50 ;;
51 esac
52 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
53 else
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
67 fi
68
69 if test "x$LIBGSSAPI" != x; then
70 AC_CHECK_HEADER(krb5.h, AC_DEFINE(HAVE_KRB5_H))
71 if test -d /System/Library/Frameworks/GSS.framework; then
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))
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))
78 fi
79
80 SAVELIBS="$LIBS"
81 LIBS="$LIBS $LIBGSSAPI"
82
83 AC_CHECK_FUNC(__ApplePrivate_gss_acquire_cred_ex_f,
84 AC_DEFINE(HAVE_GSS_ACQUIRE_CRED_EX_F))
85
86 AC_MSG_CHECKING(for GSS_C_NT_HOSTBASED_SERVICE)
87 if test x$ac_cv_header_gssapi_gssapi_h = xyes; then
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))
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))
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"
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
118 CUPS_DEFAULT_GSSSERVICENAME="host"
119 else
120 CUPS_DEFAULT_GSSSERVICENAME="$default_gssservicename"
121 fi
122 else
123 CUPS_DEFAULT_GSSSERVICENAME=""
124 fi
125
126 AC_SUBST(CUPS_DEFAULT_GSSSERVICENAME)
127 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")