1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION($Revision$)
3 AC_INIT(lib/krb5/send_to_kdc.c)
4 AM_CONFIG_HEADER(include/config.h)
6 AM_INIT_AUTOMAKE(heimdal,0.2m)
8 AC_PREFIX_DEFAULT(/usr/heimdal)
12 AC_SUBST(CANONICAL_HOST)
26 if test "$sunos" != no; then
27 AC_DEFINE_UNQUOTED(SunOS, $sunos,
28 [Define to what version of SunOS you are running.])
41 test -z "$CFLAGS" && CFLAGS="-g"
43 dnl Checks for programs.
59 libdir="$libdir$abilibdirext"
66 AC_WFLAGS(-Wall -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wmissing-declarations -Wnested-externs)
69 AC_ARG_WITH(berkeley-db,
70 [ --without-berkeley-db if you don't want berkeley db],[
71 if test "$withval" = no; then
76 AC_TEST_PACKAGE_NEW(krb4,[#include <krb.h>],-lkrb,-ldes,/usr/athena)
79 if test "$with_krb4" != "no"; then
81 CFLAGS="$CFLAGS $INCLUDE_krb4"
83 LIBS="$LIB_krb4 -ldes $LIBS"
86 AC_CACHE_CHECK(for four valued krb_put_int, ac_cv_func_krb_put_int_four,
87 [AC_TRY_COMPILE([#include <krb.h>],[
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)
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.])
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)
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])
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)
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])
120 AC_FIND_FUNC(krb_enable_debug)
121 AC_FIND_FUNC(krb_disable_debug)
122 AC_FIND_FUNC(krb_get_our_ip_for_realm)
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"
131 AM_CONDITIONAL(KRB4, test "$with_krb4" != "no")
132 AM_CONDITIONAL(KRB5, true)
133 AC_DEFINE(KRB5, 1, [Enable Kerberos 5 support in applications.])dnl
135 AM_CONDITIONAL(AIX, test "$aix" != no)dnl
136 AM_CONDITIONAL(AIX4, test "$aix" = 4)
138 AM_CONDITIONAL(AIX_DYNAMIC_AFS, test "$aix_dynamic_afs" = yes)dnl
140 AC_FIND_FUNC_NO_LIBS(dlopen, dl)
142 if test "$aix" != no; then
143 if test "$aix_dynamic_afs" = yes; then
144 if test "$ac_cv_funclib_dlopen" = yes; then
146 elif test "$ac_cv_funclib_dlopen" != no; then
147 AIX_EXTRA_KAFS="$ac_cv_funclib_dlopen"
156 AM_CONDITIONAL(HAVE_DLOPEN, test "$ac_cv_funclib_dlopen" != no)dnl
157 AC_SUBST(AFS_EXTRA_LD)dnl
158 AC_SUBST(AIX_EXTRA_KAFS)dnl
160 AC_ARG_ENABLE(kaserver,
161 [ --enable-kaserver if you want the KDC to try to emulate a kaserver])
162 if 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)
171 AC_ARG_ENABLE(kaserver-db,
172 [ --enable-kaserver-db if you want support for reading kaserver databases in hprop])
173 if 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)
184 [ --disable-otp if you don't want OTP support],
186 if test "$enableval" = "no"; then
190 if 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'
195 AM_CONDITIONAL(OTP, test "$otp" = yes)dnl
201 AC_TEST_PACKAGE_NEW(readline,
203 #include <readline.h>],-lreadline)
205 AC_TEST_PACKAGE_NEW(hesiod,[#include <hesiod.h>],-lhesiod)
212 if test "$no_x" = "yes" ; then
213 MAKE_X_PROGS_BIN_PROGS=""
214 MAKE_X_PROGS_BIN_SCRPTS=""
215 MAKE_X_PROGS_LIBEXEC_PROGS=""
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)'
221 AC_SUBST(MAKE_X_PROGS_BIN_PROGS)dnl
222 AC_SUBST(MAKE_X_PROGS_BIN_SCRPTS)dnl
223 AC_SUBST(MAKE_X_PROGS_LIBEXEC_PROGS)dnl
229 dnl Checks for typedefs, structures, and compiler characteristics.
233 AC_CHECK_TYPE_EXTRA(ssize_t, int, [#include <unistd.h>])
236 AC_CHECK_TYPE_EXTRA(mode_t, unsigned short, [])
237 AC_CHECK_TYPE_EXTRA(sig_atomic_t, int, [#include <signal.h>])
241 dnl Checks for header files.
244 if test "$berkeley_db"; then
277 netinet/in6_machtypes.h \
289 security/pam_modules.h \
340 CHECK_NETINET_IP_AND_TCP
343 AC_ARG_ENABLE(netinfo,
344 [ --enable-netinfo enable netinfo for configuration lookup])
346 if test "$ac_cv_header_netinfo_ni_h" = yes -a "$enable_netinfo" = yes; then
347 AC_DEFINE(HAVE_NETINFO, 1,
348 [Define if you want to use Netinfo instead of krb5.conf.])
351 AM_CONDITIONAL(have_err_h, test "$ac_cv_header_err_h" = yes)
352 AM_CONDITIONAL(have_fnmatch_h, test "$ac_cv_header_fnmatch_h" = yes)
356 dnl Checks for libraries.
358 AC_FIND_FUNC(socket, socket)
359 AC_FIND_FUNC(gethostbyname, nsl)
360 AC_FIND_FUNC(syslog, syslog)
362 AC_FIND_FUNC_NO_LIBS(logwtmp, util)
363 AC_FIND_FUNC_NO_LIBS(tgetent, termcap ncurses curses)
364 AC_FIND_FUNC(gethostbyname2, inet6 ip6)
366 AC_FIND_FUNC(res_search, resolv,
369 #ifdef HAVE_SYS_TYPES_H
370 #include <sys/types.h>
372 #ifdef HAVE_NETINET_IN_H
373 #include <netinet/in.h>
375 #ifdef HAVE_ARPA_NAMESER_H
376 #include <arpa/nameser.h>
384 AC_FIND_FUNC(dn_expand, resolv,
387 #ifdef HAVE_SYS_TYPES_H
388 #include <sys/types.h>
390 #ifdef HAVE_NETINET_IN_H
391 #include <netinet/in.h>
393 #ifdef HAVE_ARPA_NAMESER_H
394 #include <arpa/nameser.h>
402 dnl Checks for library functions.
409 if test "$ac_cv_func_glob_working" != yes; then
410 LIBOBJS="$LIBOBJS glob.o"
412 AM_CONDITIONAL(have_glob_h, test "$ac_cv_func_glob_working" = yes)
414 dnl these should happen after tests for *snprintf
416 AC_FIND_FUNC_NO_LIBS(dbopen, $berkeley_db)
417 AC_FIND_FUNC_NO_LIBS(dbm_firstkey, $berkeley_db gdbm ndbm)
420 if test "$LIB_dbopen" != "$LIB_dbm_firstkey"; then
421 DBLIB="$DBLIB $LIB_dbm_firstkey"
425 AC_CHECK_FUNCS(_getpty _scrsize asnprintf asprintf cgetent fcntl)
426 AC_CHECK_FUNCS(getmsg getrlimit getspnam gettimeofday getuid)
427 AC_CHECK_FUNCS(grantpt mktime ptsname rand random setproctitle)
428 AC_CHECK_FUNCS(revoke select setitimer setpcred setpgid)
429 AC_CHECK_FUNCS(setregid setresgid setresuid setreuid setutent)
430 AC_CHECK_FUNCS(setsid sigaction strstr)
431 AC_CHECK_FUNCS(sysconf sysctl timegm ttyname ttyslot umask uname)
432 AC_CHECK_FUNCS(unlockpt vasnprintf vasprintf vhangup)
433 AC_CHECK_FUNCS(yp_get_default_domain)
435 if test "$ac_cv_func_cgetent" = no; then
436 LIBOBJS="$LIBOBJS getcap.o"
443 AC_CHECK_GETPWNAM_R_POSIX
445 AC_FIND_FUNC_NO_LIBS(getsockopt,,
446 [#ifdef HAVE_SYS_TYPES_H
447 #include <sys/types.h>
449 #ifdef HAVE_SYS_SOCKET_H
450 #include <sys/socket.h>
453 AC_FIND_FUNC_NO_LIBS(setsockopt,,
454 [#ifdef HAVE_SYS_TYPES_H
455 #include <sys/types.h>
457 #ifdef HAVE_SYS_SOCKET_H
458 #include <sys/socket.h>
463 AC_CHECK_FUNCS(getudbnam setlim)
466 if test "$ac_cv_type_signal" = "void" ; then
467 AC_DEFINE(VOID_RETSIGTYPE, 1, [Define if signal handlers return void.])
469 AC_SUBST(VOID_RETSIGTYPE)
471 AC_FIND_IF_NOT_BROKEN(hstrerror, resolv,
476 if test "$ac_cv_func_hstrerror" = yes; then
484 dnl sigh, wish this could be done in a loop
485 if test "$ac_cv_func_asprintf" = yes; then
488 #include <string.h>],
491 if test "$ac_cv_func_vasprintf" = yes; then
494 #include <string.h>],
497 if test "$ac_cv_func_asnprintf" = yes; then
500 #include <string.h>],
503 if test "$ac_cv_func_vasnprintf" = yes; then
506 #include <string.h>],
510 AC_BROKEN(chown copyhostent daemon err errx fchown flock fnmatch)
511 AC_BROKEN(freeaddrinfo freehostent gai_strerror getaddrinfo)
512 AC_BROKEN(getcwd getdtablesize gethostname getipnodebyaddr getipnodebyname)
513 AC_BROKEN(geteuid getgid getegid)
514 AC_BROKEN(getnameinfo getopt getusershell)
515 AC_BROKEN(inet_aton inet_ntop inet_pton initgroups innetgr iruserok lstat)
517 AC_BROKEN(mkstemp putenv rcmd readv recvmsg sendmsg setegid setenv seteuid)
518 AC_BROKEN(strcasecmp strncasecmp strdup strerror strftime)
519 AC_BROKEN(strlcat strlcpy strlwr)
520 AC_BROKEN(strndup strnlen strptime strsep strtok_r strupr)
521 AC_BROKEN(swab unsetenv verr verrx vsyslog)
522 AC_BROKEN(vwarn vwarnx warn warnx writev)
524 AC_NEED_PROTO([#include <stdlib.h>], setenv)
525 AC_NEED_PROTO([#include <stdlib.h>], unsetenv)
526 AC_NEED_PROTO([#include <unistd.h>], gethostname)
527 AC_NEED_PROTO([#include <unistd.h>], mkstemp)
528 AC_NEED_PROTO([#include <unistd.h>], getusershell)
531 #ifdef HAVE_SYS_TYPES_H
532 #include <sys/types.h>
534 #ifdef HAVE_SYS_SOCKET_H
535 #include <sys/socket.h>
537 #ifdef HAVE_NETINET_IN_H
538 #include <netinet/in.h>
540 #ifdef HAVE_ARPA_INET_H
541 #include <arpa/inet.h>
545 AC_FIND_FUNC_NO_LIBS(crypt, crypt)dnl
548 dnl libroken references crypt and dbopen
551 LIB_roken='$(top_builddir)/lib/roken/libroken.la $(LIB_crypt) $(LIB_dbopen)'
552 AC_SUBST(LIB_roken)dnl
554 AC_CACHE_CHECK(if realloc if broken, ac_cv_func_realloc_broken, [
555 ac_cv_func_realloc_broken=no
562 return realloc(NULL, 17) == NULL;
564 ],:, ac_cv_func_realloc_broken=yes, :)
566 if test "$ac_cv_func_realloc_broken" = yes ; then
567 AC_DEFINE(BROKEN_REALLOC, 1, [Define if realloc(NULL) doesn't work.])
570 dnl AC_KRB_FUNC_GETCWD_BROKEN
573 dnl Checks for prototypes and declarations
577 #ifdef HAVE_SYS_TYPES_H
578 #include <sys/types.h>
580 #ifdef HAVE_SYS_SOCKET_H
581 #include <sys/socket.h>
583 #ifdef HAVE_NETINET_IN_H
584 #include <netinet/in.h>
586 #ifdef HAVE_ARPA_INET_H
587 #include <arpa/inet.h>
593 gethostbyname, struct hostent *gethostbyname(const char *))
596 #ifdef HAVE_SYS_TYPES_H
597 #include <sys/types.h>
599 #ifdef HAVE_SYS_SOCKET_H
600 #include <sys/socket.h>
602 #ifdef HAVE_NETINET_IN_H
603 #include <netinet/in.h>
605 #ifdef HAVE_ARPA_INET_H
606 #include <arpa/inet.h>
612 gethostbyaddr, struct hostent *gethostbyaddr(const void *, size_t, int))
615 #ifdef HAVE_SYS_TYPES_H
616 #include <sys/types.h>
618 #ifdef HAVE_SYS_SOCKET_H
619 #include <sys/socket.h>
621 #ifdef HAVE_NETINET_IN_H
622 #include <netinet/in.h>
624 #ifdef HAVE_ARPA_INET_H
625 #include <arpa/inet.h>
631 getservbyname, struct servent *getservbyname(const char *, const char *))
638 openlog, void openlog(const char *, int, int))
660 AC_CHECK_VAR([#ifdef HAVE_SYS_TYPES_H
661 #include <sys/types.h>
668 AC_CHECK_VAR([#ifdef HAVE_NETDB_H
673 AC_CHECK_VAR([#ifdef HAVE_NETDB_H
678 AC_CHECK_VAR([#ifdef HAVE_ERR_H
680 #endif],[__progname])
682 AC_CHECK_DECLARATION([#include <stdlib.h>
686 AC_CHECK_DECLARATION([#include <stdlib.h>
690 AC_CHECK_DECLARATION([#include <stdlib.h>
694 AC_CHECK_DECLARATION([#include <stdlib.h>
699 AC_CHECK_DECLARATION([#include <stdlib.h>], environ)
702 dnl Check for fields in struct utmp
705 AC_HAVE_STRUCT_FIELD(struct utmp, ut_addr, [#include <utmp.h>])
706 AC_HAVE_STRUCT_FIELD(struct utmp, ut_host, [#include <utmp.h>])
707 AC_HAVE_STRUCT_FIELD(struct utmp, ut_id, [#include <utmp.h>])
708 AC_HAVE_STRUCT_FIELD(struct utmp, ut_pid, [#include <utmp.h>])
709 AC_HAVE_STRUCT_FIELD(struct utmp, ut_type, [#include <utmp.h>])
710 AC_HAVE_STRUCT_FIELD(struct utmp, ut_user, [#include <utmp.h>])
711 AC_HAVE_STRUCT_FIELD(struct utmpx, ut_exit, [#include <utmpx.h>])
712 AC_HAVE_STRUCT_FIELD(struct utmpx, ut_syslen, [#include <utmpx.h>])
715 dnl Check for fields in struct tm
718 AC_HAVE_STRUCT_FIELD(struct tm, tm_gmtoff, [#include <time.h>])
719 AC_HAVE_STRUCT_FIELD(struct tm, tm_zone, [#include <time.h>])
722 dnl or do we have a variable `timezone' ?
729 AC_HAVE_TYPE([sa_family_t],[#include <sys/socket.h>])
731 AC_HAVE_TYPE([socklen_t],[#include <sys/socket.h>])
733 AC_HAVE_TYPE([struct sockaddr], [#include <sys/socket.h>])
735 AC_HAVE_TYPE([struct sockaddr_storage], [#include <sys/socket.h>])
737 AC_HAVE_TYPE([struct addrinfo], [#include <netdb.h>])
740 dnl Check for struct winsize
743 AC_KRB_STRUCT_WINSIZE
746 dnl Check for struct spwd
752 dnl Check for sa_len in struct sockaddr
755 AC_HAVE_STRUCT_FIELD(struct sockaddr, sa_len, [#include <sys/types.h>
756 #include <sys/socket.h>])
759 AC_GROK_TYPES(int8_t int16_t int32_t int64_t)
760 AC_GROK_TYPES(u_int8_t u_int16_t u_int32_t u_int64_t)
763 dnl Tests for editline
768 AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent])
769 if test "$ac_cv_func_el_init" = yes ; then
770 AC_CACHE_CHECK(for four argument el_init, ac_cv_func_el_init_four,[
771 AC_TRY_COMPILE([#include <stdio.h>
772 #include <histedit.h>],
773 [el_init("", NULL, NULL, NULL);],
774 ac_cv_func_el_init_four=yes,
775 ac_cv_func_el_init_four=no)])
776 if test "$ac_cv_func_el_init_four" = yes; then
777 AC_DEFINE(HAVE_FOUR_VALUED_EL_INIT, 1, [Define if el_init takes four arguments.])
784 if test "$with_readline" = yes; then
786 elif test "$ac_cv_func_readline" = yes; then
788 elif test "$ac_cv_func_el_init" = yes; then
790 LIB_readline="\$(top_builddir)/lib/editline/libel_compat.a $LIB_el_init"
792 LIB_readline='$(top_builddir)/lib/editline/libeditline.a'
794 AM_CONDITIONAL(el_compat, test "$ac_foo" = yes)
795 if test "$readline_libdir"; then
796 LIB_readline="-rpath $readline_libdir $LIB_readline"
798 LIB_readline="$LIB_readline \$(LIB_tgetent)"
799 AC_DEFINE(HAVE_READLINE, 1,
800 [Define if you have a readline compatible library.])dnl
802 dnl telnet muck --------------------------------------------------
804 AC_DEFINE(AUTHENTICATION, 1,
805 [Define if you want authentication support in telnet.])dnl
806 AC_DEFINE(ENCRYPTION, 1,
807 [Define if you want encryption support in telnet.])dnl
808 AC_DEFINE(DES_ENCRYPTION, 1,
809 [Define if you want to use DES encryption in telnet.])dnl
810 AC_DEFINE(DIAGNOSTICS, 1,
811 [Define this to enable diagnostics in telnet.])dnl
812 AC_DEFINE(OLD_ENVIRON, 1,
813 [Define this to enable old environment option in telnet.])dnl
815 AC_DEFINE(ENV_HACK, 1,
816 [Define this if you want support for broken ENV_{VAR,VAL} telnets.])
819 # Simple test for streamspty, based on the existance of getmsg(), alas
820 # this breaks on SunOS4 which have streams but BSD-like ptys
822 # And also something wierd has happend with dec-osf1, fallback to bsd-ptys
824 AC_MSG_CHECKING(for streamspty)
826 *-*-aix3*|*-*-sunos4*|*-*-osf*|*-*-hpux10*)
827 krb_cv_sys_streamspty=no
830 krb_cv_sys_streamspty="$ac_cv_func_getmsg"
833 if test "$krb_cv_sys_streamspty" = yes; then
834 AC_DEFINE(STREAMSPTY, 1, [Define if you have streams ptys.])
836 dnl AC_SUBST(STREAMSPTY)
837 AC_MSG_RESULT($krb_cv_sys_streamspty)
841 dnl This is done by AC_OUTPUT but we need the result here.
843 test "x$prefix" = xNONE && prefix=$ac_default_prefix
844 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
846 for i in bin lib libexec sbin; do
848 foo=`echo $i | tr 'xindiscernible' 'XINDISCERNIBLE'`
851 while test "x$y" != "x$x"; do
855 AC_DEFINE_UNQUOTED($foo,"$x")
859 # hack to shut up automake
860 LIBOBJS="$LIBOBJS make-print-version.o"
862 LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/\.lo/g'`
866 include/kadm5/Makefile \
870 lib/auth/afskauthlib/Makefile \
871 lib/auth/pam/Makefile \
872 lib/auth/sia/Makefile \
874 lib/com_err/Makefile \
876 lib/editline/Makefile \
877 lib/gssapi/Makefile \
891 appl/afsutil/Makefile \
893 appl/ftp/common/Makefile \
894 appl/ftp/ftp/Makefile \
895 appl/ftp/ftpd/Makefile \
896 appl/kauth/Makefile \
898 appl/login/Makefile \
900 appl/popper/Makefile \
904 appl/xnlock/Makefile \
905 appl/telnet/Makefile \
906 appl/telnet/libtelnet/Makefile \
907 appl/telnet/telnet/Makefile \
908 appl/telnet/telnetd/Makefile \
915 dnl This is the release version name-number[beta]
917 HEIMDALVERSION="$PACKAGE-$VERSION"
919 cat > include/newversion.h.in <<EOF
920 char *heimdal_long_version = "@(#)\$Version: $HEIMDALVERSION by @USER@ on @HOST@ ($host) @DATE@ \$";
921 char *heimdal_version = "$HEIMDALVERSION";
924 if test -f include/version.h && cmp -s include/newversion.h.in include/version.h.in; then
925 echo "include/version.h is unchanged"
926 rm -f include/newversion.h.in
928 echo "creating include/version.h"
929 User=${USER-${LOGNAME}}
930 Host=`(hostname || uname -n || echo unknown) 2>/dev/null | sed 1q`
932 mv -f include/newversion.h.in include/version.h.in
933 sed -e "s/@USER@/$User/" -e "s/@HOST@/$Host/" -e "s/@DATE@/$Date/" include/version.h.in > include/version.h