Revert manifest to default one
[external/cups.git] / config-scripts / cups-gssapi.m4
1 dnl
2 dnl   "$Id: cups-gssapi.m4 10083 2011-10-19 20:21:16Z mike $"
3 dnl
4 dnl   GSSAPI/Kerberos library detection for CUPS.
5 dnl
6 dnl   Copyright 2007-2011 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, [  --disable-gssapi        disable GSSAPI support])
20
21 LIBGSSAPI=""
22 AC_SUBST(LIBGSSAPI)
23
24 if test x$enable_gssapi != xno; then
25         AC_PATH_PROG(KRB5CONFIG, krb5-config)
26         if test "x$KRB5CONFIG" != x; then
27                 case "$uname" in
28                         Darwin)
29                                 # Mac OS X weak-links to the Kerberos framework...
30                                 LIBGSSAPI="-weak_framework Kerberos"
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
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])
43                                         CFLAGS="`$KRB5CONFIG --cflags` $CFLAGS"
44                                         CPPFLAGS="`$KRB5CONFIG --cflags` $CPPFLAGS"
45                                         LIBGSSAPI="-lgss `$KRB5CONFIG --libs`")
46                                 ;;
47                         *)
48                                 # Other platforms just ask for GSSAPI
49                                 CFLAGS="`$KRB5CONFIG --cflags gssapi` $CFLAGS"
50                                 CPPFLAGS="`$KRB5CONFIG --cflags gssapi` $CPPFLAGS"
51                                 LIBGSSAPI="`$KRB5CONFIG --libs gssapi`"
52                                 ;;
53                 esac
54                 AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
55         else
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
69         fi
70
71         if test "x$LIBGSSAPI" != x; then
72                 AC_CHECK_HEADER(krb5.h, AC_DEFINE(HAVE_KRB5_H))
73                 if test -d /System/Library/Frameworks/GSS.framework; then
74                         gssdir="/System/Library/Frameworks/GSS.framework"
75                         AC_MSG_CHECKING(for GSS/gssapi.h presence)
76                         if test -f $gssdir/Headers/gssapi.h; then
77                                 AC_DEFINE(HAVE_GSS_GSSAPI_H)
78                                 AC_MSG_RESULT(yes)
79                         else
80                                 AC_MSG_RESULT(no)
81                         fi
82                         AC_MSG_CHECKING(for GSS/gssapi_generic.h presence)
83                         if test -f $gssdir/Headers/gssapi_generic.h; then
84                                 AC_DEFINE(HAVE_GSSAPI_GENERIC_H)
85                                 AC_MSG_RESULT(yes)
86                         else
87                                 AC_MSG_RESULT(no)
88                         fi
89                         AC_MSG_CHECKING(for GSS/gssapi_krb5.h presence)
90                         if test -f $gssdir/Headers/gssapi_krb5.h; then
91                                 AC_DEFINE(HAVE_GSSAPI_KRB5_H)
92                                 AC_MSG_RESULT(yes)
93                         else
94                                 AC_MSG_RESULT(no)
95                         fi
96                         AC_MSG_CHECKING(for GSS/gssapi_spi.h presence)
97                         if test -f $gssdir/PrivateHeaders/gssapi_spi.h; then
98                                 AC_MSG_RESULT(yes)
99                                 AC_MSG_CHECKING(for GSS/gssapi_spi.h usability)
100                                 if test -s $gssdir/PrivateHeaders/gssapi_spi.h; then
101                                         AC_MSG_RESULT(yes)
102                                         AC_DEFINE(HAVE_GSS_GSSAPI_SPI_H)
103                                 else
104                                         AC_MSG_RESULT(no)
105                                 fi
106                         else
107                                 AC_MSG_RESULT(no)
108                                 if test $uversion -ge 110; then
109                                         # Broken public headers in 10.7...
110                                         AC_MSG_ERROR(Run 'sudo mkdir -p $gssdir/PrivateHeaders' and 'sudo touch $gssdir/PrivateHeaders/gssapi_spi.h' to build CUPS.)
111                                 fi
112                         fi
113                 else
114                         AC_CHECK_HEADER(gssapi.h, AC_DEFINE(HAVE_GSSAPI_H))
115                         AC_CHECK_HEADER(gssapi/gssapi.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_H))
116                         AC_CHECK_HEADER(gssapi/gssapi_generic.h, AC_DEFINE(HAVE_GSSAPI_GENERIC_H))
117                         AC_CHECK_HEADER(gssapi/gssapi_krb5.h, AC_DEFINE(HAVE_GSSAPI_KRB5_H))
118                 fi
119
120                 SAVELIBS="$LIBS"
121                 LIBS="$LIBS $LIBGSSAPI"
122
123                 AC_CHECK_FUNC(__ApplePrivate_gss_acquire_cred_ex_f,
124                               AC_DEFINE(HAVE_GSS_ACQUIRE_CRED_EX_F))
125
126                 AC_MSG_CHECKING(for GSS_C_NT_HOSTBASED_SERVICE)
127                 if test x$ac_cv_header_gssapi_gssapi_h = xyes; then
128                         AC_TRY_COMPILE([ #include <gssapi/gssapi.h> ],
129                                        [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
130                                        AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
131                                        AC_MSG_RESULT(yes),
132                                        AC_MSG_RESULT(no))
133                 elif test x$ac_cv_header_gss_gssapi_h = xyes; then
134                         AC_TRY_COMPILE([ #include <GSS/gssapi.h> ],
135                                        [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
136                                        AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
137                                        AC_MSG_RESULT(yes),
138                                        AC_MSG_RESULT(no))
139                 else
140                         AC_TRY_COMPILE([ #include <gssapi.h> ],
141                                        [ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
142                                        AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
143                                        AC_MSG_RESULT(yes),
144                                        AC_MSG_RESULT(no))
145                 fi
146
147                 LIBS="$SAVELIBS"
148         fi
149 fi
150
151 dnl Default GSS service name...
152 AC_ARG_WITH(gssservicename, [  --with-gssservicename   set default gss service name],
153         default_gssservicename="$withval",
154         default_gssservicename="default")
155
156 if test x$default_gssservicename != xno; then
157         if test "x$default_gssservicename" = "xdefault"; then
158                 CUPS_DEFAULT_GSSSERVICENAME="host"
159         else
160                 CUPS_DEFAULT_GSSSERVICENAME="$default_gssservicename"
161         fi
162 else
163         CUPS_DEFAULT_GSSSERVICENAME=""
164 fi
165
166 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")
167
168 dnl
169 dnl End of "$Id: cups-gssapi.m4 10083 2011-10-19 20:21:16Z mike $".
170 dnl