diff options
Diffstat (limited to 'contrib/cvs/acinclude.m4')
-rw-r--r-- | contrib/cvs/acinclude.m4 | 361 |
1 files changed, 361 insertions, 0 deletions
diff --git a/contrib/cvs/acinclude.m4 b/contrib/cvs/acinclude.m4 new file mode 100644 index 0000000..c2893df --- /dev/null +++ b/contrib/cvs/acinclude.m4 @@ -0,0 +1,361 @@ +/* This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. */ + +AC_DEFUN([ACX_WITH_GSSAPI],[ +# +# Use --with-gssapi[=DIR] to enable GSSAPI support. +# +# defaults to enabled with DIR in default list below +# +# Search for /SUNHEA/ and read the comments about this default below. +# +AC_ARG_WITH( + [gssapi], + AC_HELP_STRING( + [--with-gssapi], + [GSSAPI directory (default autoselects)]), , + [with_gssapi=yes])dnl + +dnl +dnl FIXME - cache withval and obliterate later cache values when options change +dnl +# +# Try to locate a GSSAPI installation if no location was specified, assuming +# GSSAPI was enabled (the default). +# +if test -n "$acx_gssapi_cv_gssapi"; then + # Granted, this is a slightly ugly way to print this info, but the + # AC_CHECK_HEADER used in the search for a GSSAPI installation makes using + # AC_CACHE_CHECK worse + AC_MSG_CHECKING([for GSSAPI]) +else :; fi +AC_CACHE_VAL([acx_gssapi_cv_gssapi], [ +if test x$with_gssapi = xyes; then + # --with but no location specified + # assume a gssapi.h or gssapi/gssapi.h locates our install. + # + # This isn't always strictly true. For instance Solaris 7's SUNHEA (header) + # package installs gssapi.h whether or not the necessary libraries are + # installed. I'm still not sure whether to consider this a bug. The long + # way around is to not consider GSSPAI installed unless gss_import_name is + # found, but that brings up a lot of other hassles, like continuing to let + # gcc & ld generate the error messages when the user uses --with-gssapi=dir + # as a debugging aid. The short way around is to disable GSSAPI by default, + # but I think Sun users have been faced with this for awhile and I haven't + # heard many complaints. + acx_gssapi_save_CPPFLAGS=$CPPFLAGS + for acx_gssapi_cv_gssapi in yes /usr/kerberos /usr/cygnus/kerbnet no; do + if test x$acx_gssapi_cv_gssapi = xno; then + break + fi + if test x$acx_gssapi_cv_gssapi = xyes; then + AC_MSG_CHECKING([for GSSAPI]) + AC_MSG_RESULT([]) + else + CPPFLAGS="$acx_gssapi_save_CPPFLAGS -I$acx_gssapi_cv_gssapi/include" + AC_MSG_CHECKING([for GSSAPI in $acx_gssapi_cv_gssapi]) + AC_MSG_RESULT([]) + fi + unset ac_cv_header_gssapi_h + unset ac_cv_header_gssapi_gssapi_h + unset ac_cv_header_krb5_h + AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h krb5.h]) + if (test "$ac_cv_header_gssapi_h" = yes || + test "$ac_cv_header_gssapi_gssapi_h" = yes) && + test "$ac_cv_header_krb5_h" = yes; then + break + fi + done + CPPFLAGS=$acx_gssapi_save_CPPFLAGS +else + acx_gssapi_cv_gssapi=$with_gssapi +fi +AC_MSG_CHECKING([for GSSAPI]) +])dnl +AC_MSG_RESULT([$acx_gssapi_cv_gssapi]) + +# +# Set up GSSAPI includes for later use. We don't bother to check for +# $acx_gssapi_cv_gssapi=no here since that will be caught later. +# +if test x$acx_gssapi_cv_gssapi = xyes; then + # no special includes necessary + GSSAPI_INCLUDES="" +else + # GSSAPI at $acx_gssapi_cv_gssapi (could be 'no') + GSSAPI_INCLUDES=" -I$acx_gssapi_cv_gssapi/include" +fi + +# +# Get the rest of the information CVS needs to compile with GSSAPI support +# +if test x$acx_gssapi_cv_gssapi != xno; then + # define HAVE_GSSAPI and set up the includes + AC_DEFINE([HAVE_GSSAPI], , +[Define if you have GSSAPI with Kerberos version 5 available.]) + includeopt=$includeopt$GSSAPI_INCLUDES + + # locate any other headers + acx_gssapi_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS=$CPPFLAGS$GSSAPI_INCLUDES + dnl We don't use HAVE_KRB5_H anywhere, but including it here might make it + dnl easier to spot errors by reading configure output + AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h krb5.h]) + # And look through them for GSS_C_NT_HOSTBASED_SERVICE or its alternatives + AC_CACHE_CHECK( + [for GSS_C_NT_HOSTBASED_SERVICE], + [acx_gssapi_cv_gss_c_nt_hostbased_service], + [ + acx_gssapi_cv_gss_c_nt_hostbased_service=no + if test "$ac_cv_header_gssapi_h" = "yes"; then + AC_EGREP_HEADER( + [GSS_C_NT_HOSTBASED_SERVICE], [gssapi.h], + [acx_gssapi_cv_gss_c_nt_hostbased_service=yes], + [ + AC_EGREP_HEADER( + [gss_nt_service_name], [gssapi.h], + [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name]) + ]) + fi + if test $acx_gssapi_cv_gss_c_nt_hostbased_service = no && + test "$ac_cv_header_gssapi_gssapi_h" = "yes"; then + AC_EGREP_HEADER( + [GSS_C_NT_HOSTBASED_SERVICE], [gssapi/gssapi.h], + [acx_gssapi_cv_gss_c_nt_hostbased_service=yes], + [ + AC_EGREP_HEADER([gss_nt_service_name], [gssapi/gssapi.h], + [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name]) + ]) + else :; fi + if test $acx_gssapi_cv_gss_c_nt_hostbased_service = no && + test "$ac_cv_header_gssapi_gssapi_generic_h" = "yes"; then + AC_EGREP_HEADER( + [GSS_C_NT_HOSTBASED_SERVICE], [gssapi/gssapi_generic.h], + [acx_gssapi_cv_gss_c_nt_hostbased_service=yes], + [ + AC_EGREP_HEADER( + [gss_nt_service_name], [gssapi/gssapi_generic.h], + [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name]) + ]) + else :; fi + ]) + if test $acx_gssapi_cv_gss_c_nt_hostbased_service != yes && + test $acx_gssapi_cv_gss_c_nt_hostbased_service != no; then + # don't define for yes since that means it already means something and + # don't define for no since we'd rather the compiler catch the error + # It's debatable whether we'd prefer that the compiler catch the error + # - it seems our estranged developer is more likely to be familiar with + # the intricacies of the compiler than with those of autoconf, but by + # the same token, maybe we'd rather alert them to the fact that most + # of the support they need to fix the problem is installed if they can + # simply locate the appropriate symbol. + AC_DEFINE_UNQUOTED( + [GSS_C_NT_HOSTBASED_SERVICE], + [$acx_gssapi_cv_gss_c_nt_hostbased_service], +[Define to an alternative value if GSS_C_NT_HOSTBASED_SERVICE isn't defined +in the gssapi.h header file. MIT Kerberos 1.2.1 requires this. Only relevant +when using GSSAPI.]) + else :; fi + + CPPFLAGS=$acx_gssapi_save_CPPFLAGS + + # Expect the libs to be installed parallel to the headers + # + # We could try once with and once without, but I'm not sure it's worth the + # trouble. + if test x$acx_gssapi_cv_gssapi != xyes; then + if test -z "$LIBS"; then + LIBS="-L$acx_gssapi_cv_gssapi/lib" + else + LIBS="-L$acx_gssapi_cv_gssapi/lib $LIBS" + fi + else :; fi + + dnl What happens if we want to enable, say, krb5 and some other GSSAPI + dnl authentication method at the same time? + # + # Some of the order below is particular due to library dependencies + # + + # + # des Heimdal K 0.3d, but Heimdal seems to be set up such + # that it could have been installed from elsewhere. + # + AC_SEARCH_LIBS([des_set_odd_parity], [des]) + + # + # com_err Heimdal K 0.3d + # + # com_err MIT K5 v1.2.2-beta1 + # + AC_SEARCH_LIBS([com_err], [com_err]) + + # + # asn1 Heimdal K 0.3d -lcom_err + # + AC_SEARCH_LIBS([initialize_asn1_error_table_r], [asn1]) + + # + # resolv required, but not installed by Heimdal K 0.3d + # + # resolv MIT K5 1.2.2-beta1 + # Linux 2.2.17 + # + AC_SEARCH_LIBS([__dn_expand], [resolv]) + + # + # crypto Need by gssapi under FreeBSD 5.4 + # + AC_SEARCH_LIBS([RC4], [crypto]) + + # + # crypt Needed by roken under FreeBSD 4.6. + # + AC_SEARCH_LIBS([crypt], [crypt]) + + # + # roken Heimdal K 0.3d -lresolv + # roken FreeBSD 4.6 -lcrypt + # + AC_SEARCH_LIBS([roken_gethostbyaddr], [roken]) + + # + # k5crypto MIT K5 v1.2.2-beta1 + # + AC_SEARCH_LIBS([valid_enctype], [k5crypto]) + + # + # gen ? ? ? Needed on Irix 5.3 with some + # Irix 5.3 version of Kerberos. I'm not + # sure which since Irix didn't + # get any testing this time + # around. Original comment: + # + # This is necessary on Irix 5.3, in order to link against libkrb5 -- + # there, an_to_ln.o refers to things defined only in -lgen. + # + AC_SEARCH_LIBS([compile], [gen]) + + # + # krb5 ? ? ? -lgen -l??? + # Irix 5.3 + # + # krb5 MIT K5 v1.1.1 + # + # krb5 MIT K5 v1.2.2-beta1 -lcrypto -lcom_err + # Linux 2.2.17 + # + # krb5 MIT K5 v1.2.2-beta1 -lcrypto -lcom_err -lresolv + # + # krb5 Heimdal K 0.3d -lasn1 -lroken -ldes + # + AC_SEARCH_LIBS([krb5_free_context], [krb5]) + + # + # gss This may be the only lib needed under HP-UX, so find it + # first. + # + # gssapi_krb5 Only lib needed with MIT K5 v1.2.1, so find it first in + # order to prefer MIT Kerberos. If both MIT & Heimdal + # Kerberos are installed and in the path, this will leave + # some of the libraries above in LIBS unnecessarily, but + # noone would ever do that, right? + # + # gss HP-UX ??? + # + # gssapi_krb5 MIT K5 v1.2.2-beta1 -lkrb5 + # + # gssapi Heimdal K 0.3d -lkrb5 + # + AC_SEARCH_LIBS([gss_import_name], [gss gssapi_krb5 gssapi]) +fi +])dnl + + + +# size_max.m4 serial 2 +dnl Copyright (C) 2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([gl_SIZE_MAX], +[ + AC_CHECK_HEADERS(stdint.h) + dnl First test whether the system already has SIZE_MAX. + AC_MSG_CHECKING([for SIZE_MAX]) + result= + AC_EGREP_CPP([Found it], [ +#include <limits.h> +#if HAVE_STDINT_H +#include <stdint.h> +#endif +#ifdef SIZE_MAX +Found it +#endif +], result=yes) + if test -z "$result"; then + dnl Define it ourselves. Here we assume that the type 'size_t' is not wider + dnl than the type 'unsigned long'. + dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr', + dnl which is guaranteed to work from LONG_MIN to LONG_MAX. + _AC_COMPUTE_INT([~(size_t)0 / 10], res_hi, + [#include <stddef.h>], result=?) + _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo, + [#include <stddef.h>], result=?) + _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint, + [#include <stddef.h>], result=?) + if test "$fits_in_uint" = 1; then + dnl Even though SIZE_MAX fits in an unsigned int, it must be of type + dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. + AC_TRY_COMPILE([#include <stddef.h> + extern size_t foo; + extern unsigned long foo; + ], [], fits_in_uint=0) + fi + if test -z "$result"; then + if test "$fits_in_uint" = 1; then + result="$res_hi$res_lo"U + else + result="$res_hi$res_lo"UL + fi + else + dnl Shouldn't happen, but who knows... + result='~(size_t)0' + fi + fi + AC_MSG_RESULT([$result]) + if test "$result" != yes; then + AC_DEFINE_UNQUOTED([SIZE_MAX], [$result], + [Define as the maximum value of type 'size_t', if the system doesn't define it.]) + fi +]) + + + +# xsize.m4 serial 3 +dnl Copyright (C) 2003-2004 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +AC_DEFUN([gl_XSIZE], +[ + dnl Prerequisites of lib/xsize.h. + AC_REQUIRE([gl_SIZE_MAX]) + AC_REQUIRE([AC_C_INLINE]) + AC_CHECK_HEADERS(stdint.h) +]) |