1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
AC_INIT(kdb.h)
CONFIG_RULES
AC_CONFIG_HEADER(autoconf.h)
AC_PROG_LEX
AC_PROG_INSTALL
HAVE_YYLINENO
AC_FUNC_CHECK(strdup,AC_DEFINE(HAS_STRDUP))
AC_FUNC_CHECK(labs,AC_DEFINE(HAS_LABS))
CHECK_DIRENT
CHECK_WAIT_TYPE
dnl stuff from config.h
AC_HEADER_CHECK(termios.h,AC_FUNC_CHECK([tcsetattr],AC_DEFINE(POSIX_TERMIOS)))
KRB5_POSIX_LOCKS
dnl time_t, only used in lib/krb5/os/timeofday.c
AC_EGREP_HEADER(time_t, sys/types.h, AC_DEFINE(POSIX_TYPES))
KRB5_SIGTYPE
dnl
dnl
AC_HEADER_CHECK(string.h,AC_DEFINE(USE_STRING_H))
AC_HEADER_CHECK(stdlib.h,AC_DEFINE(HAS_STDLIB_H),AC_DEFINE(NO_STDLIB_H))
AC_CHECK_HEADERS(sys/types.h)
AC_CHECK_HEADERS(sys/file.h)
AC_CHECK_HEADERS(sys/param.h)
AC_CHECK_HEADERS(sys/stat.h)
AC_CHECK_HEADERS(macsock.h)
AC_CHECK_HEADERS(stdarg.h)
AC_CHECK_HEADERS(stddef.h)
AC_CHECK_HEADERS(xom.h)
AC_FUNC_CHECK([setvbuf],AC_DEFINE(HAS_SETVBUF))
dnl check for ANSI stdio, esp "b" option to fopen(). This (unfortunately)
dnl requires a run check...
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
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
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
AC_CONST
dnl Word sizes...
AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
dnl then from osconf.h, we have
AC_TIME_WITH_SYS_TIME
AC_CHECK_HEADERS(sys/time.h)
AC_HEADER_CHECK(netinet/in.h,AC_DEFINE(KRB5_USE_INET))
AC_HEADER_CHECK(unistd.h,AC_DEFINE(HAS_UNISTD_H))
AC_CHECK_LIB(ndbm,main)
AC_CHECK_LIB(dbm,main)
AC_FUNC_CHECK([dbm_open], , AC_DEFINE(ODBM))
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 /usr/tmp /var/usr/tmp /var/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)
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
AC_PROG_INSTALL
V5_AC_OUTPUT_MAKEFILE
|