Blame src/configure.ac

Packit Service 99d1c0
K5_AC_INIT([aclocal.m4])
Packit Service 99d1c0
Packit Service 99d1c0
# If $runstatedir isn't set by autoconf (<2.70), set it manually.
Packit Service 99d1c0
if test x"$runstatedir" = x; then
Packit Service 99d1c0
  runstatedir=$localstatedir/run
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(runstatedir)
Packit Service 99d1c0
Packit Service 99d1c0
# Don't make duplicate profile path entries for /etc/krb5.conf if
Packit Service 99d1c0
# $sysconfdir is /etc
Packit Service 99d1c0
if test "$sysconfdir" = /etc; then
Packit Service 99d1c0
  SYSCONFCONF=""
Packit Service 99d1c0
else
Packit Service 99d1c0
  SYSCONFCONF=":${sysconfdir}/krb5.conf"
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(SYSCONFCONF)
Packit Service 99d1c0
Packit Service 99d1c0
CONFIG_RULES
Packit Service 99d1c0
KRB5_VERSION=K5_VERSION
Packit Service 99d1c0
AC_SUBST(KRB5_VERSION)
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
AC_REQUIRE_CPP
Packit Service 99d1c0
Packit Service 99d1c0
PKG_PROG_PKG_CONFIG
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_HEADER([stdint.h], [],
Packit Service 99d1c0
  [AC_MSG_ERROR([stdint.h is required])])
Packit Service 99d1c0
Packit Service 99d1c0
AC_CACHE_CHECK([whether integers are two's complement],
Packit Service 99d1c0
  [krb5_cv_ints_twos_compl],
Packit Service 99d1c0
  [AC_COMPILE_IFELSE(
Packit Service 99d1c0
    [AC_LANG_BOOL_COMPILE_TRY(
Packit Service 99d1c0
[#include <limits.h>
Packit Service 99d1c0
],
Packit Service 99d1c0
	[/* Basic two's complement check */
Packit Service 99d1c0
	  ~(-1) == 0 && ~(-1L) == 0L &&
Packit Service 99d1c0
	  /* Check that values with sign bit 1 and value bits 0 are valid */
Packit Service 99d1c0
	  -(INT_MIN + 1) == INT_MAX && -(LONG_MIN + 1) == LONG_MAX &&
Packit Service 99d1c0
	  /* Check that unsigned-to-signed conversions preserve bit patterns */
Packit Service 99d1c0
	  (int)((unsigned int)INT_MAX + 1) == INT_MIN &&
Packit Service 99d1c0
	  (long)((unsigned long)LONG_MAX + 1) == LONG_MIN])],
Packit Service 99d1c0
    [krb5_cv_ints_twos_compl=yes],
Packit Service 99d1c0
    [krb5_cv_ints_twos_compl=no])])
Packit Service 99d1c0
Packit Service 99d1c0
if test "$krb5_cv_ints_twos_compl" = "no"; then
Packit Service 99d1c0
  AC_MSG_ERROR([integers are not two's complement])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
AC_CACHE_CHECK([whether CHAR_BIT is 8],
Packit Service 99d1c0
  [krb5_cv_char_bit_8],
Packit Service 99d1c0
  [AC_PREPROC_IFELSE([AC_LANG_SOURCE(
Packit Service 99d1c0
[[#include <limits.h>
Packit Service 99d1c0
#if CHAR_BIT != 8
Packit Service 99d1c0
  #error CHAR_BIT != 8
Packit Service 99d1c0
#endif
Packit Service 99d1c0
]])],
Packit Service 99d1c0
    [krb5_cv_char_bit_8=yes], [krb5_cv_char_bit_8=no])])
Packit Service 99d1c0
Packit Service 99d1c0
if test "$krb5_cv_char_bit_8" = "no"; then
Packit Service 99d1c0
  AC_MSG_ERROR([CHAR_BIT is not 8])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
AC_CACHE_CHECK(if va_copy is available, krb5_cv_va_copy,
Packit Service 99d1c0
[AC_LINK_IFELSE([AC_LANG_SOURCE([
Packit Service 99d1c0
#include <stdarg.h>
Packit Service 99d1c0
void f(va_list ap) {
Packit Service 99d1c0
  va_list ap2;
Packit Service 99d1c0
  va_copy(ap2, ap);
Packit Service 99d1c0
  va_end(ap2);
Packit Service 99d1c0
}
Packit Service 99d1c0
va_list x;
Packit Service 99d1c0
int main()
Packit Service 99d1c0
{
Packit Service 99d1c0
  f(x);
Packit Service 99d1c0
  return 0;
Packit Service 99d1c0
}])], krb5_cv_va_copy=yes, krb5_cv_va_copy=no)])
Packit Service 99d1c0
if test "$krb5_cv_va_copy" = yes; then
Packit Service 99d1c0
  AC_DEFINE(HAS_VA_COPY,1,[Define if va_copy macro or function is available.])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
# Note that this isn't checking if the copied value *works*, just
Packit Service 99d1c0
# whether the C language constraints permit the copying.  If
Packit Service 99d1c0
# va_list is defined as an array type, it can't be assigned.
Packit Service 99d1c0
AC_CACHE_CHECK(if va_list objects can be copied by assignment,
Packit Service 99d1c0
	       krb5_cv_va_simple_copy,
Packit Service 99d1c0
[AC_COMPILE_IFELSE([
Packit Service 99d1c0
AC_LANG_SOURCE([#include <stdarg.h>
Packit Service 99d1c0
void f(va_list va2) {
Packit Service 99d1c0
  va_list va1;
Packit Service 99d1c0
  va1 = va2;
Packit Service 99d1c0
}])], krb5_cv_va_simple_copy=yes, krb5_cv_va_simple_copy=no)])
Packit Service 99d1c0
if test "$krb5_cv_va_simple_copy" = yes; then
Packit Service 99d1c0
  AC_DEFINE(CAN_COPY_VA_LIST,1,[Define if va_list objects can be simply copied by assignment.])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
# The following lines are so that configure --help gives some global
Packit Service 99d1c0
# configuration options.
Packit Service 99d1c0
Packit Service 99d1c0
KRB5_LIB_AUX
Packit Service 99d1c0
AC_KRB5_TCL
Packit Service 99d1c0
AC_ARG_ENABLE([athena],
Packit Service 99d1c0
[  --enable-athena         build with MIT Project Athena configuration],,)
Packit Service 99d1c0
Packit Service 99d1c0
# Begin autoconf tests for the Makefiles generated out of the top-level
Packit Service 99d1c0
# configure.in...
Packit Service 99d1c0
Packit Service 99d1c0
KRB5_BUILD_LIBOBJS
Packit Service 99d1c0
KRB5_BUILD_LIBRARY
Packit Service 99d1c0
KRB5_BUILD_PROGRAM
Packit Service 99d1c0
# for kprop
Packit Service 99d1c0
AC_TYPE_MODE_T
Packit Service 99d1c0
AC_PROG_INSTALL
Packit Service 99d1c0
KRB5_AC_NEED_DAEMON
Packit Service 99d1c0
KRB5_GETSOCKNAME_ARGS
Packit Service 99d1c0
KRB5_GETPEERNAME_ARGS
Packit Service 99d1c0
LIBUTIL=
Packit Service 99d1c0
AC_CHECK_LIB(util,main,[AC_DEFINE(HAVE_LIBUTIL,1,[Define if the util library is available])
Packit Service 99d1c0
LIBUTIL=-lutil
Packit Service 99d1c0
])
Packit Service 99d1c0
AC_SUBST(LIBUTIL)
Packit Service 99d1c0
Packit Service 99d1c0
# Determine if NLS is desired and supported.
Packit Service 99d1c0
po=
Packit Service 99d1c0
AC_ARG_ENABLE([nls],
Packit Service 99d1c0
AC_HELP_STRING([--disable-nls], [disable native language support]),
Packit Service 99d1c0
              [], [enable_nls=check])
Packit Service 99d1c0
if test "$enable_nls" != no; then
Packit Service 99d1c0
  AC_CHECK_HEADER(libintl.h, [
Packit Service 99d1c0
    AC_SEARCH_LIBS(dgettext, intl, [
Packit Service 99d1c0
      AC_DEFINE(ENABLE_NLS, 1,
Packit Service 99d1c0
                [Define if translation functions should be used.])
Packit Service 99d1c0
      nls_enabled=yes])])
Packit Service 99d1c0
Packit Service 99d1c0
  AC_CHECK_PROG(MSGFMT,msgfmt,msgfmt)
Packit Service 99d1c0
  if test x"$MSGFMT" != x; then
Packit Service 99d1c0
    K5_GEN_MAKEFILE(po)
Packit Service 99d1c0
    po=po
Packit Service 99d1c0
  fi
Packit Service 99d1c0
Packit Service 99d1c0
  # Error out if --enable-nls was explicitly requested but can't be enabled.
Packit Service 99d1c0
  if test "$enable_nls" = yes; then
Packit Service 99d1c0
    if test "$nls_enabled" != yes -o "x$po" = x; then
Packit Service 99d1c0
      AC_MSG_ERROR([NLS support requested but cannot be built])
Packit Service 99d1c0
    fi
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(po)
Packit Service 99d1c0
Packit Service 99d1c0
# for kdc
Packit Service 99d1c0
AC_CHECK_HEADERS(sys/sockio.h ifaddrs.h unistd.h fnmatch.h)
Packit Service 99d1c0
AC_CHECK_FUNCS(vsprintf vasprintf vsnprintf strlcpy fnmatch secure_getenv)
Packit Service 99d1c0
Packit Service 99d1c0
EXTRA_SUPPORT_SYMS=
Packit Service 99d1c0
AC_CHECK_FUNC(strlcpy,
Packit Service 99d1c0
[STRLCPY_ST_OBJ=
Packit Service 99d1c0
STRLCPY_OBJ=],
Packit Service 99d1c0
[STRLCPY_ST_OBJ=strlcpy.o
Packit Service 99d1c0
STRLCPY_OBJ='$(OUTPRE)strlcpy.$(OBJEXT)'
Packit Service 99d1c0
EXTRA_SUPPORT_SYMS="$EXTRA_SUPPORT_SYMS krb5int_strlcpy krb5int_strlcat"])
Packit Service 99d1c0
AC_SUBST(STRLCPY_OBJ)
Packit Service 99d1c0
AC_SUBST(STRLCPY_ST_OBJ)
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_FUNC(getopt,
Packit Service 99d1c0
[GETOPT_ST_OBJ=
Packit Service 99d1c0
GETOPT_OBJ=
Packit Service 99d1c0
AC_DEFINE(HAVE_GETOPT, 1, [Define if system getopt should be used.])],
Packit Service 99d1c0
[GETOPT_ST_OBJ='getopt.o'
Packit Service 99d1c0
GETOPT_OBJ='$(OUTPRE)getopt.$(OBJEXT)'
Packit Service 99d1c0
EXTRA_SUPPORT_SYMS="$EXTRA_SUPPORT_SYMS k5_optind k5_optarg k5_opterr k5_optopt k5_getopt"])
Packit Service 99d1c0
AC_SUBST(GETOPT_OBJ)
Packit Service 99d1c0
AC_SUBST(GETOPT_ST_OBJ)
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_FUNC(getopt_long,
Packit Service 99d1c0
[GETOPT_LONG_ST_OBJ=
Packit Service 99d1c0
GETOPT_LONG_OBJ=
Packit Service 99d1c0
AC_DEFINE(HAVE_GETOPT_LONG, 1, [Define if system getopt_long should be used.])],
Packit Service 99d1c0
[GETOPT_LONG_ST_OBJ='getopt_long.o'
Packit Service 99d1c0
GETOPT_LONG_OBJ='$(OUTPRE)getopt_long.$(OBJEXT)'
Packit Service 99d1c0
EXTRA_SUPPORT_SYMS="$EXTRA_SUPPORT_SYMS k5_getopt_long"])
Packit Service 99d1c0
AC_SUBST(GETOPT_LONG_OBJ)
Packit Service 99d1c0
AC_SUBST(GETOPT_LONG_ST_OBJ)
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_FUNC(fnmatch,
Packit Service 99d1c0
[FNMATCH_ST_OBJ=
Packit Service 99d1c0
FNMATCH_OBJ=],
Packit Service 99d1c0
[FNMATCH_ST_OBJ=fnmatch.o
Packit Service 99d1c0
FNMATCH_OBJ='$(OUTPRE)fnmatch.$(OBJEXT)'
Packit Service 99d1c0
EXTRA_SUPPORT_SYMS="$EXTRA_SUPPORT_SYMS k5_fnmatch"])
Packit Service 99d1c0
AC_SUBST(FNMATCH_OBJ)
Packit Service 99d1c0
AC_SUBST(FNMATCH_ST_OBJ)
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_FUNC(vasprintf,
Packit Service 99d1c0
[PRINTF_ST_OBJ=
Packit Service 99d1c0
PRINTF_OBJ=],
Packit Service 99d1c0
[PRINTF_ST_OBJ=printf.o
Packit Service 99d1c0
PRINTF_OBJ='$(OUTPRE)printf.$(OBJEXT)'
Packit Service 99d1c0
EXTRA_SUPPORT_SYMS="$EXTRA_SUPPORT_SYMS krb5int_asprintf krb5int_vasprintf"])
Packit Service 99d1c0
AC_SUBST(PRINTF_OBJ)
Packit Service 99d1c0
AC_SUBST(PRINTF_ST_OBJ)
Packit Service 99d1c0
KRB5_NEED_PROTO([#include <stdarg.h>
Packit Service 99d1c0
#include <stdio.h>
Packit Service 99d1c0
],vasprintf)
Packit Service 99d1c0
KRB5_NEED_PROTO([#include <string.h>
Packit Service 99d1c0
#ifdef HAVE_UNISTD_H
Packit Service 99d1c0
#include <unistd.h>
Packit Service 99d1c0
#endif
Packit Service 99d1c0
/* Solaris 8 declares swab in stdlib.h.  */
Packit Service 99d1c0
#include <stdlib.h>
Packit Service 99d1c0
],swab,1)
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_FUNC(secure_getenv,
Packit Service 99d1c0
[SECURE_GETENV_ST_OBJ=
Packit Service 99d1c0
SECURE_GETENV_OBJ=
Packit Service 99d1c0
SECURE_GETENV_INIT=],
Packit Service 99d1c0
[SECURE_GETENV_ST_OBJ=secure_getenv.o
Packit Service 99d1c0
SECURE_GETENV_OBJ='$(OUTPRE)secure_getenv.$(OBJEXT)'
Packit Service 99d1c0
SECURE_GETENV_INIT=k5_secure_getenv_init
Packit Service 99d1c0
EXTRA_SUPPORT_SYMS="$EXTRA_SUPPORT_SYMS k5_secure_getenv"])
Packit Service 99d1c0
AC_SUBST(SECURE_GETENV_OBJ)
Packit Service 99d1c0
AC_SUBST(SECURE_GETENV_ST_OBJ)
Packit Service 99d1c0
AC_SUBST(SECURE_GETENV_INIT)
Packit Service 99d1c0
Packit Service 99d1c0
AC_PROG_AWK
Packit Service 99d1c0
KRB5_AC_INET6
Packit Service 99d1c0
KRB5_SOCKADDR_SA_LEN
Packit Service 99d1c0
CHECK_SIGNALS
Packit Service 99d1c0
Packit Service 99d1c0
# --with-vague-errors disables useful error messages.
Packit Service 99d1c0
Packit Service 99d1c0
AC_ARG_WITH([vague-errors],
Packit Service 99d1c0
AC_HELP_STRING([--with-vague-errors],[Do not @<:@do@:>@ send helpful errors to client]), , withval=no)
Packit Service 99d1c0
if test "$withval" = yes; then
Packit Service 99d1c0
	AC_MSG_NOTICE(Supplying vague error messages to KDC clients)
Packit Service 99d1c0
	AC_DEFINE(KRBCONF_VAGUE_ERRORS,1,[Define if the KDC should return only vague error codes to clients])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
# Check which (if any) audit plugin to build
Packit Service 99d1c0
audit_plugin=""
Packit Service 99d1c0
AC_ARG_ENABLE([audit-plugin],
Packit Service 99d1c0
AC_HELP_STRING([--enable-audit-plugin=IMPL],
Packit Service 99d1c0
               [use audit plugin @<:@ do not use audit @:>@]), , enableval=no)
Packit Service 99d1c0
if test "$enableval" != no; then
Packit Service 99d1c0
    case "$enableval" in
Packit Service 99d1c0
    simple)
Packit Service 99d1c0
        # if audit_log_user_message is found, we assume
Packit Service 99d1c0
        # that audit_open and audit_close are also defined.
Packit Service 99d1c0
        AC_CHECK_LIB(audit, audit_log_user_message,
Packit Service 99d1c0
                     [AUDIT_IMPL_LIBS=-laudit
Packit Service 99d1c0
                     K5_GEN_MAKEFILE(plugins/audit/simple)
Packit Service 99d1c0
                     audit_plugin=plugins/audit/simple ],
Packit Service 99d1c0
                     AC_MSG_ERROR([libaudit not found or undefined symbol audit_log_user_message]))
Packit Service 99d1c0
        ;;
Packit Service 99d1c0
    *)
Packit Service 99d1c0
        AC_MSG_ERROR([Unknown audit plugin implementation $enableval.])
Packit Service 99d1c0
        ;;
Packit Service 99d1c0
    esac
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(AUDIT_IMPL_LIBS)
Packit Service 99d1c0
AC_SUBST(audit_plugin)
Packit Service 99d1c0
Packit Service 99d1c0
# WITH_CRYPTO_IMPL
Packit Service 99d1c0
Packit Service 99d1c0
CRYPTO_IMPL="builtin"
Packit Service 99d1c0
AC_ARG_WITH([crypto-impl],
Packit Service 99d1c0
AC_HELP_STRING([--with-crypto-impl=IMPL], [use specified crypto implementation @<:@builtin@:>@]),
Packit Service 99d1c0
[CRYPTO_IMPL=$withval
Packit Service 99d1c0
AC_MSG_NOTICE(k5crypto will use '$withval')
Packit Service 99d1c0
], withval=builtin)
Packit Service 99d1c0
case "$withval" in
Packit Service 99d1c0
builtin)
Packit Service 99d1c0
  ;;
Packit Service 99d1c0
openssl)
Packit Service 99d1c0
  AC_CHECK_LIB(crypto, PKCS7_get_signer_info)
Packit Service 99d1c0
  ;;
Packit Service 99d1c0
*)
Packit Service 99d1c0
  AC_MSG_ERROR([Unknown crypto implementation $withval])
Packit Service 99d1c0
  ;;
Packit Service 99d1c0
esac
Packit Service 99d1c0
AC_CONFIG_COMMANDS(CRYPTO_IMPL, , CRYPTO_IMPL=$CRYPTO_IMPL)
Packit Service 99d1c0
AC_SUBST(CRYPTO_IMPL)
Packit Service 99d1c0
AC_SUBST(CRYPTO_IMPL_CFLAGS)
Packit Service 99d1c0
AC_SUBST(CRYPTO_IMPL_LIBS)
Packit Service 99d1c0
rpm-build 7d705d
AC_CHECK_FUNCS(EVP_KDF_CTX_new_id EVP_KDF_ctrl EVP_KDF_derive,
rpm-build 7d705d
               AC_DEFINE(OSSL_KDFS, 1, [Define if using OpenSSL KDFs]),
rpm-build 7d705d
               AC_MSG_ERROR([backported OpenSSL KDFs not found]))
rpm-build 7d705d
Packit Service 99d1c0
AC_ARG_WITH([prng-alg],
Packit Service 99d1c0
AC_HELP_STRING([--with-prng-alg=ALG], [use specified PRNG algorithm. @<:@fortuna@:>@]),
Packit Service 99d1c0
[PRNG_ALG=$withval
Packit Service 99d1c0
AC_MSG_NOTICE(k5crypto will use '$withval')
Packit Service 99d1c0
], PRNG_ALG=fortuna)
Packit Service 99d1c0
AC_CONFIG_COMMANDS(PRNG_ALG, , PRNG_ALG=$PRNG_ALG)
Packit Service 99d1c0
AC_SUBST(PRNG_ALG)
Packit Service 99d1c0
if test "$PRNG_ALG" = fortuna; then
Packit Service 99d1c0
	AC_DEFINE(FORTUNA,1,[Define if Fortuna PRNG is selected])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
# WITH_TLS_IMPL
Packit Service 99d1c0
Packit Service 99d1c0
AC_ARG_WITH([tls-impl],
Packit Service 99d1c0
AC_HELP_STRING([--with-tls-impl=IMPL],
Packit Service 99d1c0
               [use specified TLS implementation @<:@auto@:>@]),
Packit Service 99d1c0
[TLS_IMPL=$withval],[TLS_IMPL=auto])
Packit Service 99d1c0
case "$TLS_IMPL" in
Packit Service 99d1c0
openssl|auto)
Packit Service 99d1c0
  AC_CHECK_LIB(ssl,SSL_CTX_new,[have_lib_ssl=true],[have_lib_ssl=false],
Packit Service 99d1c0
               -lcrypto)
Packit Service 99d1c0
  AC_MSG_CHECKING([for OpenSSL])
Packit Service 99d1c0
  if test x$have_lib_ssl = xtrue ; then
Packit Service 99d1c0
    AC_DEFINE(TLS_IMPL_OPENSSL,1,[Define if TLS implementation is OpenSSL])
Packit Service 99d1c0
    AC_MSG_RESULT([yes])
Packit Service 99d1c0
    TLS_IMPL_LIBS="-lssl -lcrypto"
Packit Service 99d1c0
    TLS_IMPL=openssl
Packit Service 99d1c0
    AC_MSG_NOTICE([TLS module will use OpenSSL])
Packit Service 99d1c0
  else
Packit Service 99d1c0
    if test "$TLS_IMPL" = openssl ; then
Packit Service 99d1c0
      AC_MSG_ERROR([OpenSSL not found!])
Packit Service 99d1c0
    else
Packit Service 99d1c0
      AC_MSG_WARN([OpenSSL not found!])
Packit Service 99d1c0
    fi
Packit Service 99d1c0
    TLS_IMPL=no
Packit Service 99d1c0
    AC_MSG_NOTICE(building without TLS support)
Packit Service 99d1c0
  fi
Packit Service 99d1c0
  ;;
Packit Service 99d1c0
no)
Packit Service 99d1c0
  AC_MSG_NOTICE(building without TLS support)
Packit Service 99d1c0
  ;;
Packit Service 99d1c0
*)
Packit Service 99d1c0
  AC_MSG_ERROR([Unsupported TLS implementation $withval])
Packit Service 99d1c0
  ;;
Packit Service 99d1c0
esac
Packit Service 99d1c0
Packit Service 99d1c0
if test "$TLS_IMPL" = no; then
Packit Service 99d1c0
   AC_DEFINE(TLS_IMPL_NONE,1,[Define if no TLS implementation is selected])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
AC_SUBST(TLS_IMPL)
Packit Service 99d1c0
AC_SUBST(TLS_IMPL_CFLAGS)
Packit Service 99d1c0
AC_SUBST(TLS_IMPL_LIBS)
Packit Service 99d1c0
Packit Service 99d1c0
AC_ARG_WITH([keyutils],
Packit Service 99d1c0
AC_HELP_STRING([--without-keyutils],[do not link with libkeyutils]),
Packit Service 99d1c0
            [], [with_keyutils=check])
Packit Service 99d1c0
if test "$with_keyutils" != no; then
Packit Service 99d1c0
  have_keyutils=false
Packit Service 99d1c0
  AC_CHECK_HEADERS([keyutils.h],
Packit Service 99d1c0
    AC_CHECK_LIB(keyutils, add_key, [have_keyutils=true]))
Packit Service 99d1c0
  if test "$have_keyutils" = true; then
Packit Service 99d1c0
    AC_DEFINE(USE_KEYRING_CCACHE, 1,
Packit Service 99d1c0
              [Define if the keyring ccache should be enabled])
Packit Service 99d1c0
    LIBS="-lkeyutils $LIBS"
Packit Service 99d1c0
    # If libkeyutils supports persistent keyrings, use them.
Packit Service 99d1c0
    AC_CHECK_LIB(keyutils, keyctl_get_persistent,
Packit Service 99d1c0
      [AC_DEFINE(HAVE_PERSISTENT_KEYRING, 1,
Packit Service 99d1c0
                 [Define if persistent keyrings are supported])
Packit Service 99d1c0
      ])
Packit Service 99d1c0
  elif test "$with_keyutils" = yes; then
Packit Service 99d1c0
    AC_MSG_ERROR([libkeyutils not found])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
# The SPAKE preauth plugin currently supports edwards25519 natively,
Packit Service 99d1c0
# and can support three NIST groups using OpenSSL.
Packit Service 99d1c0
HAVE_SPAKE_OPENSSL=no
Packit Service 99d1c0
AC_ARG_WITH([spake-openssl],
Packit Service 99d1c0
AC_HELP_STRING([--with-spake-openssl],
Packit Service 99d1c0
               [use OpenSSL for SPAKE preauth @<:@auto@:>@]),,[withval=auto])
Packit Service 99d1c0
if test "$withval" = auto -o "$withval" = yes; then
Packit Service 99d1c0
  AC_CHECK_LIB([crypto],[EC_POINT_new],[have_crypto=true],[have_crypto=false])
Packit Service 99d1c0
  if test "$have_crypto" = true; then
Packit Service 99d1c0
    AC_DEFINE(SPAKE_OPENSSL,1,[Define to use OpenSSL for SPAKE preauth])
Packit Service 99d1c0
    SPAKE_OPENSSL_LIBS=-lcrypto
Packit Service 99d1c0
    HAVE_SPAKE_OPENSSL=yes
Packit Service 99d1c0
  elif test "$withval" = yes; then
Packit Service 99d1c0
    AC_MSG_ERROR([OpenSSL libcrypto not found])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(HAVE_SPAKE_OPENSSL)
Packit Service 99d1c0
AC_SUBST(SPAKE_OPENSSL_LIBS)
Packit Service 99d1c0
Packit Service 99d1c0
AC_ARG_ENABLE([aesni],
Packit Service 99d1c0
AC_HELP_STRING([--disable-aesni],[Do not build with AES-NI support]), ,
Packit Service 99d1c0
enable_aesni=check)
Packit Service 99d1c0
if test "$CRYPTO_IMPL" = builtin -a "x$enable_aesni" != xno; then
Packit Service 99d1c0
    case "$host" in
Packit Service 99d1c0
    i686-*)
Packit Service 99d1c0
	aesni_obj=iaesx86.o
Packit Service 99d1c0
	aesni_machine=x86
Packit Service 99d1c0
	;;
Packit Service 99d1c0
    x86_64-*)
Packit Service 99d1c0
	aesni_obj=iaesx64.o
Packit Service 99d1c0
	aesni_machine=amd64
Packit Service 99d1c0
	;;
Packit Service 99d1c0
    esac
Packit Service 99d1c0
    case "$host" in
Packit Service 99d1c0
    *-*-linux* | *-*-gnu* | *-*-*bsd* | *-*-solaris*)
Packit Service 99d1c0
	# All Unix-like platforms need -D__linux__ for iaesx64.s to
Packit Service 99d1c0
	# use the System V x86-64 calling convention.
Packit Service 99d1c0
	aesni_flags="-D__linux__ -f elf -m $aesni_machine"
Packit Service 99d1c0
	;;
Packit Service 99d1c0
    esac
Packit Service 99d1c0
    if test "x$aesni_obj" != x && test "x$aesni_flags" != x; then
Packit Service 99d1c0
	AC_CHECK_PROG(YASM,yasm,yasm)
Packit Service 99d1c0
	AC_CHECK_HEADERS(cpuid.h)
Packit Service 99d1c0
	if test x"$YASM" != x -a "x$ac_cv_header_cpuid_h" = xyes; then
Packit Service 99d1c0
	    AESNI_OBJ=$aesni_obj
Packit Service 99d1c0
	    AESNI_FLAGS=$aesni_flags
Packit Service 99d1c0
	    AC_DEFINE(AESNI,1,[Define if AES-NI support is enabled])
Packit Service 99d1c0
	    AC_MSG_NOTICE([Building with AES-NI support])
Packit Service 99d1c0
	fi
Packit Service 99d1c0
    fi
Packit Service 99d1c0
    if test "x$enable_aesni" = xyes -a "x$AESNI_OBJ" = x; then
Packit Service 99d1c0
	AC_MSG_ERROR([AES-NI support requested but cannot be built])
Packit Service 99d1c0
    fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(AESNI_OBJ)
Packit Service 99d1c0
AC_SUBST(AESNI_FLAGS)
Packit Service 99d1c0
Packit Service 99d1c0
AC_ARG_ENABLE([kdc-lookaside-cache],
Packit Service 99d1c0
AC_HELP_STRING([--disable-kdc-lookaside-cache],
Packit Service 99d1c0
               [Disable the cache which detects client retransmits]), ,
Packit Service 99d1c0
               enableval=yes)
Packit Service 99d1c0
if test "$enableval" = no ; then
Packit Service 99d1c0
	AC_DEFINE(NOCACHE,1,[Define if the KDC should use no lookaside cache])
Packit Service 99d1c0
fi
Packit Service 99d1c0
KRB5_RUN_FLAGS
Packit Service 99d1c0
Packit Service 99d1c0
# asan is a gcc and clang facility to instrument the code with memory
Packit Service 99d1c0
# error checking.  To use it, we compile C and C++ source files with
Packit Service 99d1c0
# -fsanitize=address, and set ASAN=yes to suppress the undefined
Packit Service 99d1c0
# symbols check when building shared libraries.
Packit Service 99d1c0
AC_ARG_ENABLE([asan],
Packit Service 99d1c0
AC_HELP_STRING([--enable-asan],[Build with asan memory checking]),[],
Packit Service 99d1c0
               [enable_asan=no])
Packit Service 99d1c0
if test "$enable_asan" != no; then
Packit Service 99d1c0
    if test "$enable_asan" = yes; then
Packit Service 99d1c0
        enable_asan=address
Packit Service 99d1c0
    fi
Packit Service 99d1c0
    ASAN_FLAGS="$DEFS -fsanitize=$enable_asan"
Packit Service 99d1c0
    ASAN=yes
Packit Service 99d1c0
    UNDEF_CHECK=
Packit Service 99d1c0
else
Packit Service 99d1c0
    ASAN_FLAGS=
Packit Service 99d1c0
    ASAN=no
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(ASAN_FLAGS)
Packit Service 99d1c0
AC_SUBST(ASAN)
Packit Service 99d1c0
Packit Service 99d1c0
AC_TYPE_SIGNAL
Packit Service 99d1c0
Packit Service 99d1c0
# from old include/configure.in
Packit Service 99d1c0
AH_TEMPLATE([HAVE_STRUCT_SOCKADDR_STORAGE],
Packit Service 99d1c0
[Define if "struct sockaddr_storage" is available.])
Packit Service 99d1c0
Packit Service 99d1c0
AC_CONFIG_HEADERS(include/autoconf.h, [echo timestamp > include/autoconf.stamp])
Packit Service 99d1c0
AC_PROG_LEX
Packit Service 99d1c0
AC_C_CONST
Packit Service 99d1c0
AC_HEADER_DIRENT
Packit Service 99d1c0
AC_FUNC_STRERROR_R
Packit Service 99d1c0
AC_CHECK_FUNCS(strdup setvbuf seteuid setresuid setreuid setegid setresgid setregid setsid flock fchmod chmod strptime geteuid setenv unsetenv getenv gmtime_r localtime_r bswap16 bswap64 mkstemp getusershell access getcwd srand48 srand srandom stat strchr strerror timegm explicit_bzero explicit_memset getresuid getresgid)
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_FUNC(mkstemp,
Packit Service 99d1c0
[MKSTEMP_ST_OBJ=
Packit Service 99d1c0
MKSTEMP_OBJ=],
Packit Service 99d1c0
[MKSTEMP_ST_OBJ='mkstemp.o'
Packit Service 99d1c0
MKSTEMP_OBJ='$(OUTPRE)mkstemp.$(OBJEXT)'
Packit Service 99d1c0
EXTRA_SUPPORT_SYMS="$EXTRA_SUPPORT_SYMS krb5int_mkstemp"])
Packit Service 99d1c0
AC_SUBST(MKSTEMP_OBJ)
Packit Service 99d1c0
AC_SUBST(MKSTEMP_ST_OBJ)
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_FUNC(gettimeofday,
Packit Service 99d1c0
	[GETTIMEOFDAY_ST_OBJ=
Packit Service 99d1c0
	GETTIMEOFDAY_OBJ=
Packit Service 99d1c0
	AC_DEFINE(HAVE_GETTIMEOFDAY, 1, [Have the gettimeofday function])
Packit Service 99d1c0
],
Packit Service 99d1c0
	[GETTIMEOFDAY_ST_OBJ='gettimeofday.o'
Packit Service 99d1c0
	GETTIMEOFDAY_OBJ='$(OUTPRE)gettimeofday.$(OBJEXT)'
Packit Service 99d1c0
	EXTRA_SUPPORT_SYMS="$EXTRA_SUPPORT_SYMS krb5int_gettimeofday"])
Packit Service 99d1c0
AC_SUBST(GETTIMEOFDAY_OBJ)
Packit Service 99d1c0
AC_SUBST(GETTIMEOFDAY_ST_OBJ)
Packit Service 99d1c0
AC_SUBST(EXTRA_SUPPORT_SYMS)
Packit Service 99d1c0
Packit Service 99d1c0
DECLARE_SYS_ERRLIST
Packit Service 99d1c0
AC_CHECK_HEADERS(unistd.h paths.h regex.h regexpr.h fcntl.h memory.h ifaddrs.h sys/filio.h byteswap.h machine/endian.h machine/byte_order.h sys/bswap.h endian.h pwd.h arpa/inet.h alloca.h dlfcn.h limits.h)
Packit Service 99d1c0
AC_CHECK_HEADER(regexp.h, [], [],
Packit Service 99d1c0
[#define INIT char *sp = instring;
Packit Service 99d1c0
#define GETC() (*sp++)
Packit Service 99d1c0
#define PEEKC() (*sp)
Packit Service 99d1c0
#define UNGETC(c) (--sp)
Packit Service 99d1c0
#define RETURN(c) return(c)
Packit Service 99d1c0
#define ERROR(c)
Packit Service 99d1c0
])
Packit Service 99d1c0
AC_CHECK_MEMBERS([struct stat.st_mtimensec,struct stat.st_mtimespec.tv_nsec,struct stat.st_mtim.tv_nsec],,,[#include <sys/types.h>
Packit Service 99d1c0
#include <sys/stat.h>])
Packit Service 99d1c0
KRB5_AC_REGEX_FUNCS
Packit Service 99d1c0
AC_TYPE_OFF_T
Packit Service 99d1c0
Packit Service 99d1c0
# Fancy caching of perror result...
Packit Service 99d1c0
AC_MSG_CHECKING(for perror declaration)
Packit Service 99d1c0
AC_CACHE_VAL(krb5_cv_decl_perror,
Packit Service 99d1c0
[AC_EGREP_HEADER(perror, errno.h,
Packit Service 99d1c0
  krb5_cv_decl_perror=yes, krb5_cv_decl_perror=no)])
Packit Service 99d1c0
AC_MSG_RESULT($krb5_cv_decl_perror)
Packit Service 99d1c0
if test $krb5_cv_decl_perror = yes; then
Packit Service 99d1c0
	AC_DEFINE(HDR_HAS_PERROR,1,[Define if errno.h declares perror])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
KRB5_NEED_PROTO([#include <time.h>],strptime)
Packit Service 99d1c0
CHECK_WAIT_TYPE
Packit Service 99d1c0
CHECK_SIGPROCMASK
Packit Service 99d1c0
AC_TYPE_GETGROUPS
Packit Service 99d1c0
CHECK_SETJMP
Packit Service 99d1c0
Packit Service 99d1c0
# *rpcent return types needed for lib/rpc
Packit Service 99d1c0
Packit Service 99d1c0
AC_MSG_CHECKING([return type of setrpcent])
Packit Service 99d1c0
AC_CACHE_VAL(k5_cv_type_setrpcent,
Packit Service 99d1c0
[AC_TRY_COMPILE([#include <netdb.h>
Packit Service 99d1c0
#ifdef __cplusplus
Packit Service 99d1c0
extern "C"
Packit Service 99d1c0
#endif
Packit Service 99d1c0
extern void setrpcent();],
Packit Service 99d1c0
[int i;], k5_cv_type_setrpcent=void, k5_cv_type_setrpcent=int)])
Packit Service 99d1c0
AC_MSG_RESULT($k5_cv_type_setrpcent)
Packit Service 99d1c0
AC_DEFINE_UNQUOTED(SETRPCENT_TYPE, $k5_cv_type_setrpcent, [Define as return type of setrpcent])
Packit Service 99d1c0
Packit Service 99d1c0
AC_MSG_CHECKING([return type of endrpcent])
Packit Service 99d1c0
AC_CACHE_VAL(k5_cv_type_endrpcent,
Packit Service 99d1c0
[AC_TRY_COMPILE([#include <netdb.h>
Packit Service 99d1c0
#ifdef __cplusplus
Packit Service 99d1c0
extern "C"
Packit Service 99d1c0
#endif
Packit Service 99d1c0
extern void endrpcent();],
Packit Service 99d1c0
[int i;], k5_cv_type_endrpcent=void, k5_cv_type_endrpcent=int)])
Packit Service 99d1c0
AC_MSG_RESULT($k5_cv_type_endrpcent)
Packit Service 99d1c0
AC_DEFINE_UNQUOTED(ENDRPCENT_TYPE, $k5_cv_type_endrpcent, [Define as return type of endrpcent])
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
# bswap_16 is a macro in byteswap.h under GNU libc
Packit Service 99d1c0
AC_MSG_CHECKING(for bswap_16)
Packit Service 99d1c0
AC_CACHE_VAL(krb5_cv_bswap_16,[
Packit Service 99d1c0
AC_TRY_LINK([#if HAVE_BYTESWAP_H
Packit Service 99d1c0
#include <byteswap.h>
Packit Service 99d1c0
#endif],[bswap_16(37);],krb5_cv_bswap_16=yes,krb5_cv_bswap_16=no)])
Packit Service 99d1c0
AC_MSG_RESULT($krb5_cv_bswap_16)
Packit Service 99d1c0
if test "$krb5_cv_bswap_16" = yes; then
Packit Service 99d1c0
  AC_DEFINE(HAVE_BSWAP_16,1,[Define to 1 if bswap_16 is available via byteswap.h])
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_MSG_CHECKING(for bswap_64)
Packit Service 99d1c0
AC_CACHE_VAL(krb5_cv_bswap_64,[
Packit Service 99d1c0
AC_TRY_LINK([#if HAVE_BYTESWAP_H
Packit Service 99d1c0
#include <byteswap.h>
Packit Service 99d1c0
#endif],[bswap_64(37);],krb5_cv_bswap_64=yes,krb5_cv_bswap_64=no)])
Packit Service 99d1c0
AC_MSG_RESULT($krb5_cv_bswap_64)
Packit Service 99d1c0
if test "$krb5_cv_bswap_64" = yes; then
Packit Service 99d1c0
  AC_DEFINE(HAVE_BSWAP_64,1,[Define to 1 if bswap_64 is available via byteswap.h])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
# Needed for ksu and some appl stuff.
Packit Service 99d1c0
Packit Service 99d1c0
case $krb5_cv_host in
Packit Service 99d1c0
alpha*-dec-osf*)
Packit Service 99d1c0
	AC_CHECK_LIB(security,setluid,
Packit Service 99d1c0
		AC_DEFINE(HAVE_SETLUID,1,[Define if setluid provided in OSF/1 security library])
Packit Service 99d1c0
		KSU_LIBS="-lsecurity"
Packit Service 99d1c0
	)
Packit Service 99d1c0
	;;
Packit Service 99d1c0
esac
Packit Service 99d1c0
AC_SUBST(KSU_LIBS)
Packit Service 99d1c0
Packit Service 99d1c0
if test $ac_cv_func_setenv = no || test $ac_cv_func_unsetenv = no \
Packit Service 99d1c0
  || test $ac_cv_func_getenv = no; then
Packit Service 99d1c0
  SETENVOBJ=setenv.o
Packit Service 99d1c0
else
Packit Service 99d1c0
  SETENVOBJ=
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(SETENVOBJ)
Packit Service 99d1c0
Packit Service 99d1c0
# Check what the return types for gethostbyname_r and getservbyname_r are.
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_FUNC(gethostbyname_r,[
Packit Service 99d1c0
ac_cv_func_gethostbyname_r=yes
Packit Service 99d1c0
if test "$ac_cv_func_gethostbyname_r" = yes; then
Packit Service 99d1c0
  AC_MSG_CHECKING([if gethostbyname_r returns an int])
Packit Service 99d1c0
  AC_CACHE_VAL(krb5_cv_gethostbyname_r_returns_int,
Packit Service 99d1c0
  [AC_TRY_COMPILE([#include <netdb.h>
Packit Service 99d1c0
  extern int gethostbyname_r ();], [1;],
Packit Service 99d1c0
  krb5_cv_gethostbyname_r_returns_int=yes,
Packit Service 99d1c0
  krb5_cv_gethostbyname_r_returns_int=no)])
Packit Service 99d1c0
  AC_MSG_RESULT($krb5_cv_gethostbyname_r_returns_int)
Packit Service 99d1c0
Packit Service 99d1c0
  AC_MSG_CHECKING([if gethostbyname_r returns a pointer])
Packit Service 99d1c0
  AC_CACHE_VAL(krb5_cv_gethostbyname_r_returns_ptr,
Packit Service 99d1c0
  [AC_TRY_COMPILE([#include <netdb.h>
Packit Service 99d1c0
  extern struct hostent *gethostbyname_r ();], [1;],
Packit Service 99d1c0
  krb5_cv_gethostbyname_r_returns_ptr=yes,
Packit Service 99d1c0
  krb5_cv_gethostbyname_r_returns_ptr=no)])
Packit Service 99d1c0
  AC_MSG_RESULT($krb5_cv_gethostbyname_r_returns_ptr)
Packit Service 99d1c0
Packit Service 99d1c0
  if test "$krb5_cv_gethostbyname_r_returns_int" = "$krb5_cv_gethostbyname_r_returns_ptr"; then
Packit Service 99d1c0
    AC_MSG_WARN(cannot determine return type of gethostbyname_r -- disabling)
Packit Service 99d1c0
    ac_cv_func_gethostbyname_r=no
Packit Service 99d1c0
  fi
Packit Service 99d1c0
  if test "$krb5_cv_gethostbyname_r_returns_int" = yes; then
Packit Service 99d1c0
    AC_DEFINE(GETHOSTBYNAME_R_RETURNS_INT, 1, [Define if gethostbyname_r returns int rather than struct hostent * ])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
if test "$ac_cv_func_gethostbyname_r" = yes; then
Packit Service 99d1c0
  AC_DEFINE(HAVE_GETHOSTBYNAME_R, 1, [Define if gethostbyname_r exists and its return type is known])
Packit Service 99d1c0
  AC_CHECK_FUNC(gethostbyaddr_r)
Packit Service 99d1c0
fi
Packit Service 99d1c0
])
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
# PTHREAD_CFLAGS changes which variant of these functions is declared
Packit Service 99d1c0
# on Solaris 11, so use it for these tests.
Packit Service 99d1c0
old_CFLAGS=$CFLAGS
Packit Service 99d1c0
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
Packit Service 99d1c0
AC_CHECK_FUNC(getpwnam_r,ac_cv_func_getpwnam_r=yes,ac_cv_func_getpwnam_r=no)
Packit Service 99d1c0
AC_CHECK_FUNC(getpwuid_r,ac_cv_func_getpwuid_r=yes,ac_cv_func_getpwuid_r=no)
Packit Service 99d1c0
if test "$ac_cv_func_getpwnam_r" = yes; then
Packit Service 99d1c0
  AC_MSG_CHECKING([return type of getpwnam_r])
Packit Service 99d1c0
  AC_CACHE_VAL(krb5_cv_getpwnam_r_return_type,
Packit Service 99d1c0
  [AC_TRY_COMPILE([#include <pwd.h>
Packit Service 99d1c0
   extern int getpwnam_r();], [1;],
Packit Service 99d1c0
   getpwnam_r_returns_int=yes,getpwnam_r_returns_int=no)
Packit Service 99d1c0
   AC_TRY_COMPILE([#include <pwd.h>
Packit Service 99d1c0
   extern struct passwd *getpwnam_r();], [1;],
Packit Service 99d1c0
   getpwnam_r_returns_ptr=yes,getpwnam_r_returns_ptr=no)
Packit Service 99d1c0
   case "$getpwnam_r_returns_int/$getpwnam_r_returns_ptr" in
Packit Service 99d1c0
     yes/no) krb5_cv_getpwnam_r_return_type=int ;;
Packit Service 99d1c0
     no/yes) krb5_cv_getpwnam_r_return_type=ptr ;;
Packit Service 99d1c0
     *) krb5_cv_getpwnam_r_return_type=unknown ;;
Packit Service 99d1c0
   esac])
Packit Service 99d1c0
  AC_MSG_RESULT($krb5_cv_getpwnam_r_return_type)
Packit Service 99d1c0
  if test $krb5_cv_getpwnam_r_return_type = int; then
Packit Service 99d1c0
    AC_DEFINE(GETPWNAM_R_RETURNS_INT, 1, [Define if getpwnam_r returns an int])
Packit Service 99d1c0
  elif test $krb5_cv_getpwnam_r_return_type = unknown; then
Packit Service 99d1c0
    AC_MSG_WARN([Cannot determine getpwnam_r return type, disabling getpwnam_r])
Packit Service 99d1c0
    ac_cv_func_getpwnam_r=no
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
if test "$ac_cv_func_getpwnam_r" = yes; then
Packit Service 99d1c0
  AC_MSG_CHECKING([number of arguments to getpwnam_r])
Packit Service 99d1c0
  AC_CACHE_VAL(krb5_cv_getpwnam_r_args,
Packit Service 99d1c0
  [AC_TRY_COMPILE([#include <pwd.h>
Packit Service 99d1c0
   struct passwd pwx; char buf[1024];],
Packit Service 99d1c0
   [getpwnam_r("", &pwx, buf, sizeof(buf));], args4=yes, args4=no)
Packit Service 99d1c0
   AC_TRY_COMPILE([#include <pwd.h>
Packit Service 99d1c0
   struct passwd pwx, *p; char buf[1024];],
Packit Service 99d1c0
   [getpwnam_r("", &pwx, buf, sizeof(buf), &p);], args5=yes, args5=no)
Packit Service 99d1c0
   case $args4/$args5 in
Packit Service 99d1c0
     yes/no) krb5_cv_getpwnam_r_args=4 ;;
Packit Service 99d1c0
     no/yes) krb5_cv_getpwnam_r_args=5 ;;
Packit Service 99d1c0
     *) krb5_cv_getpwnam_r_args=unknown ;;
Packit Service 99d1c0
   esac])
Packit Service 99d1c0
  AC_MSG_RESULT($krb5_cv_getpwnam_r_args)
Packit Service 99d1c0
  if test "$krb5_cv_getpwnam_r_args" = unknown; then
Packit Service 99d1c0
    AC_MSG_WARN([Cannot determine number of arguments to getpwnam_r, disabling its use.])
Packit Service 99d1c0
    ac_cv_func_getpwnam_r=no
Packit Service 99d1c0
  else
Packit Service 99d1c0
    AC_DEFINE(HAVE_GETPWNAM_R,1,[Define if getpwnam_r is available and useful.])
Packit Service 99d1c0
    if test "$krb5_cv_getpwnam_r_args" = 4; then
Packit Service 99d1c0
      AC_DEFINE(GETPWNAM_R_4_ARGS,1,[Define if getpwnam_r exists but takes only 4 arguments (e.g., POSIX draft 6 implementations like some Solaris releases).])
Packit Service 99d1c0
    fi
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
CFLAGS=$old_CFLAGS
Packit Service 99d1c0
Packit Service 99d1c0
if test "$ac_cv_func_getpwnam_r" = no && test "$ac_cv_func_getpwuid_r" = yes; then
Packit Service 99d1c0
  # Actually, we could do this check, and the corresponding checks
Packit Service 99d1c0
  # for return type and number of arguments, but I doubt we'll run
Packit Service 99d1c0
  # into a system where we'd get to use getpwuid_r but not getpwnam_r.
Packit Service 99d1c0
  AC_MSG_NOTICE([getpwnam_r not useful, so disabling getpwuid_r too])
Packit Service 99d1c0
  ac_cv_func_getpwuid_r=no
Packit Service 99d1c0
fi
Packit Service 99d1c0
if test "$ac_cv_func_getpwuid_r" = yes; then
Packit Service 99d1c0
  AC_DEFINE(HAVE_GETPWUID_R,1,[Define if getpwuid_r is available and useful.])
Packit Service 99d1c0
  # Hack: Assume getpwuid_r is the shorter form if getpwnam_r is.
Packit Service 99d1c0
  if test "$krb5_cv_getpwnam_r_args" = 4; then
Packit Service 99d1c0
    AC_DEFINE(GETPWUID_R_4_ARGS,1,[Define if getpwuid_r exists but takes only 4 arguments (e.g., POSIX draft 6 implementations like some Solaris releases).])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
if test "$ac_cv_func_gmtime_r" = yes; then
Packit Service 99d1c0
  AC_MSG_CHECKING([whether gmtime_r returns int])
Packit Service 99d1c0
  AC_CACHE_VAL(krb5_cv_gmtime_r_returns_int,
Packit Service 99d1c0
  [AC_TRY_COMPILE([#include <time.h>
Packit Service 99d1c0
   extern int gmtime_r ();], [1;], return_int=yes, return_int=no)
Packit Service 99d1c0
   AC_TRY_COMPILE([#include <time.h>
Packit Service 99d1c0
   extern struct tm *gmtime_r ();], [1;], return_ptr=yes, return_ptr=no)
Packit Service 99d1c0
   case $return_int/$return_ptr in
Packit Service 99d1c0
     yes/no) krb5_cv_gmtime_r_returns_int=yes ;;
Packit Service 99d1c0
     no/yes) krb5_cv_gmtime_r_returns_int=no ;;
Packit Service 99d1c0
     *)      # Can't figure it out, punt the function.
Packit Service 99d1c0
             ac_cv_func_gmtime_r=no ;;
Packit Service 99d1c0
   esac])
Packit Service 99d1c0
  if test "$ac_cv_func_gmtime_r" = no; then
Packit Service 99d1c0
    AC_MSG_RESULT(unknown -- ignoring gmtime_r)
Packit Service 99d1c0
  else
Packit Service 99d1c0
    AC_MSG_RESULT($krb5_cv_gmtime_r_returns_int)
Packit Service 99d1c0
    if test "$krb5_cv_gmtime_r_returns_int" = yes; then
Packit Service 99d1c0
      AC_DEFINE(GMTIME_R_RETURNS_INT,1,[Define if gmtime_r returns int instead of struct tm pointer, as on old HP-UX systems.])
Packit Service 99d1c0
    fi
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_FUNC(getservbyname_r,[
Packit Service 99d1c0
ac_cv_func_getservbyname_r=yes
Packit Service 99d1c0
if test "$ac_cv_func_getservbyname_r" = yes; then
Packit Service 99d1c0
  AC_MSG_CHECKING([if getservbyname_r returns an int])
Packit Service 99d1c0
  AC_CACHE_VAL(krb5_cv_getservbyname_r_returns_int,
Packit Service 99d1c0
  [AC_TRY_COMPILE([#include <netdb.h>
Packit Service 99d1c0
  extern int getservbyname_r ();], [1;],
Packit Service 99d1c0
  krb5_cv_getservbyname_r_returns_int=yes,
Packit Service 99d1c0
  krb5_cv_getservbyname_r_returns_int=no)])
Packit Service 99d1c0
  AC_MSG_RESULT($krb5_cv_getservbyname_r_returns_int)
Packit Service 99d1c0
Packit Service 99d1c0
  AC_MSG_CHECKING([if getservbyname_r returns a pointer])
Packit Service 99d1c0
  AC_CACHE_VAL(krb5_cv_getservbyname_r_returns_ptr,
Packit Service 99d1c0
  [AC_TRY_COMPILE([#include <netdb.h>
Packit Service 99d1c0
  extern struct servent *getservbyname_r ();], [1;],
Packit Service 99d1c0
  krb5_cv_getservbyname_r_returns_ptr=yes,
Packit Service 99d1c0
  krb5_cv_getservbyname_r_returns_ptr=no)])
Packit Service 99d1c0
  AC_MSG_RESULT($krb5_cv_getservbyname_r_returns_ptr)
Packit Service 99d1c0
Packit Service 99d1c0
  if test "$krb5_cv_getservbyname_r_returns_int" = "$krb5_cv_getservbyname_r_returns_ptr"; then
Packit Service 99d1c0
    AC_MSG_WARN(cannot determine return type of getservbyname_r -- disabling)
Packit Service 99d1c0
    ac_cv_func_getservbyname_r=no
Packit Service 99d1c0
  fi
Packit Service 99d1c0
  if test "$krb5_cv_getservbyname_r_returns_int" = yes; then
Packit Service 99d1c0
    AC_DEFINE(GETSERVBYNAME_R_RETURNS_INT, 1, [Define if getservbyname_r returns int rather than struct servent * ])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
if test "$ac_cv_func_getservbyname_r" = yes; then
Packit Service 99d1c0
  AC_DEFINE(HAVE_GETSERVBYNAME_R, 1, [Define if getservbyname_r exists and its return type is known])
Packit Service 99d1c0
  AC_CHECK_FUNC(getservbyport_r)
Packit Service 99d1c0
fi
Packit Service 99d1c0
])
Packit Service 99d1c0
Packit Service 99d1c0
HAVE_YYLINENO
Packit Service 99d1c0
CHECK_DIRENT
Packit Service 99d1c0
AC_TYPE_UID_T
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_HEADER(termios.h,
Packit Service 99d1c0
[AC_CHECK_FUNC([tcsetattr],
Packit Service 99d1c0
  AC_DEFINE(POSIX_TERMIOS,1,[Define if termios.h exists and tcsetattr exists]))])
Packit Service 99d1c0
Packit Service 99d1c0
KRB5_SIGTYPE
Packit Service 99d1c0
AC_CHECK_HEADERS(poll.h stdlib.h string.h stddef.h sys/types.h sys/file.h sys/param.h sys/stat.h sys/time.h netinet/in.h sys/uio.h sys/filio.h sys/select.h time.h paths.h errno.h)
Packit Service 99d1c0
Packit Service 99d1c0
# If compiling with IPv6 support, test if in6addr_any functions.
Packit Service 99d1c0
# Irix 6.5.16 defines it, but lacks support in the C library.
Packit Service 99d1c0
if test $krb5_cv_inet6 = yes || test "$krb5_cv_inet6_with_dinet6" = yes ; then
Packit Service 99d1c0
AC_CACHE_CHECK([for in6addr_any definition in library],
Packit Service 99d1c0
  krb5_cv_var_in6addr_any,
Packit Service 99d1c0
[AC_TRY_LINK([
Packit Service 99d1c0
#ifdef HAVE_SYS_TYPES_H
Packit Service 99d1c0
#include <sys/types.h>
Packit Service 99d1c0
#endif
Packit Service 99d1c0
#include <sys/socket.h>
Packit Service 99d1c0
#include <netinet/in.h>
Packit Service 99d1c0
#include <netdb.h>
Packit Service 99d1c0
],[
Packit Service 99d1c0
  struct sockaddr_in6 in;
Packit Service 99d1c0
  in.sin6_addr = in6addr_any;
Packit Service 99d1c0
  printf("%x", &in);
Packit Service 99d1c0
],krb5_cv_var_in6addr_any=yes, krb5_cv_var_in6addr_any=no)])
Packit Service 99d1c0
  if test $krb5_cv_var_in6addr_any = no; then
Packit Service 99d1c0
    AC_DEFINE(NEED_INSIXADDR_ANY,1,[Define if in6addr_any is not defined in libc])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
# then from osconf.h, we have
Packit Service 99d1c0
Packit Service 99d1c0
AC_HEADER_TIME
Packit Service 99d1c0
AC_CHECK_TYPE(time_t, long)
Packit Service 99d1c0
AC_CHECK_SIZEOF(time_t)
Packit Service 99d1c0
SIZEOF_TIME_T=$ac_cv_sizeof_time_t
Packit Service 99d1c0
AC_SUBST(SIZEOF_TIME_T)
Packit Service 99d1c0
Packit Service 99d1c0
# Determine where to put the replay cache.
Packit Service 99d1c0
Packit Service 99d1c0
AC_MSG_CHECKING([for replay cache directory])
Packit Service 99d1c0
AC_CACHE_VAL(krb5_cv_sys_rcdir,
Packit Service 99d1c0
[
Packit Service 99d1c0
if test $cross_compiling = yes; then
Packit Service 99d1c0
	krb5_cv_sys_rcdir=/var/tmp
Packit Service 99d1c0
else
Packit Service 99d1c0
	for t_dir in /var/tmp /usr/tmp /var/usr/tmp /tmp ; do
Packit Service 99d1c0
		test -d $t_dir || continue
Packit Service 99d1c0
		krb5_cv_sys_rcdir=$t_dir
Packit Service 99d1c0
		break
Packit Service 99d1c0
	done
Packit Service 99d1c0
fi])
Packit Service 99d1c0
AC_MSG_RESULT($krb5_cv_sys_rcdir)
Packit Service 99d1c0
KRB5_RCTMPDIR=$krb5_cv_sys_rcdir
Packit Service 99d1c0
AC_SUBST(KRB5_RCTMPDIR)
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
AC_MSG_CHECKING(for socklen_t)
Packit Service 99d1c0
AC_CACHE_VAL(krb5_cv_has_type_socklen_t,
Packit Service 99d1c0
[AC_TRY_COMPILE(
Packit Service 99d1c0
[#include <sys/types.h>
Packit Service 99d1c0
#include <sys/socket.h>
Packit Service 99d1c0
],[sizeof (socklen_t);],
Packit Service 99d1c0
krb5_cv_has_type_socklen_t=yes,krb5_cv_has_type_socklen_t=no)])
Packit Service 99d1c0
AC_MSG_RESULT($krb5_cv_has_type_socklen_t)
Packit Service 99d1c0
if test $krb5_cv_has_type_socklen_t = yes; then
Packit Service 99d1c0
    AC_DEFINE(HAVE_SOCKLEN_T,1,[Define if there is a socklen_t type. If not, probably use size_t])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
AC_MSG_CHECKING(for struct lifconf)
Packit Service 99d1c0
AC_CACHE_VAL(krb5_cv_has_struct_lifconf,
Packit Service 99d1c0
[AC_TRY_COMPILE(
Packit Service 99d1c0
[#include <sys/socket.h>
Packit Service 99d1c0
#include <net/if.h>
Packit Service 99d1c0
],[sizeof (struct lifconf);],
Packit Service 99d1c0
krb5_cv_has_struct_lifconf=yes,krb5_cv_has_struct_lifconf=no)])
Packit Service 99d1c0
AC_MSG_RESULT($krb5_cv_has_struct_lifconf)
Packit Service 99d1c0
if test $krb5_cv_has_struct_lifconf = yes; then
Packit Service 99d1c0
    AC_DEFINE(HAVE_STRUCT_LIFCONF,1,[Define if there is a struct lifconf.])
Packit Service 99d1c0
fi
Packit Service 99d1c0
# HP-UX 11 uses stuct if_laddrconf
Packit Service 99d1c0
AC_MSG_CHECKING(for struct if_laddrconf)
Packit Service 99d1c0
AC_CACHE_VAL(krb5_cv_has_struct_if_laddrconf,
Packit Service 99d1c0
[AC_TRY_COMPILE(
Packit Service 99d1c0
[#include <sys/socket.h>
Packit Service 99d1c0
#include <net/if.h>
Packit Service 99d1c0
#include <net/if6.h>
Packit Service 99d1c0
],[sizeof (struct if_laddrconf);],
Packit Service 99d1c0
krb5_cv_has_struct_if_laddrconf=yes,krb5_cv_has_struct_if_laddrconf=no)])
Packit Service 99d1c0
AC_MSG_RESULT($krb5_cv_has_struct_if_laddrconf)
Packit Service 99d1c0
if test $krb5_cv_has_struct_if_laddrconf = yes; then
Packit Service 99d1c0
    AC_DEFINE(HAVE_STRUCT_IF_LADDRCONF,1,[Define if there is a struct if_laddrconf.])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
AC_MSG_CHECKING([for h_errno in netdb.h])
Packit Service 99d1c0
AC_CACHE_VAL(krb5_cv_header_netdb_h_h_errno,
Packit Service 99d1c0
[AC_TRY_COMPILE(
Packit Service 99d1c0
	[#include <netdb.h>],
Packit Service 99d1c0
	[int x = h_errno;], krb5_cv_header_netdb_h_h_errno=yes,
Packit Service 99d1c0
	krb5_cv_header_netdb_h_h_errno=no)])
Packit Service 99d1c0
AC_MSG_RESULT($krb5_cv_header_netdb_h_h_errno)
Packit Service 99d1c0
if test $krb5_cv_header_netdb_h_h_errno = yes; then
Packit Service 99d1c0
    AC_DEFINE([HAVE_NETDB_H_H_ERRNO], 1,
Packit Service 99d1c0
	[Define if netdb.h declares h_errno])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
AC_ARG_ENABLE([athena],
Packit Service 99d1c0
[  --enable-athena         build with MIT Project Athena configuration],
Packit Service 99d1c0
AC_DEFINE(KRB5_ATHENA_COMPAT,1,[Define if MIT Project Athena default configuration should be used]),)
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
AC_C_INLINE
Packit Service 99d1c0
AH_TOP([
Packit Service 99d1c0
#ifndef KRB5_AUTOCONF_H
Packit Service 99d1c0
#define KRB5_AUTOCONF_H
Packit Service 99d1c0
])
Packit Service 99d1c0
AH_BOTTOM([
Packit Service 99d1c0
#if defined(__GNUC__) && !defined(inline)
Packit Service 99d1c0
/* Silence gcc pedantic warnings about ANSI C.  */
Packit Service 99d1c0
# define inline __inline__
Packit Service 99d1c0
#endif
Packit Service 99d1c0
#endif /* KRB5_AUTOCONF_H */
Packit Service 99d1c0
])
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_TYPES([struct cmsghdr, struct in_pktinfo, struct in6_pktinfo, struct sockaddr_storage], , , [
Packit Service 99d1c0
#include <sys/types.h>
Packit Service 99d1c0
#include <sys/socket.h>
Packit Service 99d1c0
#include <netinet/in.h>
Packit Service 99d1c0
])
Packit Service 99d1c0
AC_CHECK_TYPES([struct rt_msghdr], , , [
Packit Service 99d1c0
#include <sys/socket.h>
Packit Service 99d1c0
#include <net/if.h>
Packit Service 99d1c0
#include <net/route.h>
Packit Service 99d1c0
])
Packit Service 99d1c0
Packit Service 99d1c0
# Tests for 64-bit edwards25519 code.
Packit Service 99d1c0
AC_CHECK_SIZEOF([size_t])
Packit Service 99d1c0
AC_CHECK_TYPES([__int128_t, __uint128_t])
Packit Service 99d1c0
Packit Service 99d1c0
# stuff for util/profile
Packit Service 99d1c0
Packit Service 99d1c0
# AC_KRB5_TCL already done
Packit Service 99d1c0
DO_TCL=
Packit Service 99d1c0
test "$TCL_LIBS" != "" && DO_TCL=ok
Packit Service 99d1c0
AC_SUBST(DO_TCL)
Packit Service 99d1c0
Packit Service 99d1c0
# types libdb2 wants
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_TYPES([ssize_t, u_char, u_int, u_long, u_int8_t, u_int16_t, u_int32_t, int8_t, int16_t, int32_t])
Packit Service 99d1c0
Packit Service 99d1c0
# Some libdb2 test programs want a shell that supports functions.
Packit Service 99d1c0
FCTSH=false
Packit Service 99d1c0
AC_PATH_PROG(SH,sh,false)
Packit Service 99d1c0
AC_PATH_PROG(SH5,sh5,false)
Packit Service 99d1c0
AC_PATH_PROG(BASH,bash,false)
Packit Service 99d1c0
for prog in $SH $SH5 $BASH; do
Packit Service 99d1c0
  AC_MSG_CHECKING(if $prog supports functions)
Packit Service 99d1c0
  if $prog -c 'foo() { true; }; foo' >/dev/null 2>&1; then
Packit Service 99d1c0
    AC_MSG_RESULT(yes)
Packit Service 99d1c0
    FCTSH=$prog
Packit Service 99d1c0
    break
Packit Service 99d1c0
  else
Packit Service 99d1c0
    AC_MSG_RESULT(no)
Packit Service 99d1c0
  fi
Packit Service 99d1c0
done
Packit Service 99d1c0
AC_SUBST(FCTSH)
Packit Service 99d1c0
Packit Service 99d1c0
# Test for POSIX 2001 *printf support (X/Open System Interfaces extension
Packit Service 99d1c0
# to ANSI/ISO C 1999 specification).  Specifically, positional
Packit Service 99d1c0
# specifications; not checking for other features like %zx at present.
Packit Service 99d1c0
AC_MSG_CHECKING(for POSIX printf positional specification support)
Packit Service 99d1c0
AC_CACHE_VAL(ac_cv_printf_positional,[
Packit Service 99d1c0
AC_TRY_RUN([
Packit Service 99d1c0
#include <stdio.h>
Packit Service 99d1c0
#include <string.h>
Packit Service 99d1c0
const char expected[] = "200 100";
Packit Service 99d1c0
int main () {
Packit Service 99d1c0
    char buf[30];
Packit Service 99d1c0
    sprintf(buf, "%2\$x %1\$d", 100, 512);
Packit Service 99d1c0
    if (strcmp(expected, buf)) {
Packit Service 99d1c0
	fprintf(stderr,"bad result: <%s> wanted: <%s>\n", buf, expected);
Packit Service 99d1c0
	return 1;
Packit Service 99d1c0
    }
Packit Service 99d1c0
    return 0;
Packit Service 99d1c0
}],
Packit Service 99d1c0
  ac_cv_printf_positional=yes,
Packit Service 99d1c0
  ac_cv_printf_positional=no,
Packit Service 99d1c0
  AC_MSG_ERROR([Cannot test for printf positional argument support when cross compiling]))])
Packit Service 99d1c0
# Nothing for autoconf.h for now.
Packit Service 99d1c0
AC_MSG_RESULT($ac_cv_printf_positional)
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
# for t_locate_kdc test
Packit Service 99d1c0
Packit Service 99d1c0
AC_PATH_PROG(DIG, dig, false)
Packit Service 99d1c0
AC_PATH_PROG(NSLOOKUP, nslookup, false)
Packit Service 99d1c0
Packit Service 99d1c0
# for kadmin
Packit Service 99d1c0
Packit Service 99d1c0
AC_PROG_YACC
Packit Service 99d1c0
ath_compat=
Packit Service 99d1c0
AC_ARG_ENABLE([athena],
Packit Service 99d1c0
[  --enable-athena         build with MIT Project Athena configuration],
Packit Service 99d1c0
ath_compat=compat,)
Packit Service 99d1c0
# The following are tests for the presence of programs required for
Packit Service 99d1c0
# kadmin testing.
Packit Service 99d1c0
AC_CHECK_PROG(have_RUNTEST,runtest,runtest)
Packit Service 99d1c0
AC_CHECK_PROG(have_PERL,perl,perl)
Packit Service 99d1c0
if test "$have_PERL" = perl -a "$have_RUNTEST" = runtest -a "$TCL_LIBS" != ""; then
Packit Service 99d1c0
	DO_TEST=ok
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(DO_TEST)
Packit Service 99d1c0
Packit Service 99d1c0
# The following are substituted into kadmin/testing/scripts/env-setup.sh
Packit Service 99d1c0
RBUILD=`pwd`
Packit Service 99d1c0
AC_SUBST(RBUILD)
Packit Service 99d1c0
case "$srcdir" in
Packit Service 99d1c0
/*)	S_TOP=$srcdir ;;
Packit Service 99d1c0
*)	S_TOP=`pwd`/$srcdir ;;
Packit Service 99d1c0
esac
Packit Service 99d1c0
AC_SUBST(S_TOP)
Packit Service 99d1c0
AC_PATH_PROG(EXPECT,expect)
Packit Service 99d1c0
# For kadmin/testing/util/Makefile.in
Packit Service 99d1c0
if test "$TCL_LIBS" != "" ;  then
Packit Service 99d1c0
	DO_ALL=tcl
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(DO_ALL)
Packit Service 99d1c0
KRB5_AC_PRIOCNTL_HACK
Packit Service 99d1c0
K5_GEN_FILE(kadmin/testing/scripts/env-setup.sh:kadmin/testing/scripts/env-setup.shin)
Packit Service 99d1c0
# for lib/kadm5
Packit Service 99d1c0
AC_CHECK_PROG(RUNTEST,runtest,runtest)
Packit Service 99d1c0
AC_CHECK_PROG(PERL,perl,perl)
Packit Service 99d1c0
Packit Service 99d1c0
# lib/gssapi
Packit Service 99d1c0
AC_CHECK_HEADER(xom.h,[
Packit Service 99d1c0
	include_xom='awk '\''END{printf("%cinclude <xom.h>\n", 35);}'\'' < /dev/null'], [
Packit Service 99d1c0
	include_xom='echo "/* no xom.h */"'])
Packit Service 99d1c0
AC_SUBST(include_xom)
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
# lib/rpc
Packit Service 99d1c0
### Check where struct rpcent is declared.
Packit Service 99d1c0
Packit Service 99d1c0
# This is necessary to determine:
Packit Service 99d1c0
# 1. If /usr/include/netdb.h declares struct rpcent
Packit Service 99d1c0
# 2. If /usr/include/rpc/netdb.h declares struct rpcent
Packit Service 99d1c0
Packit Service 99d1c0
# We have our own rpc/netdb.h, and if /usr/include/netdb.h includes
Packit Service 99d1c0
# rpc/netdb.h, then nastiness could happen.
Packit Service 99d1c0
Packit Service 99d1c0
# Logic: If /usr/include/netdb.h declares struct rpcent, then check
Packit Service 99d1c0
# rpc/netdb.h.  If /usr/include/rpc/netdb.h declares struct rpcent,
Packit Service 99d1c0
# then define STRUCT_RPCENT_IN_RPC_NETDB_H, otherwise do not.  If
Packit Service 99d1c0
# neither netdb.h nor rpc/netdb.h declares struct rpcent, then define
Packit Service 99d1c0
# STRUCT_RPCENT_IN_RPC_NETDB_H anyway.
Packit Service 99d1c0
Packit Service 99d1c0
AC_MSG_CHECKING([where struct rpcent is declared])
Packit Service 99d1c0
AC_TRY_COMPILE([#include <netdb.h>],
Packit Service 99d1c0
[struct rpcent e;
Packit Service 99d1c0
char c = e.r_name[0];
Packit Service 99d1c0
int i = e.r_number;],
Packit Service 99d1c0
[AC_TRY_COMPILE([#include <rpc/netdb.h>],
Packit Service 99d1c0
[struct rpcent e;
Packit Service 99d1c0
char c = e.r_name[0];
Packit Service 99d1c0
int i = e.r_number;],
Packit Service 99d1c0
[AC_MSG_RESULT([rpc/netdb.h])
Packit Service 99d1c0
rpcent_define='#define STRUCT_RPCENT_IN_RPC_NETDB_H'],
Packit Service 99d1c0
[AC_MSG_RESULT([netdb.h])])],
Packit Service 99d1c0
[AC_MSG_RESULT([nowhere])
Packit Service 99d1c0
rpcent_define='#define STRUCT_RPCENT_IN_RPC_NETDB_H'])
Packit Service 99d1c0
AC_SUBST(rpcent_define)
Packit Service 99d1c0
Packit Service 99d1c0
AC_CHECK_HEADERS(sys/select.h sys/time.h unistd.h)
Packit Service 99d1c0
if test $ac_cv_header_sys_select_h = yes; then
Packit Service 99d1c0
  GSSRPC__SYS_SELECT_H='#include <sys/select.h>'
Packit Service 99d1c0
else
Packit Service 99d1c0
  GSSRPC__SYS_SELECT_H='/* #include <sys/select.h> */'
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(GSSRPC__SYS_SELECT_H)
Packit Service 99d1c0
if test $ac_cv_header_sys_time_h = yes; then
Packit Service 99d1c0
  GSSRPC__SYS_TIME_H='#include <sys/time.h>'
Packit Service 99d1c0
else
Packit Service 99d1c0
  GSSRPC__SYS_TIME_H='/* #include <sys/time.h> */'
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(GSSRPC__SYS_TIME_H)
Packit Service 99d1c0
if test $ac_cv_header_unistd_h = yes; then
Packit Service 99d1c0
  GSSRPC__UNISTD_H='#include <unistd.h>'
Packit Service 99d1c0
else
Packit Service 99d1c0
  GSSRPC__UNISTD_H='/* #include <unistd.h> */'
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(GSSRPC__UNISTD_H)
Packit Service 99d1c0
Packit Service 99d1c0
AC_CACHE_CHECK([for MAXHOSTNAMELEN in sys/param.h],
Packit Service 99d1c0
  [krb5_cv_header_sys_param_h_maxhostnamelen],
Packit Service 99d1c0
  [AC_TRY_COMPILE([#include <sys/param.h>],
Packit Service 99d1c0
    [int i = MAXHOSTNAMELEN;],
Packit Service 99d1c0
    [krb5_cv_header_sys_param_h_maxhostnamelen=yes],
Packit Service 99d1c0
    [krb5_cv_header_sys_param_h_maxhostnamelen=no])])
Packit Service 99d1c0
AC_CACHE_CHECK([for MAXHOSTNAMELEN in netdb.h],
Packit Service 99d1c0
  [krb5_cv_header_netdb_h_maxhostnamelen],
Packit Service 99d1c0
  [AC_TRY_COMPILE([#include <netdb.h>],
Packit Service 99d1c0
    [int i = MAXHOSTNAMELEN;],
Packit Service 99d1c0
    [krb5_cv_header_netdb_h_maxhostnamelen=yes],
Packit Service 99d1c0
    [krb5_cv_header_netdb_h_maxhostnamelen=no])])
Packit Service 99d1c0
Packit Service 99d1c0
GSSRPC__SYS_PARAM_H='/* #include <sys/param.h> */'
Packit Service 99d1c0
GSSRPC__NETDB_H='/* #include <netdb.h> */'
Packit Service 99d1c0
if test $krb5_cv_header_sys_param_h_maxhostnamelen = yes; then
Packit Service 99d1c0
  GSSRPC__SYS_PARAM_H='#include <sys/param.h>'
Packit Service 99d1c0
else
Packit Service 99d1c0
  if test $krb5_cv_header_netdb_h_maxhostnamelen = yes; then
Packit Service 99d1c0
    GSSRPC__NETDB_H='#include <netdb.h>'
Packit Service 99d1c0
  else
Packit Service 99d1c0
    AC_MSG_WARN([can't find MAXHOSTNAMELEN definition; faking it])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(GSSRPC__SYS_PARAM_H)
Packit Service 99d1c0
AC_SUBST(GSSRPC__NETDB_H)
Packit Service 99d1c0
Packit Service 99d1c0
AC_CACHE_CHECK([for BSD type aliases], [krb5_cv_type_bsdaliases],
Packit Service 99d1c0
  [AC_TRY_COMPILE(
Packit Service 99d1c0
    [#include <sys/types.h>
Packit Service 99d1c0
#if HAVE_UNISTD_H
Packit Service 99d1c0
#include <unistd.h>
Packit Service 99d1c0
#endif],
Packit Service 99d1c0
    [u_char c;
Packit Service 99d1c0
u_int i;
Packit Service 99d1c0
u_long l;], [krb5_cv_type_bsdaliases=yes], [krb5_cv_type_bsdaliases=no])])
Packit Service 99d1c0
if test $krb5_cv_type_bsdaliases = yes; then
Packit Service 99d1c0
  GSSRPC__BSD_TYPEALIASES='/* #undef GSSRPC__BSD_TYPEALIASES */'
Packit Service 99d1c0
else
Packit Service 99d1c0
  GSSRPC__BSD_TYPEALIASES='#define GSSRPC__BSD_TYPEALIASES 1'
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(GSSRPC__BSD_TYPEALIASES)
Packit Service 99d1c0
Packit Service 99d1c0
AC_MSG_CHECKING([return type of setrpcent])
Packit Service 99d1c0
AC_CACHE_VAL(k5_cv_type_setrpcent,
Packit Service 99d1c0
[AC_TRY_COMPILE([#include <netdb.h>
Packit Service 99d1c0
#ifdef __cplusplus
Packit Service 99d1c0
extern "C"
Packit Service 99d1c0
#endif
Packit Service 99d1c0
extern void setrpcent();],
Packit Service 99d1c0
[int i;], k5_cv_type_setrpcent=void, k5_cv_type_setrpcent=int)])
Packit Service 99d1c0
AC_MSG_RESULT($k5_cv_type_setrpcent)
Packit Service 99d1c0
AC_DEFINE_UNQUOTED(SETRPCENT_TYPE, $k5_cv_type_setrpcent, [Define as return type of setrpcent])
Packit Service 99d1c0
Packit Service 99d1c0
AC_MSG_CHECKING([return type of endrpcent])
Packit Service 99d1c0
AC_CACHE_VAL(k5_cv_type_endrpcent,
Packit Service 99d1c0
[AC_TRY_COMPILE([#include <netdb.h>
Packit Service 99d1c0
#ifdef __cplusplus
Packit Service 99d1c0
extern "C"
Packit Service 99d1c0
#endif
Packit Service 99d1c0
extern void endrpcent();],
Packit Service 99d1c0
[int i;], k5_cv_type_endrpcent=void, k5_cv_type_endrpcent=int)])
Packit Service 99d1c0
AC_MSG_RESULT($k5_cv_type_endrpcent)
Packit Service 99d1c0
AC_DEFINE_UNQUOTED(ENDRPCENT_TYPE, $k5_cv_type_endrpcent, [Define as return type of endrpcent])
Packit Service 99d1c0
K5_GEN_FILE(include/gssrpc/types.h:include/gssrpc/types.hin)
Packit Service 99d1c0
PASS=tcp
Packit Service 99d1c0
AC_SUBST(PASS)
Packit Service 99d1c0
Packit Service 99d1c0
# for pkinit
Packit Service 99d1c0
AC_ARG_ENABLE([pkinit],
Packit Service 99d1c0
[  --disable-pkinit        disable PKINIT plugin support],,
Packit Service 99d1c0
enable_pkinit=try)
Packit Service 99d1c0
if test "$enable_pkinit" = yes || test "$enable_pkinit" = try; then
Packit Service 99d1c0
  AC_CACHE_CHECK(for a recent enough OpenSSL, k5_cv_openssl_version_okay,
Packit Service 99d1c0
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([#include <openssl/opensslv.h>
Packit Service 99d1c0
#if OPENSSL_VERSION_NUMBER < 0x10000000L
Packit Service 99d1c0
# error openssl is too old, need 1.0.0
Packit Service 99d1c0
#endif
Packit Service 99d1c0
int i = 1;
Packit Service 99d1c0
])], k5_cv_openssl_version_okay=yes, k5_cv_openssl_version_okay=no)])
Packit Service 99d1c0
  old_LIBS="$LIBS"
Packit Service 99d1c0
  AC_CHECK_LIB(crypto, PKCS7_get_signer_info)
Packit Service 99d1c0
  LIBS="$old_LIBS"
Packit Service 99d1c0
fi
Packit Service 99d1c0
if test "$k5_cv_openssl_version_okay" = yes && (test "$enable_pkinit" = yes || test "$enable_pkinit" = try); then
Packit Service 99d1c0
  K5_GEN_MAKEFILE(plugins/preauth/pkinit)
Packit Service 99d1c0
  K5_GEN_MAKEFILE(tests/softpkcs11)
Packit Service 99d1c0
  PKINIT=yes
Packit Service 99d1c0
  AC_CHECK_LIB(crypto, CMS_get0_content, [AC_DEFINE([HAVE_OPENSSL_CMS], 1, [Define if OpenSSL supports cms.])])
Packit Service 99d1c0
elif test "$k5_cv_openssl_version_okay" = no && test "$enable_pkinit" = yes; then
Packit Service 99d1c0
  AC_MSG_ERROR([Version of OpenSSL is too old; cannot enable PKINIT.])
Packit Service 99d1c0
else
Packit Service 99d1c0
  AC_DEFINE([DISABLE_PKINIT], 1, [Define to disable PKINIT plugin support])
Packit Service 99d1c0
  AC_MSG_NOTICE([Disabling PKINIT support.])
Packit Service 99d1c0
  PKINIT=no
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(PKINIT)
Packit Service 99d1c0
Packit Service 99d1c0
# for lib/apputils
Packit Service 99d1c0
AC_REPLACE_FUNCS(daemon)
Packit Service 99d1c0
Packit Service 99d1c0
# for tests/
Packit Service 99d1c0
if test x"$RUNTEST" != x; then
Packit Service 99d1c0
	HAVE_RUNTEST=yes
Packit Service 99d1c0
else
Packit Service 99d1c0
	HAVE_RUNTEST=no
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(HAVE_RUNTEST)
Packit Service 99d1c0
Packit Service 99d1c0
# For Python tests.  Python version 3.2.4 is required as prior
Packit Service 99d1c0
# versions do not accept string input to subprocess.Popen.communicate
Packit Service 99d1c0
# when universal_newlines is set.
Packit Service 99d1c0
PYTHON_MINVERSION=3.2.4
Packit Service 99d1c0
AC_SUBST(PYTHON_MINVERSION)
Packit Service 99d1c0
AC_CHECK_PROG(PYTHON,python3,python3)
Packit Service 99d1c0
if test x"$PYTHON" = x; then
Packit Service 99d1c0
	AC_CHECK_PROG(PYTHON,python,python)
Packit Service 99d1c0
fi
Packit Service 99d1c0
HAVE_PYTHON=no
Packit Service 99d1c0
if test x"$PYTHON" != x; then
Packit Service 99d1c0
	wantver="(sys.hexversion >= 0x30204F0)"
Packit Service 99d1c0
	if "$PYTHON" -c "import sys; sys.exit(not $wantver and 1 or 0)"; then
Packit Service 99d1c0
		HAVE_PYTHON=yes
Packit Service 99d1c0
	fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(HAVE_PYTHON)
Packit Service 99d1c0
Packit Service 99d1c0
# For cmocka tests.
Packit Service 99d1c0
CMOCKA_LIBS=
Packit Service 99d1c0
HAVE_CMOCKA=no
Packit Service 99d1c0
HAVE_CMOCKA_H=no
Packit Service 99d1c0
HAVE_CMOCKA_LIB=no
Packit Service 99d1c0
AC_CHECK_HEADER(cmocka.h, [HAVE_CMOCKA_H=yes], :, [
Packit Service 99d1c0
#include <stdarg.h>
Packit Service 99d1c0
#include <stddef.h>
Packit Service 99d1c0
#include <setjmp.h> ])
Packit Service 99d1c0
AC_CHECK_LIB(cmocka, _cmocka_run_group_tests, [HAVE_CMOCKA_LIB=yes])
Packit Service 99d1c0
if test "$HAVE_CMOCKA_LIB" = yes && test "$HAVE_CMOCKA_H" = yes; then
Packit Service 99d1c0
    HAVE_CMOCKA=yes
Packit Service 99d1c0
    CMOCKA_LIBS='-lcmocka'
Packit Service 99d1c0
    AC_DEFINE([HAVE_CMOCKA],1,[Define if cmocka library is available.])
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(HAVE_CMOCKA)
Packit Service 99d1c0
AC_SUBST(CMOCKA_LIBS)
Packit Service 99d1c0
Packit Service 99d1c0
# For URI lookup tests. Requires resolv_wrapper >= 1.1.5 for URI
Packit Service 99d1c0
# support.
Packit Service 99d1c0
HAVE_RESOLV_WRAPPER=0
Packit Service 99d1c0
PKG_CHECK_EXISTS([resolv_wrapper >= 1.1.5], [HAVE_RESOLV_WRAPPER=1])
Packit Service 99d1c0
AC_SUBST(HAVE_RESOLV_WRAPPER)
Packit Service 99d1c0
Packit Service 99d1c0
# for plugins/kdb/db2
Packit Service 99d1c0
Packit Service 99d1c0
# AIX is unusual in that it wants all symbols resolved at link time
Packit Service 99d1c0
#  Fortunately, it will allow us to link the kdb library now, even if
Packit Service 99d1c0
# it is linked again later.
Packit Service 99d1c0
case $krb5_cv_host in
Packit Service 99d1c0
*-*-aix*)
Packit Service 99d1c0
	DB_EXTRA_LIBS=-ldb
Packit Service 99d1c0
	;;
Packit Service 99d1c0
*)
Packit Service 99d1c0
	DB_EXTRA_LIBS=
Packit Service 99d1c0
	;;
Packit Service 99d1c0
esac
Packit Service 99d1c0
AC_SUBST(DB_EXTRA_LIBS)
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
# Check for thread safety issues.
Packit Service 99d1c0
# (Is there a better place for this?)
Packit Service 99d1c0
# tsfuncs="getpwnam_r getpwuid_r gethostbyname_r getservbyname_r gmtime_r localtime_r"
Packit Service 99d1c0
# Removed getpwnam_r and getpwuid_r because include/configure.in has some
Packit Service 99d1c0
# more careful checks, and may decide to pretend that they're not found if
Packit Service 99d1c0
# the function signatures can't be figured out.
Packit Service 99d1c0
tsfuncs="gethostbyname_r getservbyname_r gmtime_r localtime_r"
Packit Service 99d1c0
AC_CHECK_FUNCS($tsfuncs)
Packit Service 99d1c0
if test "$enable_thread_support" = yes; then
Packit Service 99d1c0
  tsmissing=""
Packit Service 99d1c0
  for ts in $tsfuncs; do
Packit Service 99d1c0
    if eval "test \"\${ac_cv_func_$ts}\" != yes"; then
Packit Service 99d1c0
      tsmissing="$tsmissing $ts"
Packit Service 99d1c0
    fi
Packit Service 99d1c0
  done
Packit Service 99d1c0
  if test "$ac_cv_func_res_nsearch/$ac_cv_lib_resolv_res_nsearch" = "no/no"; then
Packit Service 99d1c0
    tsmissing="$tsmissing res_nsearch"
Packit Service 99d1c0
  fi
Packit Service 99d1c0
  if test "$tsmissing" != ""; then
Packit Service 99d1c0
    AC_MSG_WARN([Some functions that are needed for library thread])
Packit Service 99d1c0
    AC_MSG_WARN([safety appear to be missing.])
Packit Service 99d1c0
    for ts in $tsmissing; do
Packit Service 99d1c0
      AC_MSG_WARN([  missing thread-safe function: $ts])
Packit Service 99d1c0
    done
Packit Service 99d1c0
    AC_MSG_WARN([Without these functions, the installed libraries])
Packit Service 99d1c0
    AC_MSG_WARN([may not be thread-safe.])
Packit Service 99d1c0
  fi # tsmissing not empty
Packit Service 99d1c0
fi # enable_thread_support
Packit Service 99d1c0
Packit Service 99d1c0
# Sadly, we seem to have accidentally committed ourselves in 1.4 to
Packit Service 99d1c0
# an ABI that includes the existence of libkrb5support.0 even
Packit Service 99d1c0
# though random apps should never use anything from it.  And on
Packit Service 99d1c0
# the Mac, to which that didn't apply, we can't use major version 0.
Packit Service 99d1c0
Packit Service 99d1c0
case $krb5_cv_host in
Packit Service 99d1c0
*-*-darwin* | *-*-rhapsody*) SUPPORTLIB_MAJOR=1 ;;
Packit Service 99d1c0
*)			     SUPPORTLIB_MAJOR=0 ;;
Packit Service 99d1c0
esac
Packit Service 99d1c0
AC_SUBST(SUPPORTLIB_MAJOR)
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
if test "$COM_ERR_VERSION" = k5 ; then
Packit Service 99d1c0
  K5_GEN_MAKEFILE(util/et)
Packit Service 99d1c0
fi
Packit Service 99d1c0
if test "$SS_VERSION" = k5 ; then
Packit Service 99d1c0
  K5_GEN_MAKEFILE(util/ss)
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
ldap_plugin_dir=""
Packit Service 99d1c0
ldap_lib=""
Packit Service 99d1c0
if test -n "$OPENLDAP_PLUGIN"; then
Packit Service 99d1c0
  AC_CHECK_HEADERS(ldap.h lber.h, :, [AC_MSG_ERROR($ac_header not found)])
Packit Service 99d1c0
  AC_CHECK_LIB(ldap, ldap_str2dn, :, [AC_MSG_ERROR(libldap not found or missing ldap_str2dn)])
Packit Service 99d1c0
Packit Service 99d1c0
  BER_OKAY=0
Packit Service 99d1c0
  AC_CHECK_LIB(ldap, ber_init, [BER_OKAY=1])
Packit Service 99d1c0
  if test "$BER_OKAY" = "1"; then
Packit Service 99d1c0
    LDAP_LIBS='-lldap'
Packit Service 99d1c0
  else
Packit Service 99d1c0
    AC_CHECK_LIB(lber, ber_init, [BER_OKAY=1], [AC_MSG_WARN([libber not found])])
Packit Service 99d1c0
    if test "$BER_OKAY" = "1"; then
Packit Service 99d1c0
      LDAP_LIBS='-lldap -llber'
Packit Service 99d1c0
    else
Packit Service 99d1c0
      AC_ERROR("BER library missing - cannot build LDAP database module")
Packit Service 99d1c0
    fi
Packit Service 99d1c0
  fi
Packit Service 99d1c0
  AC_DEFINE([ENABLE_LDAP], 1, [Define if LDAP KDB support within the Kerberos library (mainly ASN.1 code) should be enabled.])
Packit Service 99d1c0
  AC_SUBST(LDAP_LIBS)
Packit Service 99d1c0
Packit Service 99d1c0
  AC_CHECK_HEADERS([sasl/sasl.h], [HAVE_SASL=yes], [HAVE_SASL=no])
Packit Service 99d1c0
  AC_SUBST(HAVE_SASL)
Packit Service 99d1c0
  if test "$HAVE_SASL" = no; then
Packit Service 99d1c0
    AC_MSG_WARN([not building LDAP SASL support])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
Packit Service 99d1c0
  K5_GEN_MAKEFILE(plugins/kdb/ldap)
Packit Service 99d1c0
  K5_GEN_MAKEFILE(plugins/kdb/ldap/ldap_util)
Packit Service 99d1c0
  K5_GEN_MAKEFILE(plugins/kdb/ldap/libkdb_ldap)
Packit Service 99d1c0
  ldap_plugin_dir='plugins/kdb/ldap plugins/kdb/ldap/ldap_util'
Packit Service 99d1c0
  LDAP=yes
Packit Service 99d1c0
else
Packit Service 99d1c0
  LDAP=no
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(ldap_plugin_dir)
Packit Service 99d1c0
AC_SUBST(LDAP)
Packit Service 99d1c0
# This check is for plugins/preauth/securid_sam2
Packit Service 99d1c0
sam2_plugin=""
Packit Service 99d1c0
old_CFLAGS=$CFLAGS
Packit Service 99d1c0
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
Packit Service 99d1c0
AC_CHECK_LIB(aceclnt, SD_Init, [
Packit Service 99d1c0
	     AC_MSG_NOTICE([Enabling RSA securID support])
Packit Service 99d1c0
	     K5_GEN_MAKEFILE(plugins/preauth/securid_sam2)
Packit Service 99d1c0
	     sam2_plugin=plugins/preauth/securid_sam2
Packit Service 99d1c0
	     ])
Packit Service 99d1c0
AC_SUBST(sam2_plugin)
Packit Service 99d1c0
CFLAGS=$old_CFLAGS
Packit Service 99d1c0
Packit Service 99d1c0
lmdb_plugin_dir=""
Packit Service 99d1c0
HAVE_LMDB=no
Packit Service 99d1c0
AC_ARG_WITH([lmdb],
Packit Service 99d1c0
AC_HELP_STRING([--with-lmdb],
Packit Service 99d1c0
	    [compile LMDB database backend module @<:@auto@:>@]),,
Packit Service 99d1c0
	    [withval=auto])
Packit Service 99d1c0
if test "$withval" = auto -o "$withval" = yes; then
Packit Service 99d1c0
  AC_CHECK_LIB([lmdb],[mdb_env_create],[have_lmdb=true],[have_lmdb=false])
Packit Service 99d1c0
  if test "$have_lmdb" = true; then
Packit Service 99d1c0
    LMDB_LIBS=-llmdb
Packit Service 99d1c0
    HAVE_LMDB=yes
Packit Service 99d1c0
    lmdb_plugin_dir='plugins/kdb/lmdb'
Packit Service 99d1c0
    K5_GEN_MAKEFILE(plugins/kdb/lmdb)
Packit Service 99d1c0
  elif test "$withval" = yes; then
Packit Service 99d1c0
    AC_MSG_ERROR([liblmdb not found])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(HAVE_LMDB)
Packit Service 99d1c0
AC_SUBST(LMDB_LIBS)
Packit Service 99d1c0
AC_SUBST(lmdb_plugin_dir)
Packit Service 99d1c0
Packit Service 99d1c0
# Kludge for simple server --- FIXME is this the best way to do this?
Packit Service 99d1c0
Packit Service 99d1c0
if test "$ac_cv_lib_socket" = "yes" -a "$ac_cv_lib_nsl" = "yes"; then
Packit Service 99d1c0
	AC_DEFINE(BROKEN_STREAMS_SOCKETS,1,[Define if socket can't be bound to 0.0.0.0])
Packit Service 99d1c0
fi
Packit Service 99d1c0
Packit Service 99d1c0
# Compile with libedit support in ss by default if available.  Compile
Packit Service 99d1c0
# with readline only if asked, to avoid a default GPL dependency.
Packit Service 99d1c0
# Building with readline also breaks the dejagnu test suite.
Packit Service 99d1c0
AC_ARG_WITH([libedit],
Packit Service 99d1c0
	    AC_HELP_STRING([--without-libedit], [do not compile with libedit]),
Packit Service 99d1c0
	    [], [with_libedit=default])
Packit Service 99d1c0
AC_ARG_WITH([readline],
Packit Service 99d1c0
	    AC_HELP_STRING([--with-readline], [compile with GNU Readline]),
Packit Service 99d1c0
	    [], [with_readline=no])
Packit Service 99d1c0
if test "x$with_readline" = xyes; then
Packit Service 99d1c0
  with_libedit=no
Packit Service 99d1c0
fi
Packit Service 99d1c0
RL_CFLAGS=
Packit Service 99d1c0
RL_LIBS=
Packit Service 99d1c0
if test "x$with_libedit" != xno; then
Packit Service 99d1c0
  PKG_CHECK_MODULES(LIBEDIT, libedit, [have_libedit=yes], [have_libedit=no])
Packit Service 99d1c0
  if test "x$have_libedit" = xyes; then
Packit Service 99d1c0
    RL_CFLAGS=$LIBEDIT_CFLAGS
Packit Service 99d1c0
    RL_LIBS=$LIBEDIT_LIBS
Packit Service 99d1c0
    AC_DEFINE([HAVE_LIBEDIT], 1, [Define if building with libedit.])
Packit Service 99d1c0
    AC_MSG_NOTICE([Using libedit for readline support])
Packit Service 99d1c0
  elif test "x$with_libedit" = xyes; then
Packit Service 99d1c0
    # We were explicitly asked for libedit and couldn't find it.
Packit Service 99d1c0
    AC_MSG_ERROR([Could not detect libedit with pkg-config])
Packit Service 99d1c0
  else
Packit Service 99d1c0
    AC_MSG_NOTICE([Not using any readline support])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
elif test "x$with_readline" = xyes; then
Packit Service 99d1c0
  AC_MSG_NOTICE([Using GNU Readline])
Packit Service 99d1c0
  AC_CHECK_LIB([readline], [main], :,
Packit Service 99d1c0
	       AC_MSG_FAILURE([Cannot find readline library.]))
Packit Service 99d1c0
  AC_DEFINE([HAVE_READLINE], 1, [Define if building with GNU Readline.])
Packit Service 99d1c0
  RL_LIBS='-lreadline'
Packit Service 99d1c0
else
Packit Service 99d1c0
  AC_MSG_RESULT([Not using any readline support])
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST([RL_CFLAGS])
Packit Service 99d1c0
AC_SUBST([RL_LIBS])
Packit Service 99d1c0
Packit Service 99d1c0
AC_ARG_WITH([system-verto],
Packit Service 99d1c0
  [AC_HELP_STRING([--with-system-verto], [always use system verto library])],
Packit Service 99d1c0
  [], [with_system_verto=default])
Packit Service 99d1c0
VERTO_VERSION=k5
Packit Service 99d1c0
if test "x$with_system_verto" != xno; then
Packit Service 99d1c0
  PKG_CHECK_MODULES(VERTO, libverto, [have_sysverto=yes], [have_sysverto=no])
Packit Service 99d1c0
  if test "x$have_sysverto" = xyes; then
Packit Service 99d1c0
    VERTO_VERSION=sys
Packit Service 99d1c0
  elif test "x$with_system_verto" = xyes; then
Packit Service 99d1c0
    AC_MSG_ERROR([cannot detect system libverto])
Packit Service 99d1c0
  fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
if test "x$VERTO_VERSION" = xsys; then
Packit Service 99d1c0
  AC_MSG_NOTICE([Using system libverto])
Packit Service 99d1c0
else
Packit Service 99d1c0
  VERTO_CFLAGS=
Packit Service 99d1c0
  VERTO_LIBS="-lverto"
Packit Service 99d1c0
  AC_MSG_NOTICE([Using built-in libverto])
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST([VERTO_CFLAGS])
Packit Service 99d1c0
AC_SUBST([VERTO_LIBS])
Packit Service 99d1c0
AC_SUBST([VERTO_VERSION])
Packit Service 99d1c0
Packit Service 99d1c0
AC_PATH_PROG(GROFF, groff)
Packit Service 99d1c0
rpm-build 37ea01
KRB5_WITH_PAM
rpm-build 37ea01
rpm-build f9650e
KRB5_WITH_SELINUX
rpm-build f9650e
Packit Service 99d1c0
# Make localedir work in autoconf 2.5x.
Packit Service 99d1c0
if test "${localedir+set}" != set; then
Packit Service 99d1c0
    localedir='$(datadir)/locale'
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_SUBST(localedir)
Packit Service 99d1c0
Packit Service 99d1c0
# For KCM lib/krb5/ccache to build KCM Mach RPC support for macOS only.
Packit Service 99d1c0
case $host in
Packit Service 99d1c0
*-*-darwin* | *-*-rhapsody*) OSX=osx ;;
Packit Service 99d1c0
*)                           OSX=no ;;
Packit Service 99d1c0
esac
Packit Service 99d1c0
AC_SUBST(OSX)
Packit Service 99d1c0
Packit Service 99d1c0
# Build-time default ccache, keytab, and client keytab names.  These
Packit Service 99d1c0
# can be given as variable arguments DEFCCNAME, DEFKTNAME, and
Packit Service 99d1c0
# DEFCKTNAME.  Otherwise, we try to get the OS defaults from
Packit Service 99d1c0
# krb5-config if we can, or fall back to hardcoded defaults.
Packit Service 99d1c0
AC_ARG_VAR(DEFCCNAME, [Default ccache name])
Packit Service 99d1c0
AC_ARG_VAR(DEFKTNAME, [Default keytab name])
Packit Service 99d1c0
AC_ARG_VAR(DEFCKTNAME, [Default client keytab name])
Packit Service 99d1c0
AC_ARG_WITH([krb5-config],
Packit Service 99d1c0
	AC_HELP_STRING([--with-krb5-config=PATH],
Packit Service 99d1c0
		[path to existing krb5-config program for defaults]), ,
Packit Service 99d1c0
        [with_krb5_config=krb5-config])
Packit Service 99d1c0
if test "x$with_krb5_config" != xno; then
Packit Service 99d1c0
	if test "x$with_krb5_config" = xyes; then
Packit Service 99d1c0
		with_krb5_config=krb5-config
Packit Service 99d1c0
	fi
Packit Service 99d1c0
	if $with_krb5_config --help 2>&1 | grep defccname >/dev/null; then
Packit Service 99d1c0
		AC_MSG_NOTICE([Using $with_krb5_config for build defaults])
Packit Service 99d1c0
		: "${DEFCCNAME=`$with_krb5_config --defccname`}"
Packit Service 99d1c0
		: "${DEFKTNAME=`$with_krb5_config --defktname`}"
Packit Service 99d1c0
		: "${DEFCKTNAME=`$with_krb5_config --defcktname`}"
Packit Service 99d1c0
	fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
dnl The outer brackets around the case statement prevent m4 from eating the
Packit Service 99d1c0
dnl brackets in the glob patterns.
Packit Service 99d1c0
if test "${DEFCCNAME+set}" != set; then
Packit Service 99d1c0
	[case $host in
Packit Service 99d1c0
	*-*-darwin[0-9].* | *-*-darwin10.*)
Packit Service 99d1c0
		# Use the normal default for macOS 10.6 (Darwin 10) and prior.
Packit Service 99d1c0
		;;
Packit Service 99d1c0
	*-*-darwin*)
Packit Service 99d1c0
		# For macOS 10.7 (Darwin 11) and later, the native ccache uses
Packit Service 99d1c0
		# the KCM daemon.
Packit Service 99d1c0
		DEFCCNAME=KCM:
Packit Service 99d1c0
		;;
Packit Service 99d1c0
	esac]
Packit Service 99d1c0
	if test "${DEFCCNAME+set}" != set; then
Packit Service 99d1c0
		DEFCCNAME=FILE:/tmp/krb5cc_%{uid}
Packit Service 99d1c0
	fi
Packit Service 99d1c0
fi
Packit Service 99d1c0
if test "${DEFKTNAME+set}" != set; then
Packit Service 99d1c0
	DEFKTNAME=FILE:/etc/krb5.keytab
Packit Service 99d1c0
fi
Packit Service 99d1c0
if test "${DEFCKTNAME+set}" != set; then
Packit Service 99d1c0
	AX_RECURSIVE_EVAL($localstatedir, exp_localstatedir)
Packit Service 99d1c0
	DEFCKTNAME=FILE:$exp_localstatedir/krb5/user/%{euid}/client.keytab
Packit Service 99d1c0
fi
Packit Service 99d1c0
AC_MSG_NOTICE([Default ccache name: $DEFCCNAME])
Packit Service 99d1c0
AC_MSG_NOTICE([Default keytab name: $DEFKTNAME])
Packit Service 99d1c0
AC_MSG_NOTICE([Default client keytab name: $DEFCKTNAME])
Packit Service 99d1c0
AC_DEFINE_UNQUOTED(DEFCCNAME, ["$DEFCCNAME"], [Define to default ccache name])
Packit Service 99d1c0
AC_DEFINE_UNQUOTED(DEFKTNAME, ["$DEFKTNAME"], [Define to default keytab name])
Packit Service 99d1c0
AC_DEFINE_UNQUOTED(DEFCKTNAME, ["$DEFCKTNAME"],
Packit Service 99d1c0
                   [Define to default client keytab name])
Packit Service 99d1c0
Packit Service 99d1c0
AC_CONFIG_FILES([build-tools/krb5-config], [chmod +x build-tools/krb5-config])
Packit Service 99d1c0
AC_CONFIG_FILES([build-tools/kadm-server.pc
Packit Service 99d1c0
	build-tools/kadm-client.pc
Packit Service 99d1c0
	build-tools/kdb.pc
Packit Service 99d1c0
	build-tools/krb5.pc
Packit Service 99d1c0
	build-tools/krb5-gssapi.pc
Packit Service 99d1c0
	build-tools/mit-krb5.pc
Packit Service 99d1c0
	build-tools/mit-krb5-gssapi.pc
Packit Service 99d1c0
	build-tools/gssrpc.pc
Packit Service 99d1c0
])
Packit Service 99d1c0
V5_AC_OUTPUT_MAKEFILE(.
Packit Service 99d1c0
Packit Service 99d1c0
	util util/support util/profile util/profile/testmod
Packit Service 99d1c0
	util/verto
Packit Service 99d1c0
Packit Service 99d1c0
	lib lib/kdb
Packit Service 99d1c0
Packit Service 99d1c0
	lib/crypto lib/crypto/krb lib/crypto/$CRYPTO_IMPL
Packit Service 99d1c0
	lib/crypto/$CRYPTO_IMPL/enc_provider
Packit Service 99d1c0
	lib/crypto/$CRYPTO_IMPL/hash_provider
Packit Service 99d1c0
	lib/crypto/$CRYPTO_IMPL/md4 lib/crypto/$CRYPTO_IMPL/md5
Packit Service 99d1c0
        lib/crypto/$CRYPTO_IMPL/sha1 lib/crypto/$CRYPTO_IMPL/sha2
Packit Service 99d1c0
	lib/crypto/$CRYPTO_IMPL/aes lib/crypto/$CRYPTO_IMPL/camellia
Packit Service 99d1c0
	lib/crypto/crypto_tests
Packit Service 99d1c0
Packit Service 99d1c0
	lib/krb5 lib/krb5/error_tables lib/krb5/asn.1 lib/krb5/ccache
Packit Service 99d1c0
	lib/krb5/keytab lib/krb5/krb lib/krb5/rcache lib/krb5/os
Packit Service 99d1c0
	lib/krb5/unicode
Packit Service 99d1c0
Packit Service 99d1c0
	lib/gssapi lib/gssapi/generic lib/gssapi/krb5 lib/gssapi/spnego
Packit Service 99d1c0
	lib/gssapi/mechglue
Packit Service 99d1c0
Packit Service 99d1c0
	lib/rpc lib/rpc/unit-test
Packit Service 99d1c0
Packit Service 99d1c0
	lib/kadm5 lib/kadm5/clnt lib/kadm5/srv lib/kadm5/unit-test
Packit Service 99d1c0
	lib/krad
Packit Service 99d1c0
	lib/apputils
Packit Service 99d1c0
Packit Service 99d1c0
	kdc kprop config-files build-tools man doc include
Packit Service 99d1c0
Packit Service 99d1c0
	plugins/certauth/test
Packit Service 99d1c0
	plugins/gssapi/negoextest
Packit Service 99d1c0
	plugins/hostrealm/test
Packit Service 99d1c0
	plugins/localauth/test
Packit Service 99d1c0
	plugins/kadm5_hook/test
Packit Service 99d1c0
	plugins/kadm5_auth/test
Packit Service 99d1c0
	plugins/pwqual/test
Packit Service 99d1c0
	plugins/audit
Packit Service 99d1c0
	plugins/audit/test
Packit Service 99d1c0
	plugins/kdb/db2
Packit Service 99d1c0
	plugins/kdb/db2/libdb2
Packit Service 99d1c0
	plugins/kdb/db2/libdb2/hash
Packit Service 99d1c0
	plugins/kdb/db2/libdb2/btree
Packit Service 99d1c0
	plugins/kdb/db2/libdb2/db
Packit Service 99d1c0
	plugins/kdb/db2/libdb2/mpool
Packit Service 99d1c0
	plugins/kdb/db2/libdb2/recno
Packit Service 99d1c0
	plugins/kdb/db2/libdb2/test
Packit Service 99d1c0
	plugins/kdb/test
Packit Service 99d1c0
	plugins/kdcpolicy/test
Packit Service 99d1c0
	plugins/preauth/otp
Packit Service 99d1c0
	plugins/preauth/spake
Packit Service 99d1c0
	plugins/preauth/test
Packit Service 99d1c0
	plugins/authdata/greet_client
Packit Service 99d1c0
	plugins/authdata/greet_server
Packit Service 99d1c0
	plugins/tls/k5tls
Packit Service 99d1c0
Packit Service 99d1c0
	clients clients/klist clients/kinit clients/kvno
Packit Service 99d1c0
	clients/kdestroy clients/kpasswd clients/ksu clients/kswitch
Packit Service 99d1c0
Packit Service 99d1c0
	kadmin kadmin/cli kadmin/dbutil kadmin/ktutil kadmin/server
Packit Service 99d1c0
	kadmin/testing kadmin/testing/scripts kadmin/testing/util
Packit Service 99d1c0
Packit Service 99d1c0
	appl
Packit Service 99d1c0
	appl/sample appl/sample/sclient appl/sample/sserver
Packit Service 99d1c0
	appl/simple appl/simple/client appl/simple/server
Packit Service 99d1c0
	appl/gss-sample appl/user_user
Packit Service 99d1c0
Packit Service 99d1c0
	tests tests/resolve tests/asn.1 tests/create tests/hammer
Packit Service 99d1c0
	tests/verify tests/gssapi tests/dejagnu tests/threads tests/shlib
Packit Service 99d1c0
	tests/gss-threads tests/misc
Packit Service 99d1c0
)