AC_INIT(configure.in)
CONFIG_RULES
AC_CONFIG_HEADER(krb5/autoconf.h)
AC_PROG_INSTALL
AC_PROG_AWK
AC_PROG_LEX
AC_CONST
AC_CHECK_FUNCS(strdup labs setvbuf memmove bcopy inet_ntoa inet_aton)
HAVE_YYLINENO
CHECK_DIRENT
AC_TYPE_UID_T
AC_HEADER_CHECK(termios.h,AC_FUNC_CHECK([tcsetattr],AC_DEFINE(POSIX_TERMIOS)))
KRB5_SIGTYPE
AC_CHECK_HEADERS(stdlib.h string.h stddef.h unistd.h sys/types.h sys/file.h sys/param.h sys/stat.h sys/time.h netinet/in.h macsock.h xom.h)
AC_HEADER_STDARG
KRB5_AC_INET6
dnl
dnl check for ANSI stdio, esp "b" option to fopen().  This (unfortunately)
dnl requires a run check...
dnl
AC_MSG_CHECKING([for ANSI stdio])
AC_CACHE_VAL(krb5_cv_has_ansi_stdio,
[AC_TRY_RUN(
[#include <stdio.h>
int main()
{
  FILE *conftest;
  if ((conftest = fopen("conftest.dat", "w")) == NULL) exit(1);
  if (fclose(conftest)) exit(1);
  if ((conftest = fopen("conftest.dat", "rb+")) == NULL) exit(1);
  if (fputs("testing ANSI for stdio\n", conftest) == EOF) exit(1);
  exit(0);
}],
krb5_cv_has_ansi_stdio=yes, krb5_cv_has_ansi_stdio=no,
krb5_cv_has_ansi_stdio=yes)])dnl assume ANSI in cross environment
AC_MSG_RESULT($krb5_cv_has_ansi_stdio)
if test $krb5_cv_has_ansi_stdio = yes; then
AC_DEFINE(ANSI_STDIO)
fi
dnl
KRB5_CHECK_PROTOS
dnl
AC_MSG_CHECKING([prototypes in structs])
AC_CACHE_VAL(krb5_cv_struct_prototypes,
[AC_TRY_COMPILE(
[typedef int i_t; typedef struct foo { int (*foofn)(i_t, i_t); } *footype;],
[],
krb5_cv_struct_prototypes=yes, krb5_cv_struct_prototypes=no)])
AC_MSG_RESULT($krb5_cv_struct_prototypes)
if test $krb5_cv_struct_prototypes = no; then
AC_DEFINE(KRB5_NO_NESTED_PROTOTYPES)
fi
dnl
dnl  Check for void type
dnl
AC_MSG_CHECKING([void])
AC_CACHE_VAL(krb5_cv_has_void_type,
[AC_TRY_COMPILE(
[void x();], [], 
krb5_cv_has_void_type=yes, krb5_cv_has_void_type=no)])
AC_MSG_RESULT($krb5_cv_has_void_type)
if test $krb5_cv_has_void_type = yes; then
AC_DEFINE(HAS_VOID_TYPE)
fi
dnl
dnl Word sizes...
AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
dnl
dnl then from osconf.h, we have
dnl
AC_HEADER_TIME
AC_CHECK_TYPE(time_t, long)
dnl
dnl Determine where to put the replay cache.
dnl
AC_MSG_CHECKING([for replay cache directory])
AC_CACHE_VAL(krb5_cv_sys_rcdir,
[
for t_dir in /var/tmp /usr/tmp /var/usr/tmp /tmp ; do
	test -d $t_dir || continue
	krb5_cv_sys_rcdir=$t_dir
	break
done])dnl
AC_MSG_RESULT($krb5_cv_sys_rcdir)
KRB5_RCTMPDIR=$krb5_cv_sys_rcdir
AC_SUBST(KRB5_RCTMPDIR)
dnl
dnl
AC_ARG_ENABLE([athena],
[  --enable-athena         build with MIT Project Athena configuration],
AC_DEFINE(KRB5_ATHENA_COMPAT),)

if test "$KRB4_LIB" = ''; then
	AC_MSG_RESULT(No Kerberos 4 compatibility)
else
	AC_MSG_RESULT(Kerberos 4 compatibility enabled)
	AC_DEFINE(KRB5_KRB4_COMPAT)
fi
dnl
K5_GEN_MAKEFILE(.)
K5_GEN_MAKEFILE(krb5)
K5_GEN_MAKEFILE(kerberosIV)
K5_AC_OUTPUT
