configure.in revision 57419
1dnl Process this file with autoconf to produce a configure script.
2AC_REVISION($Revision: 1.217 $)
3AC_INIT(lib/krb5/send_to_kdc.c)
4AM_CONFIG_HEADER(include/config.h)
5
6AM_INIT_AUTOMAKE(heimdal,0.2o)
7
8AC_PREFIX_DEFAULT(/usr/heimdal)
9
10AC_CANONICAL_HOST
11CANONICAL_HOST=$host
12AC_SUBST(CANONICAL_HOST)
13
14sunos=no
15case "$host" in 
16*-*-sunos4*)
17	sunos=40
18	;;
19*-*-solaris2.7)
20	sunos=57
21	;;
22*-*-solaris2*)
23	sunos=50
24	;;
25esac
26if test "$sunos" != no; then
27	AC_DEFINE_UNQUOTED(SunOS, $sunos, 
28		[Define to what version of SunOS you are running.])
29fi
30
31aix=no
32case "$host" in 
33*-*-aix3*)
34	aix=3
35	;;
36*-*-aix4*)
37	aix=4
38	;;
39esac
40
41#test -z "$CFLAGS" && CFLAGS="-g"
42
43dnl Checks for programs.
44AC_PROG_CC
45
46AC_CYGWIN
47AC_OBJEXT
48AC_EXEEXT
49
50dnl AC_KRB_PROG_YACC
51AC_PROG_YACC
52AM_PROG_LEX
53AC_PROG_RANLIB
54AC_PROG_AWK
55AC_KRB_PROG_LN_S
56
57AC_MIPS_ABI
58CC="$CC $abi"
59libdir="$libdir$abilibdirext"
60
61AC_C___ATTRIBUTE__
62
63AM_DISABLE_SHARED
64AM_PROG_LIBTOOL
65
66AC_WFLAGS(-Wall -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wmissing-declarations -Wnested-externs)
67
68berkeley_db=db
69AC_ARG_WITH(berkeley-db,
70[  --without-berkeley-db   if you don't want berkeley db],[
71if test "$withval" = no; then
72	berkeley_db=""
73fi
74])
75
76AC_TEST_PACKAGE_NEW(krb4,[#include <krb.h>],-lkrb,-ldes,/usr/athena)
77
78LIB_kdb=
79if test "$with_krb4" != "no"; then
80	save_CFLAGS="$CFLAGS"
81	CFLAGS="$CFLAGS $INCLUDE_krb4"
82	save_LIBS="$LIBS"
83	LIBS="$LIB_krb4 -ldes $LIBS"
84	EXTRA_LIB45=lib45.a
85	AC_SUBST(EXTRA_LIB45)
86	AC_CACHE_CHECK(for four valued krb_put_int, ac_cv_func_krb_put_int_four,
87		[AC_TRY_COMPILE([#include <krb.h>],[
88		char tmp[4];
89		krb_put_int(17, tmp, 4, sizeof(tmp));],
90		ac_cv_func_krb_put_int_four=yes,
91		ac_cv_func_krb_put_int_four=no)
92	])
93	if test "$ac_cv_func_krb_put_int_four" = yes; then
94		AC_DEFINE(HAVE_FOUR_VALUED_KRB_PUT_INT, 1,
95			[define if krb_put_int takes four arguments.])
96	fi
97	AC_CACHE_CHECK(for KRB_VERIFY_SECURE, ac_cv_func_krb_verify_secure,
98		[AC_TRY_COMPILE([#include <krb.h>],[
99		int x = KRB_VERIFY_SECURE],
100		ac_cv_func_krb_verify_secure=yes,
101		ac_cv_func_krb_verify_secure=no)
102	])
103	if test "$ac_cv_func_krb_verify_secure" != yes; then
104		AC_DEFINE(KRB_VERIFY_SECURE, 1,
105			[Define to one if your krb.h doesn't])
106		AC_DEFINE(KRB_VERIFY_SECURE_FAIL, 2,
107			[Define to two if your krb.h doesn't])
108	fi
109	AC_CACHE_CHECK(for KRB_VERIFY_NOT_SECURE,
110		ac_cv_func_krb_verify_not_secure,
111		[AC_TRY_COMPILE([#include <krb.h>],[
112		int x = KRB_VERIFY_NOT_SECURE],
113		ac_cv_func_krb_verify_not_secure=yes,
114		ac_cv_func_krb_verify_not_secure=no)
115	])
116	if test "$ac_cv_func_krb_verify_not_secure" != yes; then
117		AC_DEFINE(KRB_VERIFY_NOT_SECURE, 0,
118			[Define to zero if your krb.h doesn't])
119	fi
120	AC_FIND_FUNC(krb_enable_debug)
121	AC_FIND_FUNC(krb_disable_debug)
122	AC_FIND_FUNC(krb_get_our_ip_for_realm)
123	LIBS="$save_LIBS"
124	CFLAGS="$save_CFLAGS"
125	LIB_kdb="-lkdb -lkrb"
126	if test "$krb4_libdir"; then
127		LIB_krb4="-rpath $krb4_libdir $LIB_krb4"
128		LIB_kdb="-rpath $krb4_libdir -L$krb4_libdir $LIB_kdb"
129	fi
130fi
131AM_CONDITIONAL(KRB4, test "$with_krb4" != "no")
132AM_CONDITIONAL(KRB5, true)
133AC_DEFINE(KRB5, 1, [Enable Kerberos 5 support in applications.])dnl
134AC_SUBST(LIB_kdb)dnl
135AM_CONDITIONAL(AIX, test "$aix" != no)dnl
136AM_CONDITIONAL(AIX4, test "$aix" = 4)
137aix_dynamic_afs=yes
138AM_CONDITIONAL(AIX_DYNAMIC_AFS, test "$aix_dynamic_afs" = yes)dnl
139
140AC_FIND_FUNC_NO_LIBS(dlopen, dl)
141
142if test "$aix" != no; then
143	if test "$aix_dynamic_afs" = yes; then
144		if test "$ac_cv_funclib_dlopen" = yes; then
145			AIX_EXTRA_KAFS=
146		elif test "$ac_cv_funclib_dlopen" != no; then
147			AIX_EXTRA_KAFS="$ac_cv_funclib_dlopen"
148		else
149			AIX_EXTRA_KAFS=-lld
150		fi
151	else
152		AIX_EXTRA_KAFS=
153	fi
154fi
155
156AM_CONDITIONAL(HAVE_DLOPEN, test "$ac_cv_funclib_dlopen" != no)dnl
157AC_SUBST(AFS_EXTRA_LD)dnl
158AC_SUBST(AIX_EXTRA_KAFS)dnl
159
160AC_ARG_ENABLE(kaserver,
161[  --enable-kaserver	  if you want the KDC to try to emulate a kaserver])
162if test "$enable_kaserver" = yes; then
163	AC_DEFINE(KASERVER, 1,
164		[Define if you want to use the KDC as a kaserver.])
165	if test "$with_krb4" = "no"; then
166		AC_MSG_ERROR(kaserver requires krb4)
167		exit 1
168	fi
169fi
170
171AC_ARG_ENABLE(kaserver-db,
172[  --enable-kaserver-db	  if you want support for reading kaserver databases in hprop])
173if test "$enable_kaserver_db" = yes; then
174	AC_DEFINE(KASERVER_DB, 1,
175		[Define if you want support in hprop for reading kaserver databases])
176	if test "$with_krb4" = "no"; then
177		AC_MSG_ERROR(kaserver-db requires krb4)
178		exit 1
179	fi
180fi
181
182otp=yes
183AC_ARG_ENABLE(otp,
184[  --disable-otp          if you don't want OTP support],
185[
186if test "$enableval" = "no"; then
187	otp=no
188fi
189])
190if test "$otp" = "yes"; then
191	AC_DEFINE(OTP, 1, [Define if you want OTP support in applications.])
192	LIB_otp='$(top_builddir)/lib/otp/libotp.la'
193fi
194AC_SUBST(LIB_otp)
195AM_CONDITIONAL(OTP, test "$otp" = yes)dnl
196
197AC_CHECK_OSFC2
198
199AC_CHECK_MAN
200
201AC_TEST_PACKAGE_NEW(readline,
202[#include <stdio.h>
203 #include <readline.h>],-lreadline)
204
205AC_TEST_PACKAGE_NEW(hesiod,[#include <hesiod.h>],-lhesiod)
206
207KRB_C_BIGENDIAN
208AC_C_INLINE
209
210KRB_CHECK_X
211
212if test "$no_x" = "yes" ; then
213	MAKE_X_PROGS_BIN_PROGS=""
214	MAKE_X_PROGS_BIN_SCRPTS=""
215	MAKE_X_PROGS_LIBEXEC_PROGS=""
216else
217	MAKE_X_PROGS_BIN_PROGS='$(X_PROGS_BIN_PROGS)'
218	MAKE_X_PROGS_BIN_SCRPTS='$(X_PROGS_BIN_SCRPTS)'
219	MAKE_X_PROGS_LIBEXEC_PROGS='$(X_PROGS_LIBEXEC_PROGS)'
220fi
221AC_SUBST(MAKE_X_PROGS_BIN_PROGS)dnl
222AC_SUBST(MAKE_X_PROGS_BIN_SCRPTS)dnl
223AC_SUBST(MAKE_X_PROGS_LIBEXEC_PROGS)dnl
224
225AC_CHECK_XAU
226
227dnl AM_C_PROTOTYPES
228
229dnl Checks for typedefs, structures, and compiler characteristics.
230AC_C_CONST
231AC_TYPE_OFF_T
232AC_TYPE_SIZE_T
233AC_CHECK_TYPE_EXTRA(ssize_t, int, [#include <unistd.h>])
234AC_TYPE_PID_T
235AC_TYPE_UID_T
236AC_CHECK_TYPE_EXTRA(mode_t, unsigned short, [])
237AC_CHECK_TYPE_EXTRA(sig_atomic_t, int, [#include <signal.h>])
238AC_HAVE_TYPE([long long])
239AC_HEADER_TIME
240AC_STRUCT_TM
241
242dnl Checks for header files.
243AC_HEADER_STDC
244
245if test "$berkeley_db"; then
246  AC_CHECK_HEADERS([				\
247	db.h					\
248	db_185.h				\
249  ])
250fi
251
252AC_CHECK_HEADERS([\
253	arpa/ftp.h				\
254	arpa/inet.h				\
255	arpa/nameser.h				\
256	arpa/telnet.h				\
257	bind/bitypes.h				\
258	bsdsetjmp.h				\
259	crypt.h					\
260	curses.h				\
261	dbm.h					\
262	dirent.h				\
263	dlfcn.h					\
264	err.h					\
265	errno.h					\
266	fcntl.h					\
267	fnmatch.h				\
268	grp.h					\
269	inttypes.h				\
270	io.h					\
271	limits.h				\
272	maillock.h				\
273	ndbm.h					\
274	net/if.h				\
275	netdb.h					\
276	netinet/in.h				\
277	netinet/in6.h				\
278	netinet/in6_machtypes.h			\
279	netinet/in6_var.h			\
280	netinet/in_systm.h			\
281	netinet6/in6.h				\
282	netinfo/ni.h				\
283	paths.h					\
284	pthread.h				\
285	pty.h					\
286	pwd.h					\
287	resolv.h				\
288	rpcsvc/dbm.h				\
289	sac.h					\
290	security/pam_modules.h			\
291	sgtty.h					\
292	shadow.h				\
293	siad.h					\
294	signal.h				\
295	stropts.h				\
296	sys/bitypes.h				\
297	sys/category.h				\
298	sys/file.h				\
299	sys/filio.h				\
300	sys/ioccom.h				\
301	sys/ioctl.h				\
302	sys/param.h				\
303	sys/proc.h				\
304	sys/pty.h				\
305	sys/ptyio.h				\
306	sys/ptyvar.h				\
307	sys/resource.h				\
308	sys/select.h				\
309	sys/socket.h				\
310	sys/sockio.h				\
311	sys/stat.h				\
312	sys/str_tty.h				\
313	sys/stream.h				\
314	sys/stropts.h				\
315	sys/strtty.h				\
316	sys/syscall.h				\
317	sys/sysctl.h				\
318	sys/termio.h				\
319	sys/time.h				\
320	sys/timeb.h				\
321	sys/times.h				\
322	sys/tty.h				\
323	sys/types.h				\
324	sys/uio.h				\
325	sys/un.h				\
326	sys/utsname.h				\
327	sys/wait.h				\
328	syslog.h				\
329	term.h					\
330	termio.h				\
331	termios.h				\
332	time.h					\
333	tmpdir.h				\
334	udb.h					\
335	unistd.h				\
336	util.h					\
337	utmp.h					\
338	utmpx.h					\
339])
340
341CHECK_NETINET_IP_AND_TCP
342
343
344AC_ARG_ENABLE(netinfo,
345[  --enable-netinfo      enable netinfo for configuration lookup])
346
347if test "$ac_cv_header_netinfo_ni_h" = yes -a "$enable_netinfo" = yes; then
348       AC_DEFINE(HAVE_NETINFO, 1,
349               [Define if you want to use Netinfo instead of krb5.conf.])
350fi
351
352AM_CONDITIONAL(have_err_h, test "$ac_cv_header_err_h" = yes)
353AM_CONDITIONAL(have_fnmatch_h, test "$ac_cv_header_fnmatch_h" = yes)
354
355AC_KRB_IPV6
356
357dnl Checks for libraries.
358
359AC_FIND_FUNC(socket, socket)
360AC_FIND_FUNC(gethostbyname, nsl)
361AC_FIND_FUNC(syslog, syslog)
362
363AC_FIND_FUNC_NO_LIBS(logwtmp, util)
364AC_FIND_FUNC_NO_LIBS(tgetent, termcap ncurses curses)
365AC_FIND_FUNC(gethostbyname2, inet6 ip6)
366
367AC_FIND_FUNC(res_search, resolv,
368[
369#include <stdio.h>
370#ifdef HAVE_SYS_TYPES_H
371#include <sys/types.h>
372#endif
373#ifdef HAVE_NETINET_IN_H
374#include <netinet/in.h>
375#endif
376#ifdef HAVE_ARPA_NAMESER_H
377#include <arpa/nameser.h>
378#endif
379#ifdef HAVE_RESOLV_H
380#include <resolv.h>
381#endif
382],
383[0,0,0,0,0])
384
385AC_FIND_FUNC(dn_expand, resolv,
386[
387#include <stdio.h>
388#ifdef HAVE_SYS_TYPES_H
389#include <sys/types.h>
390#endif
391#ifdef HAVE_NETINET_IN_H
392#include <netinet/in.h>
393#endif
394#ifdef HAVE_ARPA_NAMESER_H
395#include <arpa/nameser.h>
396#endif
397#ifdef HAVE_RESOLV_H
398#include <resolv.h>
399#endif
400],
401[0,0,0,0,0])
402
403dnl Checks for library functions.
404
405AC_BROKEN_SNPRINTF
406AC_BROKEN_VSNPRINTF
407
408AC_BROKEN_GLOB
409
410if test "$ac_cv_func_glob_working" != yes; then
411	LIBOBJS="$LIBOBJS glob.o"
412fi
413AM_CONDITIONAL(have_glob_h, test "$ac_cv_func_glob_working" = yes)
414
415dnl these should happen after tests for *snprintf
416
417AC_FIND_FUNC_NO_LIBS(dbopen, $berkeley_db)
418AC_FIND_FUNC_NO_LIBS(dbm_firstkey, $berkeley_db gdbm ndbm)
419
420DBLIB="$LIB_dbopen"
421if test "$LIB_dbopen" != "$LIB_dbm_firstkey"; then
422	DBLIB="$DBLIB $LIB_dbm_firstkey"
423fi
424AC_SUBST(DBLIB)dnl
425
426AC_CHECK_FUNCS(_getpty _scrsize asnprintf asprintf cgetent fcntl)
427AC_CHECK_FUNCS(getmsg getrlimit getspnam gettimeofday getuid)
428AC_CHECK_FUNCS(grantpt mktime ptsname rand random setproctitle)
429AC_CHECK_FUNCS(revoke select setitimer setpcred setpgid)
430AC_CHECK_FUNCS(setregid setresgid setresuid setreuid setutent)
431AC_CHECK_FUNCS(setsid sigaction strstr)
432AC_CHECK_FUNCS(sysconf sysctl timegm ttyname ttyslot umask uname)
433AC_CHECK_FUNCS(unlockpt vasnprintf vasprintf vhangup)
434AC_CHECK_FUNCS(yp_get_default_domain)
435
436if test "$ac_cv_func_cgetent" = no; then
437	LIBOBJS="$LIBOBJS getcap.o"
438fi
439
440AC_FUNC_GETLOGIN
441
442KRB_CAPABILITIES
443
444AC_CHECK_GETPWNAM_R_POSIX
445
446AC_FIND_FUNC_NO_LIBS(getsockopt,,
447[#ifdef HAVE_SYS_TYPES_H
448#include <sys/types.h>
449#endif
450#ifdef HAVE_SYS_SOCKET_H
451#include <sys/socket.h>
452#endif],
453[0,0,0,0,0])
454AC_FIND_FUNC_NO_LIBS(setsockopt,,
455[#ifdef HAVE_SYS_TYPES_H
456#include <sys/types.h>
457#endif
458#ifdef HAVE_SYS_SOCKET_H
459#include <sys/socket.h>
460#endif],
461[0,0,0,0,0])
462
463dnl Cray stuff
464AC_CHECK_FUNCS(getudbnam setlim)
465
466AC_TYPE_SIGNAL
467if test "$ac_cv_type_signal" = "void" ; then
468	AC_DEFINE(VOID_RETSIGTYPE, 1, [Define if signal handlers return void.])
469fi
470AC_SUBST(VOID_RETSIGTYPE)
471
472AC_FIND_IF_NOT_BROKEN(hstrerror, resolv,
473[#ifdef HAVE_NETDB_H
474#include <netdb.h>
475#endif],
47617)
477if test "$ac_cv_func_hstrerror" = yes; then
478AC_NEED_PROTO([
479#ifdef HAVE_NETDB_H
480#include <netdb.h>
481#endif],
482hstrerror)
483fi
484
485dnl sigh, wish this could be done in a loop
486if test "$ac_cv_func_asprintf" = yes; then
487AC_NEED_PROTO([
488#include <stdio.h>
489#include <string.h>],
490asprintf)dnl
491fi
492if test "$ac_cv_func_vasprintf" = yes; then
493AC_NEED_PROTO([
494#include <stdio.h>
495#include <string.h>],
496vasprintf)dnl
497fi
498if test "$ac_cv_func_asnprintf" = yes; then
499AC_NEED_PROTO([
500#include <stdio.h>
501#include <string.h>],
502asnprintf)dnl
503fi
504if test "$ac_cv_func_vasnprintf" = yes; then
505AC_NEED_PROTO([
506#include <stdio.h>
507#include <string.h>],
508vasnprintf)dnl
509fi
510
511AC_BROKEN(chown copyhostent daemon err errx fchown flock fnmatch)
512AC_BROKEN(freeaddrinfo freehostent gai_strerror getaddrinfo)
513AC_BROKEN(getcwd getdtablesize gethostname getipnodebyaddr getipnodebyname)
514AC_BROKEN(geteuid getgid getegid)
515AC_BROKEN(getnameinfo getopt getusershell)
516AC_BROKEN(inet_aton inet_ntop inet_pton initgroups innetgr iruserok lstat)
517AC_BROKEN(memmove)
518AC_BROKEN(mkstemp putenv rcmd readv recvmsg sendmsg setegid setenv seteuid)
519AC_BROKEN(strcasecmp strncasecmp strdup strerror strftime)
520AC_BROKEN(strlcat strlcpy strlwr)
521AC_BROKEN(strndup strnlen strptime strsep strtok_r strupr)
522AC_BROKEN(swab unsetenv verr verrx vsyslog)
523AC_BROKEN(vwarn vwarnx warn warnx writev)
524
525AC_NEED_PROTO([#include <stdlib.h>], setenv)
526AC_NEED_PROTO([#include <stdlib.h>], unsetenv)
527AC_NEED_PROTO([#include <unistd.h>], gethostname)
528AC_NEED_PROTO([#include <unistd.h>], mkstemp)
529AC_NEED_PROTO([#include <unistd.h>], getusershell)
530
531AC_NEED_PROTO([
532#ifdef HAVE_SYS_TYPES_H
533#include <sys/types.h>
534#endif
535#ifdef HAVE_SYS_SOCKET_H
536#include <sys/socket.h>
537#endif
538#ifdef HAVE_NETINET_IN_H
539#include <netinet/in.h>
540#endif
541#ifdef HAVE_ARPA_INET_H
542#include <arpa/inet.h>
543#endif],
544inet_aton)
545
546AC_FIND_FUNC_NO_LIBS(crypt, crypt)dnl
547
548dnl
549dnl libroken references crypt and dbopen
550dnl
551
552LIB_roken='$(top_builddir)/lib/roken/libroken.la $(LIB_crypt) $(LIB_dbopen)'
553AC_SUBST(LIB_roken)dnl
554
555AC_CACHE_CHECK(if realloc if broken, ac_cv_func_realloc_broken, [
556ac_cv_func_realloc_broken=no
557AC_TRY_RUN([
558#include <stddef.h>
559#include <stdlib.h>
560
561int main()
562{
563	return realloc(NULL, 17) == NULL;
564}
565],:, ac_cv_func_realloc_broken=yes, :)
566])
567if test "$ac_cv_func_realloc_broken" = yes ; then
568	AC_DEFINE(BROKEN_REALLOC, 1, [Define if realloc(NULL) doesn't work.])
569fi
570
571dnl AC_KRB_FUNC_GETCWD_BROKEN
572
573dnl
574dnl Checks for prototypes and declarations
575dnl
576
577AC_PROTO_COMPAT([
578#ifdef HAVE_SYS_TYPES_H
579#include <sys/types.h>
580#endif
581#ifdef HAVE_SYS_SOCKET_H
582#include <sys/socket.h>
583#endif
584#ifdef HAVE_NETINET_IN_H
585#include <netinet/in.h>
586#endif
587#ifdef HAVE_ARPA_INET_H
588#include <arpa/inet.h>
589#endif
590#ifdef HAVE_NETDB_H
591#include <netdb.h>
592#endif
593],
594gethostbyname, struct hostent *gethostbyname(const char *))
595
596AC_PROTO_COMPAT([
597#ifdef HAVE_SYS_TYPES_H
598#include <sys/types.h>
599#endif
600#ifdef HAVE_SYS_SOCKET_H
601#include <sys/socket.h>
602#endif
603#ifdef HAVE_NETINET_IN_H
604#include <netinet/in.h>
605#endif
606#ifdef HAVE_ARPA_INET_H
607#include <arpa/inet.h>
608#endif
609#ifdef HAVE_NETDB_H
610#include <netdb.h>
611#endif
612],
613gethostbyaddr, struct hostent *gethostbyaddr(const void *, size_t, int))
614
615AC_PROTO_COMPAT([
616#ifdef HAVE_SYS_TYPES_H
617#include <sys/types.h>
618#endif
619#ifdef HAVE_SYS_SOCKET_H
620#include <sys/socket.h>
621#endif
622#ifdef HAVE_NETINET_IN_H
623#include <netinet/in.h>
624#endif
625#ifdef HAVE_ARPA_INET_H
626#include <arpa/inet.h>
627#endif
628#ifdef HAVE_NETDB_H
629#include <netdb.h>
630#endif
631],
632getservbyname, struct servent *getservbyname(const char *, const char *))
633
634AC_PROTO_COMPAT([
635#ifdef HAVE_SYSLOG_H
636#include <syslog.h>
637#endif
638],
639openlog, void openlog(const char *, int, int))
640
641AC_NEED_PROTO([
642#ifdef HAVE_CRYPT_H
643#include <crypt.h>
644#endif
645#ifdef HAVE_UNISTD_H
646#include <unistd.h>
647#endif
648],
649crypt)
650
651AC_NEED_PROTO([
652#include <string.h>
653],
654strtok_r)
655
656AC_NEED_PROTO([
657#include <string.h>
658],
659strsep)
660
661AC_CHECK_VAR([#ifdef HAVE_SYS_TYPES_H
662#include <sys/types.h>
663#endif
664#ifdef HAVE_NETDB_H
665#include <netdb.h>
666#endif],
667h_errno)
668
669AC_CHECK_VAR([#ifdef HAVE_NETDB_H
670#include <netdb.h>
671#endif],
672h_errlist)
673
674AC_CHECK_VAR([#ifdef HAVE_NETDB_H
675#include <netdb.h>
676#endif],
677h_nerr)
678
679AC_CHECK_VAR([#ifdef HAVE_ERR_H
680#include <err.h>
681#endif],[__progname])
682
683AC_CHECK_DECLARATION([#include <stdlib.h>
684#ifdef HAVE_UNISTD_H
685#include <unistd.h>
686#endif], optarg)
687AC_CHECK_DECLARATION([#include <stdlib.h>
688#ifdef HAVE_UNISTD_H
689#include <unistd.h>
690#endif], optind)
691AC_CHECK_DECLARATION([#include <stdlib.h>
692#ifdef HAVE_UNISTD_H
693#include <unistd.h>
694#endif], opterr)
695AC_CHECK_DECLARATION([#include <stdlib.h>
696#ifdef HAVE_UNISTD_H
697#include <unistd.h>
698#endif], optopt)
699
700AC_CHECK_DECLARATION([#include <stdlib.h>], environ)
701
702dnl
703dnl Check for fields in struct utmp
704dnl
705
706AC_HAVE_STRUCT_FIELD(struct utmp, ut_addr, [#include <utmp.h>])
707AC_HAVE_STRUCT_FIELD(struct utmp, ut_host, [#include <utmp.h>])
708AC_HAVE_STRUCT_FIELD(struct utmp, ut_id, [#include <utmp.h>])
709AC_HAVE_STRUCT_FIELD(struct utmp, ut_pid, [#include <utmp.h>])
710AC_HAVE_STRUCT_FIELD(struct utmp, ut_type, [#include <utmp.h>])
711AC_HAVE_STRUCT_FIELD(struct utmp, ut_user, [#include <utmp.h>])
712AC_HAVE_STRUCT_FIELD(struct utmpx, ut_exit, [#include <utmpx.h>])
713AC_HAVE_STRUCT_FIELD(struct utmpx, ut_syslen, [#include <utmpx.h>])
714
715dnl
716dnl Check for fields in struct tm
717dnl
718
719AC_HAVE_STRUCT_FIELD(struct tm, tm_gmtoff, [#include <time.h>])
720AC_HAVE_STRUCT_FIELD(struct tm, tm_zone, [#include <time.h>])
721
722dnl
723dnl or do we have a variable `timezone' ?
724dnl
725
726AC_CHECK_VAR(
727[#include <time.h>],
728timezone)
729
730AC_HAVE_TYPE([sa_family_t],[#include <sys/socket.h>])
731
732AC_HAVE_TYPE([socklen_t],[#include <sys/socket.h>])
733
734AC_HAVE_TYPE([struct sockaddr], [#include <sys/socket.h>])
735
736AC_HAVE_TYPE([struct sockaddr_storage], [#include <sys/socket.h>])
737
738AC_HAVE_TYPE([struct addrinfo], [#include <netdb.h>])
739
740dnl
741dnl Check for struct winsize
742dnl
743
744AC_KRB_STRUCT_WINSIZE
745
746dnl
747dnl Check for struct spwd
748dnl
749
750AC_KRB_STRUCT_SPWD
751
752dnl
753dnl Check for sa_len in struct sockaddr
754dnl
755
756AC_HAVE_STRUCT_FIELD(struct sockaddr, sa_len, [#include <sys/types.h>
757#include <sys/socket.h>])
758
759
760AC_GROK_TYPES(int8_t int16_t int32_t int64_t)
761AC_GROK_TYPES(u_int8_t u_int16_t u_int32_t u_int64_t)
762
763dnl
764dnl crypto functions tests
765dnl
766
767AC_FIND_FUNC_NO_LIBS(MD4Init, crypto)
768AC_FIND_FUNC_NO_LIBS(MD4_Init, crypto)
769AC_FIND_FUNC_NO_LIBS(MD5Init, crypto)
770AC_FIND_FUNC_NO_LIBS(MD5_Init, crypto)
771AC_FIND_FUNC_NO_LIBS(SHA1Init, crypto)
772AC_FIND_FUNC_NO_LIBS(SHA1_Init, crypto)
773AC_FIND_FUNC_NO_LIBS(des_cbc_encrypt, crypto des)
774
775dnl
776dnl Tests for editline
777dnl
778
779dnl el_init
780
781AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent])
782if test "$ac_cv_func_el_init" = yes ; then
783	AC_CACHE_CHECK(for four argument el_init, ac_cv_func_el_init_four,[
784		AC_TRY_COMPILE([#include <stdio.h>
785			#include <histedit.h>],
786			[el_init("", NULL, NULL, NULL);],
787			ac_cv_func_el_init_four=yes,
788			ac_cv_func_el_init_four=no)])
789	if test "$ac_cv_func_el_init_four" = yes; then
790		AC_DEFINE(HAVE_FOUR_VALUED_EL_INIT, 1, [Define if el_init takes four arguments.])
791	fi
792fi
793
794dnl readline
795
796ac_foo=no
797if test "$with_readline" = yes; then
798	:
799elif test "$ac_cv_func_readline" = yes; then
800	:
801elif test "$ac_cv_func_el_init" = yes; then
802	ac_foo=yes
803	LIB_readline="\$(top_builddir)/lib/editline/libel_compat.a $LIB_el_init"
804else
805	LIB_readline='$(top_builddir)/lib/editline/libeditline.a'
806fi
807AM_CONDITIONAL(el_compat, test "$ac_foo" = yes)
808if test "$readline_libdir"; then
809	LIB_readline="-rpath $readline_libdir $LIB_readline"
810fi
811LIB_readline="$LIB_readline \$(LIB_tgetent)"
812AC_DEFINE(HAVE_READLINE, 1, 
813	[Define if you have a readline compatible library.])dnl
814
815dnl telnet muck --------------------------------------------------
816
817AC_DEFINE(AUTHENTICATION, 1, 
818	[Define if you want authentication support in telnet.])dnl
819AC_DEFINE(ENCRYPTION, 1,
820	[Define if you want encryption support in telnet.])dnl
821AC_DEFINE(DES_ENCRYPTION, 1,
822	[Define if you want to use DES encryption in telnet.])dnl
823AC_DEFINE(DIAGNOSTICS, 1,
824	[Define this to enable diagnostics in telnet.])dnl
825AC_DEFINE(OLD_ENVIRON, 1,
826	[Define this to enable old environment option in telnet.])dnl
827if false; then
828AC_DEFINE(ENV_HACK, 1,
829	[Define this if you want support for broken ENV_{VAR,VAL} telnets.])
830fi
831
832# Simple test for streamspty, based on the existance of getmsg(), alas
833# this breaks on SunOS4 which have streams but BSD-like ptys
834#
835# And also something wierd has happend with dec-osf1, fallback to bsd-ptys
836
837AC_MSG_CHECKING(for streamspty)
838case "$host" in
839*-*-aix3*|*-*-sunos4*|*-*-osf*|*-*-hpux10*)
840	krb_cv_sys_streamspty=no
841	;;
842*)
843	krb_cv_sys_streamspty="$ac_cv_func_getmsg"
844	;;
845esac
846if test "$krb_cv_sys_streamspty" = yes; then
847	AC_DEFINE(STREAMSPTY, 1, [Define if you have streams ptys.])
848fi
849dnl AC_SUBST(STREAMSPTY)
850AC_MSG_RESULT($krb_cv_sys_streamspty)
851
852AC_AUTH_MODULES
853
854dnl This is done by AC_OUTPUT but we need the result here.
855
856test "x$prefix" = xNONE && prefix=$ac_default_prefix
857test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
858
859for i in bin lib libexec sbin; do
860	i=${i}dir
861	foo=`echo $i | tr 'xindiscernible' 'XINDISCERNIBLE'`
862	x="\$${i}"
863	eval y="$x"
864	while test "x$y" != "x$x"; do
865		x="$y"
866		eval y="$x"
867	done
868	AC_DEFINE_UNQUOTED($foo,"$x")
869done
870
871if false; then
872	# hack to shut up automake
873	LIBOBJS="$LIBOBJS make-print-version.o"
874fi
875LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/\.lo/g'`
876AC_SUBST(LTLIBOBJS)
877AC_OUTPUT(Makefile 			\
878	include/Makefile		\
879	include/kadm5/Makefile		\
880	lib/Makefile			\
881	lib/45/Makefile			\
882	lib/auth/Makefile		\
883	lib/auth/afskauthlib/Makefile	\
884	lib/auth/pam/Makefile		\
885	lib/auth/sia/Makefile		\
886	lib/asn1/Makefile		\
887	lib/com_err/Makefile		\
888	lib/des/Makefile		\
889	lib/editline/Makefile		\
890	lib/gssapi/Makefile		\
891	lib/hdb/Makefile		\
892	lib/kadm5/Makefile		\
893	lib/kafs/Makefile		\
894	lib/krb5/Makefile		\
895	lib/otp/Makefile		\
896	lib/roken/Makefile		\
897	lib/sl/Makefile			\
898	kuser/Makefile			\
899	kpasswd/Makefile		\
900	kadmin/Makefile			\
901	admin/Makefile			\
902	kdc/Makefile			\
903	appl/Makefile			\
904	appl/afsutil/Makefile		\
905	appl/ftp/Makefile		\
906	appl/ftp/common/Makefile	\
907	appl/ftp/ftp/Makefile		\
908	appl/ftp/ftpd/Makefile		\
909	appl/kauth/Makefile		\
910	appl/kx/Makefile		\
911	appl/login/Makefile		\
912	appl/otp/Makefile		\
913	appl/popper/Makefile		\
914	appl/push/Makefile		\
915	appl/rsh/Makefile		\
916	appl/su/Makefile		\
917	appl/xnlock/Makefile		\
918	appl/telnet/Makefile		\
919	appl/telnet/libtelnet/Makefile	\
920	appl/telnet/telnet/Makefile	\
921	appl/telnet/telnetd/Makefile	\
922	appl/test/Makefile		\
923	appl/kf/Makefile		\
924	doc/Makefile			\
925)
926
927dnl
928dnl This is the release version name-number[beta]
929dnl
930HEIMDALVERSION="$PACKAGE-$VERSION"
931
932cat > include/newversion.h.in <<EOF
933char *heimdal_long_version = "@(#)\$Version: $HEIMDALVERSION by @USER@ on @HOST@ ($host) @DATE@ \$";
934char *heimdal_version = "$HEIMDALVERSION";
935EOF
936
937if test -f include/version.h && cmp -s include/newversion.h.in include/version.h.in; then
938	echo "include/version.h is unchanged"
939	rm -f include/newversion.h.in
940else
941 	echo "creating include/version.h"
942 	User=${USER-${LOGNAME}}
943 	Host=`(hostname || uname -n || echo unknown) 2>/dev/null | sed 1q`
944 	Date=`date`
945	mv -f include/newversion.h.in include/version.h.in
946	sed -e "s/@USER@/$User/" -e "s/@HOST@/$Host/" -e "s/@DATE@/$Date/" include/version.h.in > include/version.h
947fi
948