1 /* This program is free software; you can redistribute it and/or modify
2 it under the terms of the GNU General Public License as published by
3 the Free Software Foundation; either version 2, or (at your option)
6 This program is distributed in the hope that it will be useful,
7 but WITHOUT ANY WARRANTY; without even the implied warranty of
8 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 GNU General Public License for more details. */
11 AC_DEFUN([ACX_WITH_GSSAPI],[
13 # Use --with-gssapi[=DIR] to enable GSSAPI support.
15 # defaults to enabled with DIR in default list below
17 # Search for /SUNHEA/ and read the comments about this default below.
23 [GSSAPI directory (default autoselects)]), ,
27 dnl FIXME - cache withval and obliterate later cache values when options change
30 # Try to locate a GSSAPI installation if no location was specified, assuming
31 # GSSAPI was enabled (the default).
33 if test -n "$acx_gssapi_cv_gssapi"; then
34 # Granted, this is a slightly ugly way to print this info, but the
35 # AC_CHECK_HEADER used in the search for a GSSAPI installation makes using
36 # AC_CACHE_CHECK worse
37 AC_MSG_CHECKING([for GSSAPI])
39 AC_CACHE_VAL([acx_gssapi_cv_gssapi], [
40 if test x$with_gssapi = xyes; then
41 # --with but no location specified
42 # assume a gssapi.h or gssapi/gssapi.h locates our install.
44 # This isn't always strictly true. For instance Solaris 7's SUNHEA (header)
45 # package installs gssapi.h whether or not the necessary libraries are
46 # installed. I'm still not sure whether to consider this a bug. The long
47 # way around is to not consider GSSPAI installed unless gss_import_name is
48 # found, but that brings up a lot of other hassles, like continuing to let
49 # gcc & ld generate the error messages when the user uses --with-gssapi=dir
50 # as a debugging aid. The short way around is to disable GSSAPI by default,
51 # but I think Sun users have been faced with this for awhile and I haven't
52 # heard many complaints.
53 acx_gssapi_save_CPPFLAGS=$CPPFLAGS
54 for acx_gssapi_cv_gssapi in yes /usr/kerberos /usr/cygnus/kerbnet no; do
55 if test x$acx_gssapi_cv_gssapi = xno; then
58 if test x$acx_gssapi_cv_gssapi = xyes; then
59 AC_MSG_CHECKING([for GSSAPI])
62 CPPFLAGS="$acx_gssapi_save_CPPFLAGS -I$acx_gssapi_cv_gssapi/include"
63 AC_MSG_CHECKING([for GSSAPI in $acx_gssapi_cv_gssapi])
66 unset ac_cv_header_gssapi_h
67 unset ac_cv_header_gssapi_gssapi_h
68 unset ac_cv_header_krb5_h
69 AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h krb5.h])
70 if (test "$ac_cv_header_gssapi_h" = yes ||
71 test "$ac_cv_header_gssapi_gssapi_h" = yes) &&
72 test "$ac_cv_header_krb5_h" = yes; then
76 CPPFLAGS=$acx_gssapi_save_CPPFLAGS
78 acx_gssapi_cv_gssapi=$with_gssapi
80 AC_MSG_CHECKING([for GSSAPI])
82 AC_MSG_RESULT([$acx_gssapi_cv_gssapi])
85 # Set up GSSAPI includes for later use. We don't bother to check for
86 # $acx_gssapi_cv_gssapi=no here since that will be caught later.
88 if test x$acx_gssapi_cv_gssapi = xyes; then
89 # no special includes necessary
92 # GSSAPI at $acx_gssapi_cv_gssapi (could be 'no')
93 GSSAPI_INCLUDES=" -I$acx_gssapi_cv_gssapi/include"
97 # Get the rest of the information CVS needs to compile with GSSAPI support
99 if test x$acx_gssapi_cv_gssapi != xno; then
100 # define HAVE_GSSAPI and set up the includes
101 AC_DEFINE([HAVE_GSSAPI], ,
102 [Define if you have GSSAPI with Kerberos version 5 available.])
103 includeopt=$includeopt$GSSAPI_INCLUDES
105 # locate any other headers
106 acx_gssapi_save_CPPFLAGS=$CPPFLAGS
107 CPPFLAGS=$CPPFLAGS$GSSAPI_INCLUDES
108 dnl We don't use HAVE_KRB5_H anywhere, but including it here might make it
109 dnl easier to spot errors by reading configure output
110 AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h krb5.h])
111 # And look through them for GSS_C_NT_HOSTBASED_SERVICE or its alternatives
113 [for GSS_C_NT_HOSTBASED_SERVICE],
114 [acx_gssapi_cv_gss_c_nt_hostbased_service],
116 acx_gssapi_cv_gss_c_nt_hostbased_service=no
117 if test "$ac_cv_header_gssapi_h" = "yes"; then
119 [GSS_C_NT_HOSTBASED_SERVICE], [gssapi.h],
120 [acx_gssapi_cv_gss_c_nt_hostbased_service=yes],
123 [gss_nt_service_name], [gssapi.h],
124 [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name])
127 if test $acx_gssapi_cv_gss_c_nt_hostbased_service = no &&
128 test "$ac_cv_header_gssapi_gssapi_h" = "yes"; then
130 [GSS_C_NT_HOSTBASED_SERVICE], [gssapi/gssapi.h],
131 [acx_gssapi_cv_gss_c_nt_hostbased_service=yes],
133 AC_EGREP_HEADER([gss_nt_service_name], [gssapi/gssapi.h],
134 [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name])
137 if test $acx_gssapi_cv_gss_c_nt_hostbased_service = no &&
138 test "$ac_cv_header_gssapi_gssapi_generic_h" = "yes"; then
140 [GSS_C_NT_HOSTBASED_SERVICE], [gssapi/gssapi_generic.h],
141 [acx_gssapi_cv_gss_c_nt_hostbased_service=yes],
144 [gss_nt_service_name], [gssapi/gssapi_generic.h],
145 [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name])
149 if test $acx_gssapi_cv_gss_c_nt_hostbased_service != yes &&
150 test $acx_gssapi_cv_gss_c_nt_hostbased_service != no; then
151 # don't define for yes since that means it already means something and
152 # don't define for no since we'd rather the compiler catch the error
153 # It's debatable whether we'd prefer that the compiler catch the error
154 # - it seems our estranged developer is more likely to be familiar with
155 # the intricacies of the compiler than with those of autoconf, but by
156 # the same token, maybe we'd rather alert them to the fact that most
157 # of the support they need to fix the problem is installed if they can
158 # simply locate the appropriate symbol.
160 [GSS_C_NT_HOSTBASED_SERVICE],
161 [$acx_gssapi_cv_gss_c_nt_hostbased_service],
162 [Define to an alternative value if GSS_C_NT_HOSTBASED_SERVICE isn't defined
163 in the gssapi.h header file. MIT Kerberos 1.2.1 requires this. Only relevant
167 CPPFLAGS=$acx_gssapi_save_CPPFLAGS
169 # Expect the libs to be installed parallel to the headers
171 # We could try once with and once without, but I'm not sure it's worth the
173 if test x$acx_gssapi_cv_gssapi != xyes; then
174 if test -z "$LIBS"; then
175 LIBS="-L$acx_gssapi_cv_gssapi/lib"
177 LIBS="-L$acx_gssapi_cv_gssapi/lib $LIBS"
181 dnl What happens if we want to enable, say, krb5 and some other GSSAPI
182 dnl authentication method at the same time?
184 # Some of the order below is particular due to library dependencies
188 # des Heimdal K 0.3d, but Heimdal seems to be set up such
189 # that it could have been installed from elsewhere.
191 AC_SEARCH_LIBS([des_set_odd_parity], [des])
194 # com_err Heimdal K 0.3d
196 # com_err MIT K5 v1.2.2-beta1
198 AC_SEARCH_LIBS([com_err], [com_err])
201 # asn1 Heimdal K 0.3d -lcom_err
203 AC_SEARCH_LIBS([initialize_asn1_error_table_r], [asn1])
206 # resolv required, but not installed by Heimdal K 0.3d
208 # resolv MIT K5 1.2.2-beta1
211 AC_SEARCH_LIBS([__dn_expand], [resolv])
214 # crypto Need by gssapi under FreeBSD 5.4
216 AC_SEARCH_LIBS([RC4], [crypto])
219 # crypt Needed by roken under FreeBSD 4.6.
221 AC_SEARCH_LIBS([crypt], [crypt])
224 # roken Heimdal K 0.3d -lresolv
225 # roken FreeBSD 4.6 -lcrypt
227 AC_SEARCH_LIBS([roken_gethostbyaddr], [roken])
230 # k5crypto MIT K5 v1.2.2-beta1
232 AC_SEARCH_LIBS([valid_enctype], [k5crypto])
235 # gen ? ? ? Needed on Irix 5.3 with some
236 # Irix 5.3 version of Kerberos. I'm not
237 # sure which since Irix didn't
238 # get any testing this time
239 # around. Original comment:
241 # This is necessary on Irix 5.3, in order to link against libkrb5 --
242 # there, an_to_ln.o refers to things defined only in -lgen.
244 AC_SEARCH_LIBS([compile], [gen])
247 # krb5 ? ? ? -lgen -l???
252 # krb5 MIT K5 v1.2.2-beta1 -lcrypto -lcom_err
255 # krb5 MIT K5 v1.2.2-beta1 -lcrypto -lcom_err -lresolv
257 # krb5 Heimdal K 0.3d -lasn1 -lroken -ldes
259 AC_SEARCH_LIBS([krb5_free_context], [krb5])
262 # gss This may be the only lib needed under HP-UX, so find it
265 # gssapi_krb5 Only lib needed with MIT K5 v1.2.1, so find it first in
266 # order to prefer MIT Kerberos. If both MIT & Heimdal
267 # Kerberos are installed and in the path, this will leave
268 # some of the libraries above in LIBS unnecessarily, but
269 # noone would ever do that, right?
273 # gssapi_krb5 MIT K5 v1.2.2-beta1 -lkrb5
275 # gssapi Heimdal K 0.3d -lkrb5
277 AC_SEARCH_LIBS([gss_import_name], [gss gssapi_krb5 gssapi])
283 # size_max.m4 serial 2
284 dnl Copyright (C) 2003 Free Software Foundation, Inc.
285 dnl This file is free software, distributed under the terms of the GNU
286 dnl General Public License. As a special exception to the GNU General
287 dnl Public License, this file may be distributed as part of a program
288 dnl that contains a configuration script generated by Autoconf, under
289 dnl the same distribution terms as the rest of that program.
291 dnl From Bruno Haible.
293 AC_DEFUN([gl_SIZE_MAX],
295 AC_CHECK_HEADERS(stdint.h)
296 dnl First test whether the system already has SIZE_MAX.
297 AC_MSG_CHECKING([for SIZE_MAX])
299 AC_EGREP_CPP([Found it], [
308 if test -z "$result"; then
309 dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
310 dnl than the type 'unsigned long'.
311 dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr',
312 dnl which is guaranteed to work from LONG_MIN to LONG_MAX.
313 _AC_COMPUTE_INT([~(size_t)0 / 10], res_hi,
314 [#include <stddef.h>], result=?)
315 _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo,
316 [#include <stddef.h>], result=?)
317 _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint,
318 [#include <stddef.h>], result=?)
319 if test "$fits_in_uint" = 1; then
320 dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
321 dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
322 AC_TRY_COMPILE([#include <stddef.h>
324 extern unsigned long foo;
325 ], [], fits_in_uint=0)
327 if test -z "$result"; then
328 if test "$fits_in_uint" = 1; then
329 result="$res_hi$res_lo"U
331 result="$res_hi$res_lo"UL
334 dnl Shouldn't happen, but who knows...
338 AC_MSG_RESULT([$result])
339 if test "$result" != yes; then
340 AC_DEFINE_UNQUOTED([SIZE_MAX], [$result],
341 [Define as the maximum value of type 'size_t', if the system doesn't define it.])
348 dnl Copyright (C) 2003-2004 Free Software Foundation, Inc.
349 dnl This file is free software, distributed under the terms of the GNU
350 dnl General Public License. As a special exception to the GNU General
351 dnl Public License, this file may be distributed as part of a program
352 dnl that contains a configuration script generated by Autoconf, under
353 dnl the same distribution terms as the rest of that program.
357 dnl Prerequisites of lib/xsize.h.
358 AC_REQUIRE([gl_SIZE_MAX])
359 AC_REQUIRE([AC_C_INLINE])
360 AC_CHECK_HEADERS(stdint.h)