dnl Process this file with autoconf to produce a configure script. AC_REVISION($Revision: 1.1.1.3 $) AC_PREREQ(2.14.-1.1)dnl 2.14a AC_INIT(heimdal, 0.3e, heimdal-bugs@pdc.kth.se) AM_CONFIG_HEADER(include/config.h) dnl Checks for programs. AC_PROG_CC AC_PROG_CPP AC_PROG_CC_STDC AM_INIT_AUTOMAKE(heimdal,0.3e) AC_PREFIX_DEFAULT(/usr/heimdal) AC_CANONICAL_HOST CANONICAL_HOST=$host AC_SUBST(CANONICAL_HOST) sunos=no case "$host" in *-*-sunos4*) sunos=40 ;; *-*-solaris2.7) sunos=57 ;; *-*-solaris2.8) sunos=58 ;; *-*-solaris2*) sunos=50 ;; esac if test "$sunos" != no; then AC_DEFINE_UNQUOTED(SunOS, $sunos, [Define to what version of SunOS you are running.]) fi aix=no case "$host" in *-*-aix3*) aix=3 ;; *-*-aix4*) aix=4 ;; esac #test -z "$CFLAGS" && CFLAGS="-g" AC_OBJEXT AC_EXEEXT dnl AC_KRB_PROG_YACC AC_PROG_YACC AM_PROG_LEX AC_PROG_RANLIB AC_PROG_AWK AC_KRB_PROG_LN_S AC_MIPS_ABI CC="$CC $abi" libdir="$libdir$abilibdirext" AC_C___ATTRIBUTE__ AC_ENABLE_SHARED(no) AC_PROG_LIBTOOL AC_WFLAGS(-Wall -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wmissing-declarations -Wnested-externs) rk_DB dnl AC_ROKEN(10,[/usr/heimdal /usr/athena],[lib/roken],[$(top_builddir)/lib/roken/libroken.la],[-I$(top_builddir)/lib/roken -I$(top_srcdir)/lib/roken]) rk_ROKEN(lib/roken) LIB_roken="\$(top_builddir)/lib/vers/libvers.la $LIB_roken" AC_TEST_PACKAGE_NEW(openldap,[#include ],[-lldap -llber],,,OPENLDAP) if test "$openldap_libdir"; then LIB_openldap="-R $openldap_libdir $LIB_openldap" fi AC_TEST_PACKAGE_NEW(krb4,[#include ],-lkrb,-ldes,/usr/athena, KRB4) LIB_kdb= if test "$with_krb4" != "no"; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $INCLUDE_krb4" save_LIBS="$LIBS" LIBS="$LIB_krb4 -ldes $LIBS" EXTRA_LIB45=lib45.a AC_SUBST(EXTRA_LIB45) AC_CACHE_CHECK(for four valued krb_put_int, ac_cv_func_krb_put_int_four, [AC_TRY_COMPILE([#include ],[ char tmp[4]; krb_put_int(17, tmp, 4, sizeof(tmp));], ac_cv_func_krb_put_int_four=yes, ac_cv_func_krb_put_int_four=no) ]) if test "$ac_cv_func_krb_put_int_four" = yes; then AC_DEFINE(HAVE_FOUR_VALUED_KRB_PUT_INT, 1, [define if krb_put_int takes four arguments.]) fi AH_BOTTOM([#if defined(HAVE_FOUR_VALUED_KRB_PUT_INT) || !defined(KRB4) #define KRB_PUT_INT(F, T, L, S) krb_put_int((F), (T), (L), (S)) #else #define KRB_PUT_INT(F, T, L, S) krb_put_int((F), (T), (S)) #endif ]) AC_CACHE_CHECK(for KRB_VERIFY_SECURE, ac_cv_func_krb_verify_secure, [AC_TRY_COMPILE([#include ],[ int x = KRB_VERIFY_SECURE], ac_cv_func_krb_verify_secure=yes, ac_cv_func_krb_verify_secure=no) ]) if test "$ac_cv_func_krb_verify_secure" != yes; then AC_DEFINE(KRB_VERIFY_SECURE, 1, [Define to one if your krb.h doesn't]) AC_DEFINE(KRB_VERIFY_SECURE_FAIL, 2, [Define to two if your krb.h doesn't]) fi AC_CACHE_CHECK(for KRB_VERIFY_NOT_SECURE, ac_cv_func_krb_verify_not_secure, [AC_TRY_COMPILE([#include ],[ int x = KRB_VERIFY_NOT_SECURE], ac_cv_func_krb_verify_not_secure=yes, ac_cv_func_krb_verify_not_secure=no) ]) if test "$ac_cv_func_krb_verify_not_secure" != yes; then AC_DEFINE(KRB_VERIFY_NOT_SECURE, 0, [Define to zero if your krb.h doesn't]) fi AC_FIND_FUNC(krb_enable_debug) AC_FIND_FUNC(krb_disable_debug) AC_FIND_FUNC(krb_get_our_ip_for_realm) AC_CACHE_CHECK(for krb_mk_req with const arguments, ac_cv_func_krb_mk_req_const, [AC_TRY_COMPILE([#include int krb_mk_req(KTEXT a, const char *s, const char *i, const char *r, int32_t checksum) { return 17; }], [], ac_cv_func_krb_mk_req_const=yes, ac_cv_func_krb_mk_req_const=no) ]) if test "$ac_cv_func_krb_mk_req_const" = "yes"; then AC_DEFINE(KRB_MK_REQ_CONST, 1, [Define if krb_mk_req takes cons char *]) fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" LIB_kdb="-lkdb -lkrb" if test "$krb4_libdir"; then LIB_krb4="-R $krb4_libdir $LIB_krb4" LIB_kdb="-R $krb4_libdir -L$krb4_libdir $LIB_kdb" fi fi AM_CONDITIONAL(KRB4, test "$with_krb4" != "no") AM_CONDITIONAL(KRB5, true) AM_CONDITIONAL(do_roken_rename, true) AC_DEFINE(KRB5, 1, [Enable Kerberos 5 support in applications.])dnl AC_SUBST(LIB_kdb)dnl AC_ARG_ENABLE(dce, [ --enable-dce if you want support for DCE/DFS PAG's.]) if test "$enable_dce" = yes; then AC_DEFINE(DCE, 1, [Define if you want support for DCE/DFS PAG's.]) fi AM_CONDITIONAL(DCE, test "$enable_dce" = yes) ## XXX quite horrible: if test -f /etc/ibmcxx.cfg; then dpagaix_LDADD=`sed -n '/^xlc_r4/,/^$/p' /etc/ibmcxx.cfg | sed -n -e '/libraries/{;s/^[^=]*=\(.*\)/\1/;s/,/ /gp;}'` dpagaix_CFLAGS=`sed -n '/^xlc_r4/,/^$/p' /etc/ibmcxx.cfg | sed -n -e '/options/{;s/^[^=]*=\(.*\)/\1/;s/-q[^,]*//;s/,/ /gp;}'` else dpagaix_CFLAGS="-D_THREAD_SAFE -D_AIX_PTHREADS_D7 -D_AIX32_THREADS=1 -D_AES_SOURCE -D_AIX41 -I/usr/include/dce" dpagaix_LDADD="-L/usr/lib/threads -ldcelibc_r -ldcepthreads -lpthreads_compat lpthreads -lc_r" fi AC_SUBST(dpagaix_CFLAGS) AC_SUBST(dpagaix_LDADD) AC_ARG_ENABLE(kaserver, [ --enable-kaserver if you want the KDC to try to emulate a kaserver]) if test "$enable_kaserver" = yes; then AC_DEFINE(KASERVER, 1, [Define if you want to use the KDC as a kaserver.]) if test "$with_krb4" = "no"; then AC_MSG_ERROR(kaserver requires krb4) exit 1 fi fi AC_ARG_ENABLE(kaserver-db, [ --enable-kaserver-db if you want support for reading kaserver databases in hprop]) if test "$enable_kaserver_db" = yes; then AC_DEFINE(KASERVER_DB, 1, [Define if you want support in hprop for reading kaserver databases]) if test "$with_krb4" = "no"; then AC_MSG_ERROR(kaserver-db requires krb4) exit 1 fi fi otp=yes AC_ARG_ENABLE(otp, [ --disable-otp if you don't want OTP support], [ if test "$enableval" = "no"; then otp=no fi ]) if test "$otp" = "yes"; then AC_DEFINE(OTP, 1, [Define if you want OTP support in applications.]) LIB_otp='$(top_builddir)/lib/otp/libotp.la' fi AC_SUBST(LIB_otp) AM_CONDITIONAL(OTP, test "$otp" = yes)dnl AC_CHECK_OSFC2 rk_CHECK_MAN AC_TEST_PACKAGE_NEW(readline, [#include #include ],-lreadline,,, READLINE) AC_TEST_PACKAGE_NEW(hesiod,[#include ],-lhesiod,,, HESIOD) KRB_C_BIGENDIAN AC_C_INLINE KRB_AIX KRB_IRIX KRB_CHECK_X AM_CONDITIONAL(HAVE_X, test "$no_x" != yes) AC_CHECK_XAU dnl AM_C_PROTOTYPES dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_OFF_T AC_TYPE_SIZE_T AC_CHECK_TYPE_EXTRA(ssize_t, int, [#include ]) AC_TYPE_PID_T AC_TYPE_UID_T AC_CHECK_TYPE_EXTRA(mode_t, unsigned short, []) AC_CHECK_TYPE_EXTRA(sig_atomic_t, int, [#include ]) AC_HAVE_TYPE([long long]) AC_HEADER_TIME AC_STRUCT_TM dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([\ arpa/ftp.h \ arpa/inet.h \ arpa/nameser.h \ arpa/telnet.h \ bind/bitypes.h \ bsdsetjmp.h \ crypt.h \ curses.h \ dbm.h \ dirent.h \ dlfcn.h \ err.h \ errno.h \ fcntl.h \ fnmatch.h \ gdbm/ndbm.h \ grp.h \ inttypes.h \ io.h \ limits.h \ maillock.h \ ndbm.h \ net/if.h \ netdb.h \ netinet/in.h \ netinet/in6.h \ netinet/in6_machtypes.h \ netinet/in6_var.h \ netinet/in_systm.h \ netinet6/in6.h \ netinfo/ni.h \ paths.h \ pthread.h \ pty.h \ pwd.h \ resolv.h \ rpcsvc/dbm.h \ sac.h \ security/pam_modules.h \ sgtty.h \ shadow.h \ siad.h \ signal.h \ stropts.h \ sys/bitypes.h \ sys/category.h \ sys/file.h \ sys/filio.h \ sys/ioccom.h \ sys/ioctl.h \ sys/param.h \ sys/proc.h \ sys/pty.h \ sys/ptyio.h \ sys/ptyvar.h \ sys/resource.h \ sys/select.h \ sys/socket.h \ sys/sockio.h \ sys/stat.h \ sys/str_tty.h \ sys/stream.h \ sys/stropts.h \ sys/strtty.h \ sys/syscall.h \ sys/sysctl.h \ sys/termio.h \ sys/time.h \ sys/timeb.h \ sys/times.h \ sys/tty.h \ sys/types.h \ sys/uio.h \ sys/un.h \ sys/utsname.h \ sys/wait.h \ syslog.h \ term.h \ termio.h \ termios.h \ time.h \ tmpdir.h \ udb.h \ unistd.h \ userconf.h \ usersec.h \ util.h \ utmp.h \ utmpx.h \ ]) CHECK_NETINET_IP_AND_TCP AC_ARG_ENABLE(netinfo, [ --enable-netinfo enable netinfo for configuration lookup]) if test "$ac_cv_header_netinfo_ni_h" = yes -a "$enable_netinfo" = yes; then AC_DEFINE(HAVE_NETINFO, 1, [Define if you want to use Netinfo instead of krb5.conf.]) fi AM_CONDITIONAL(have_err_h, test "$ac_cv_header_err_h" = yes) AM_CONDITIONAL(have_fnmatch_h, test "$ac_cv_header_fnmatch_h" = yes) AC_KRB_IPV6 dnl Checks for libraries. AC_FIND_FUNC(socket, socket) AC_FIND_FUNC(gethostbyname, nsl) AC_FIND_FUNC(syslog, syslog) AC_FIND_FUNC_NO_LIBS(logwtmp, util) AC_FIND_FUNC_NO_LIBS(tgetent, termcap ncurses curses) AC_FIND_FUNC(gethostbyname2, inet6 ip6) AC_FIND_FUNC(res_search, resolv, [ #include #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_NAMESER_H #include #endif #ifdef HAVE_RESOLV_H #include #endif ], [0,0,0,0,0]) AC_FIND_FUNC(dn_expand, resolv, [ #include #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_NAMESER_H #include #endif #ifdef HAVE_RESOLV_H #include #endif ], [0,0,0,0,0]) dnl Checks for library functions. AC_BROKEN_SNPRINTF AC_BROKEN_VSNPRINTF AC_CHECK_FUNCS([ \ _getpty \ _scrsize \ fcntl \ gettimeofday \ getuid \ grantpt \ mktime \ ptsname \ rand \ random \ revoke \ select \ setitimer \ setpcred \ setpgid \ setproctitle \ setregid \ setresgid \ setresuid \ setreuid \ setsid \ setutent \ sigaction \ strstr \ timegm \ ttyname \ ttyslot \ umask \ unlockpt \ vhangup \ yp_get_default_domain \ ]) KRB_CAPABILITIES AC_CHECK_GETPWNAM_R_POSIX AC_FIND_FUNC_NO_LIBS(getsockopt,, [#ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif], [0,0,0,0,0]) AC_FIND_FUNC_NO_LIBS(setsockopt,, [#ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif], [0,0,0,0,0]) dnl Cray stuff AC_CHECK_FUNCS(getudbnam setlim) rk_RETSIGTYPE rk_BROKEN_REALLOC dnl AC_KRB_FUNC_GETCWD_BROKEN dnl dnl Check for fields in struct utmp dnl AC_HAVE_STRUCT_FIELD(struct utmp, ut_addr, [#include ]) AC_HAVE_STRUCT_FIELD(struct utmp, ut_host, [#include ]) AC_HAVE_STRUCT_FIELD(struct utmp, ut_id, [#include ]) AC_HAVE_STRUCT_FIELD(struct utmp, ut_pid, [#include ]) AC_HAVE_STRUCT_FIELD(struct utmp, ut_type, [#include ]) AC_HAVE_STRUCT_FIELD(struct utmp, ut_user, [#include ]) AC_HAVE_STRUCT_FIELD(struct utmpx, ut_exit, [#include ]) AC_HAVE_STRUCT_FIELD(struct utmpx, ut_syslen, [#include ]) dnl dnl Check for fields in struct tm dnl AC_HAVE_STRUCT_FIELD(struct tm, tm_gmtoff, [#include ]) AC_HAVE_STRUCT_FIELD(struct tm, tm_zone, [#include ]) dnl dnl or do we have a variable `timezone' ? dnl rk_CHECK_VAR(timezone, [#include ]) AC_HAVE_TYPE([sa_family_t],[#include ]) AC_HAVE_TYPE([socklen_t],[#include ]) AC_HAVE_TYPE([struct sockaddr], [#include ]) AC_HAVE_TYPE([struct sockaddr_storage], [#include ]) AC_HAVE_TYPE([struct addrinfo], [#include ]) dnl dnl Check for struct winsize dnl AC_KRB_STRUCT_WINSIZE dnl dnl Check for struct spwd dnl AC_KRB_STRUCT_SPWD dnl dnl Check for sa_len in struct sockaddr dnl AC_HAVE_STRUCT_FIELD(struct sockaddr, sa_len, [#include #include ]) AC_GROK_TYPES([int8_t int16_t int32_t int64_t \ u_int8_t u_int16_t u_int32_t u_int64_t \ uint8_t uint16_t uint32_t uint64_t]) dnl dnl crypto functions tests dnl AC_CHECK_HEADERS([ \ openssl/md4.h \ openssl/md5.h \ openssl/sha.h \ openssl/des.h \ openssl/rc4.h \ ]) AC_FIND_FUNC_NO_LIBS2(MD4_Init, crypto des, [], [], [], [$LIB_krb4]) AC_FIND_FUNC_NO_LIBS2(MD5_Init, crypto des, [], [], [], [$LIB_krb4]) AC_FIND_FUNC_NO_LIBS2(SHA1_Init, crypto des, [], [], [], [$LIB_krb4]) AC_FIND_FUNC_NO_LIBS2(des_cbc_encrypt, crypto des, [], [], [], [$LIB_krb4]) AC_FIND_FUNC_NO_LIBS2(RC4, crypto des, [], [], [], [$LIB_krb4]) if test "$ac_cv_func_des_cbc_encrypt" = "yes" -a \ "$ac_cv_func_MD4_Init" = "yes" -a \ "$ac_cv_func_MD5_Init" = "yes" -a \ "$ac_cv_func_SHA1_Init" = "yes" -a \ "$ac_cv_func_RC4" = "yes"; then DIR_des='' LIB_des="-R $krb4_libdir -L$krb4_libdir $ac_cv_funclib_MD4_Init" LIB_des_appl="$LIB_des" else DIR_des='des' LIB_des='$(top_builddir)/lib/des/libdes.la' LIB_des_appl="-ldes" fi AC_SUBST(DIR_des) AC_SUBST(LIB_des) AC_SUBST(LIB_des_appl) KRB_READLINE dnl telnet muck -------------------------------------------------- AC_DEFINE(AUTHENTICATION, 1, [Define if you want authentication support in telnet.])dnl AC_DEFINE(ENCRYPTION, 1, [Define if you want encryption support in telnet.])dnl AC_DEFINE(DES_ENCRYPTION, 1, [Define if you want to use DES encryption in telnet.])dnl AC_DEFINE(DIAGNOSTICS, 1, [Define this to enable diagnostics in telnet.])dnl AC_DEFINE(OLD_ENVIRON, 1, [Define this to enable old environment option in telnet.])dnl if false; then AC_DEFINE(ENV_HACK, 1, [Define this if you want support for broken ENV_{VAR,VAL} telnets.]) fi # Simple test for streamspty, based on the existance of getmsg(), alas # this breaks on SunOS4 which have streams but BSD-like ptys # # And also something wierd has happend with dec-osf1, fallback to bsd-ptys AC_CHECK_FUNC(getmsg) if test "$ac_cv_func_getmsg" = "yes"; then AC_CACHE_CHECK(for working getmsg, ac_cv_func_getmsg_work, AC_TRY_RUN( [ #include #include int main() { int ret; ret = getmsg(open("/dev/null", 0), NULL, NULL, NULL); if(ret < 0 && errno == ENOSYS) return 1; return 0; } ], ac_cv_func_getmsg_work=yes, ac_cv_func_getmsg_work=no, ac_cv_func_getmsg_work=no)) test "$ac_cv_func_getmsg_work" = "yes" && AC_DEFINE(HAVE_GETMSG, 1, [Define if you have a working getmsg.]) fi if test "$ac_cv_func_getmsg_work" = yes; then AC_MSG_CHECKING(for streamspty) case "$host" in *-*-aix3*|*-*-sunos4*|*-*-osf*|*-*-hpux1[[01]]*) krb_cv_sys_streamspty=no ;; *) krb_cv_sys_streamspty=yes ;; esac AC_MSG_RESULT($krb_cv_sys_streamspty) fi if test "$krb_cv_sys_streamspty" = yes; then AC_DEFINE(STREAMSPTY, 1, [Define if you have streams ptys.]) fi AC_AUTH_MODULES dnl This is done by AC_OUTPUT but we need the result here. test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' for i in bin lib libexec sbin; do i=${i}dir foo=`echo $i | tr 'xindiscernible' 'XINDISCERNIBLE'` x="\$${i}" eval y="$x" while test "x$y" != "x$x"; do x="$y" eval y="$x" done AC_DEFINE_UNQUOTED($foo,"$x") done AH_BOTTOM([#undef BINDIR #undef LIBDIR #undef LIBEXECDIR #undef SBINDIR]) if false; then # hack to shut up automake LIBOBJS="$LIBOBJS make-print-version.o" fi LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/\.lo/g'` AC_SUBST(LTLIBOBJS) AC_CONFIG_FILES(Makefile \ include/Makefile \ include/kadm5/Makefile \ lib/Makefile \ lib/45/Makefile \ lib/auth/Makefile \ lib/auth/afskauthlib/Makefile \ lib/auth/pam/Makefile \ lib/auth/sia/Makefile \ lib/asn1/Makefile \ lib/com_err/Makefile \ lib/des/Makefile \ lib/editline/Makefile \ lib/gssapi/Makefile \ lib/hdb/Makefile \ lib/kadm5/Makefile \ lib/kafs/Makefile \ lib/kdfs/Makefile \ lib/krb5/Makefile \ lib/otp/Makefile \ lib/roken/Makefile \ lib/sl/Makefile \ lib/vers/Makefile \ kuser/Makefile \ kpasswd/Makefile \ kadmin/Makefile \ admin/Makefile \ kdc/Makefile \ appl/Makefile \ appl/afsutil/Makefile \ appl/ftp/Makefile \ appl/ftp/common/Makefile \ appl/ftp/ftp/Makefile \ appl/ftp/ftpd/Makefile \ appl/kx/Makefile \ appl/login/Makefile \ appl/otp/Makefile \ appl/popper/Makefile \ appl/push/Makefile \ appl/rsh/Makefile \ appl/rcp/Makefile \ appl/su/Makefile \ appl/xnlock/Makefile \ appl/telnet/Makefile \ appl/telnet/libtelnet/Makefile \ appl/telnet/telnet/Makefile \ appl/telnet/telnetd/Makefile \ appl/test/Makefile \ appl/kf/Makefile \ appl/dceutils/Makefile \ doc/Makefile \ tools/Makefile \ ) AC_OUTPUT dnl dnl This is the release version name-number[beta] dnl HEIMDALVERSION="$PACKAGE-$VERSION" cat > include/newversion.h.in </dev/null | sed 1q` Date=`date` mv -f include/newversion.h.in include/version.h.in sed -e "s/@USER@/$User/" -e "s/@HOST@/$Host/" -e "s/@DATE@/$Date/" include/version.h.in > include/version.h fi