a8a89cfaf9
the "core" Kerberos functionality. The rest of the userland will get their own changes later.
971 lines
22 KiB
Plaintext
971 lines
22 KiB
Plaintext
dnl
|
|
dnl *** PLEASE NOTE ***
|
|
dnl *** PLEASE NOTE ***
|
|
dnl *** PLEASE NOTE ***
|
|
dnl
|
|
dnl Update $VERSION before making a new release
|
|
dnl
|
|
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
dnl
|
|
AC_REVISION($Revision: 1.285 $)
|
|
AC_INIT(lib/krb/getrealm.c)
|
|
AC_CONFIG_HEADER(include/config.h)
|
|
|
|
dnl
|
|
dnl definitions
|
|
dnl
|
|
|
|
PACKAGE=krb4
|
|
AC_SUBST(PACKAGE)dnl
|
|
VERSION=0.9.6
|
|
AC_SUBST(VERSION)dnl
|
|
# This may be overridden using --prefix=/usr to configure
|
|
AC_PREFIX_DEFAULT(/usr/athena)
|
|
|
|
AC_CANONICAL_HOST
|
|
AC_PROG_MAKE_SET
|
|
AC_ARG_PROGRAM
|
|
|
|
# We want these before the checks, so the checks can modify their values.
|
|
test -z "$LDFLAGS" && LDFLAGS=-g
|
|
|
|
dnl
|
|
dnl check for programs
|
|
dnl
|
|
|
|
AC_KRB_PROG_LN_S
|
|
AC_PROG_CC
|
|
AC_PROG_CPP
|
|
AC_ISC_POSIX
|
|
AC_KRB_PROG_YACC
|
|
AC_PROG_LEX
|
|
AC_PROG_RANLIB
|
|
AC_PROG_INSTALL
|
|
AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, :)
|
|
|
|
dnl
|
|
dnl check for build options
|
|
dnl
|
|
|
|
AC_TEST_PACKAGE(socks,socks.h,libsocks5.a,-lsocks5)
|
|
CFLAGS="$SOCKSINCLUDE $CFLAGS"
|
|
LIBS="$SOCKSLIB $LIBS"
|
|
|
|
dnl Check if we want to use shared libraries
|
|
AC_ARG_WITH(shared,
|
|
[ --with-shared create shared libraries for Kerberos])
|
|
|
|
AC_ARG_WITH(cracklib,
|
|
[ --with-cracklib=dir use the cracklib.a in dir],
|
|
)
|
|
|
|
AC_ARG_WITH(dictpath,
|
|
[ --with-dictpath=path use this dictionary with cracklib]
|
|
)
|
|
|
|
(test -z "$with_cracklib" && test -n "$with_dictpath") ||
|
|
(test -n "$with_cracklib" && test -z "$with_dictpath") &&
|
|
AC_MSG_ERROR(--with-cracklib requires --with-dictpath and vice versa)
|
|
test -n "$with_cracklib" &&
|
|
CRACKLIB="-L$with_cracklib -lcrack" &&
|
|
AC_MSG_RESULT(Using cracklib in $with_cracklib)
|
|
AC_SUBST(CRACKLIB)dnl
|
|
test -n "$with_dictpath" &&
|
|
AC_MSG_RESULT(Using dictpath=$with_dictpath) &&
|
|
AC_DEFINE_UNQUOTED(DICTPATH,"$with_dictpath")
|
|
|
|
AC_ARG_WITH(mailspool,
|
|
[ --with-mailspool=dir this is the mail spool directory]
|
|
)
|
|
|
|
test -n "$with_mailspool" &&
|
|
AC_DEFINE_UNQUOTED(KRB4_MAILDIR, "$with_mailspool")
|
|
|
|
AC_ARG_ENABLE(random-mkey,
|
|
[ --enable-random-mkey use new code for master keys],[
|
|
if test "$enableval" = "yes"; then
|
|
AC_DEFINE(RANDOM_MKEY,1)
|
|
fi
|
|
])
|
|
|
|
AC_ARG_WITH(mkey,
|
|
[ --with-mkey=file where to put the master key],[
|
|
if test -n "$withval"; then
|
|
AC_DEFINE_UNQUOTED(MKEYFILE,"$withval")
|
|
fi
|
|
])
|
|
|
|
berkeley_db=db
|
|
AC_ARG_WITH(berkeley-db,
|
|
[ --without-berkeley-db if you don't want berkeley db],[
|
|
if test "$withval" = no; then
|
|
berkeley_db=""
|
|
fi
|
|
])
|
|
|
|
afs_support=yes
|
|
AC_ARG_WITH(afs-support,
|
|
[ --without-afs-support if you don't want support for afs],[
|
|
if test "$withval" = no; then
|
|
AC_DEFINE(NO_AFS)
|
|
afs_support=no
|
|
fi
|
|
])
|
|
|
|
des_quad=guess
|
|
AC_ARG_WITH(des-quad-checksum,
|
|
[ --with-des-quad-checksum=kind
|
|
default checksum to use (new, old, or guess)],[
|
|
des_quad="$withval"
|
|
])
|
|
if test "$des_quad" = "new"; then
|
|
AC_DEFINE(DES_QUAD_DEFAULT,DES_QUAD_NEW)
|
|
elif test "$des_quad" = "old"; then
|
|
AC_DEFINE(DES_QUAD_DEFAULT,DES_QUAD_OLD)
|
|
else
|
|
AC_DEFINE(DES_QUAD_DEFAULT,DES_QUAD_GUESS)
|
|
fi
|
|
|
|
AC_TEST_PACKAGE(readline,readline.h,libreadline.a,-lreadline)
|
|
|
|
dnl
|
|
dnl Shared library stuff has to be different everywhere
|
|
dnl
|
|
|
|
AC_SUBST(CFLAGS)dnl
|
|
AC_SUBST(LDFLAGS)dnl
|
|
|
|
case ${with_shared} in
|
|
yes ) with_shared=yes;;
|
|
no ) with_shared=no;;
|
|
* ) with_shared=no;;
|
|
esac
|
|
|
|
# NOTE: Building shared libraries may not work if you do not use gcc!
|
|
#
|
|
# OS $SHLIBEXT
|
|
# HP-UX sl
|
|
# Linux so
|
|
# NetBSD so
|
|
# FreeBSD so
|
|
# OSF so
|
|
# SunOS5 so
|
|
# SunOS4 so.0.5
|
|
# Irix so
|
|
#
|
|
# LIBEXT is the extension we should build (.a or $SHLIBEXT)
|
|
REAL_PICFLAGS="-fpic"
|
|
LDSHARED='$(CC) $(PICFLAGS) -shared'
|
|
LIBPREFIX=lib
|
|
REAL_SHLIBEXT=so
|
|
changequote({,})dnl
|
|
SHLIB_VERSION=`echo $VERSION | sed 's/\([0-9.]*\).*/\1/'`
|
|
changequote([,])dnl
|
|
case "${host}" in
|
|
*-*-hpux*)
|
|
REAL_SHLIBEXT=sl
|
|
REAL_LD_FLAGS='-Wl,+b$(libdir)'
|
|
if test -z "$GCC"; then
|
|
LDSHARED="ld -b"
|
|
REAL_PICFLAGS="+z"
|
|
fi
|
|
;;
|
|
*-*-linux*)
|
|
REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
|
|
;;
|
|
*-*-*bsd*)
|
|
REAL_SHLIBEXT=so.$SHLIB_VERSION
|
|
LDSHARED='ld -Bshareable'
|
|
REAL_LD_FLAGS='-Wl,-R$(libdir)'
|
|
;;
|
|
*-*-osf*)
|
|
REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
|
|
REAL_PICFLAGS=
|
|
LDSHARED='ld -shared -expect_unresolved \*'
|
|
;;
|
|
*-*-solaris2*)
|
|
REAL_LD_FLAGS='-Wl,-R$(libdir)'
|
|
if test -z "$GCC"; then
|
|
LDSHARED='$(CC) -G'
|
|
REAL_PICFLAGS="-Kpic"
|
|
fi
|
|
;;
|
|
*-*-sunos*)
|
|
REAL_SHLIBEXT=so.$SHLIB_VERSION
|
|
REAL_LD_FLAGS='-Wl,-L$(libdir)'
|
|
;;
|
|
*-*-irix*)
|
|
REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
|
|
REAL_PICFLAGS=
|
|
;;
|
|
*-*-os2_emx*)
|
|
LD_FLAGS='-Zexe'
|
|
LIBPREFIX=
|
|
EXECSUFFIX='.exe'
|
|
RANLIB=EMXOMF
|
|
REAL_SHLIBEXT=nobuild
|
|
;;
|
|
*-*-cygwin32*)
|
|
EXECSUFFIX='.exe'
|
|
REAL_SHLIBEXT=nobuild
|
|
;;
|
|
*) REAL_SHLIBEXT=nobuild
|
|
REAL_PICFLAGS=
|
|
;;
|
|
esac
|
|
|
|
if test "${with_shared}" != "yes" ; then
|
|
PICFLAGS=""
|
|
SHLIBEXT="nobuild"
|
|
LIBEXT="a"
|
|
else
|
|
PICFLAGS="$REAL_PICFLAGS"
|
|
SHLIBEXT="$REAL_SHLIBEXT"
|
|
LIBEXT="$SHLIBEXT"
|
|
LD_FLAGS="$REAL_LD_FLAGS"
|
|
fi
|
|
|
|
AC_SUBST(REAL_PICFLAGS) dnl
|
|
AC_SUBST(REAL_SHLIBEXT) dnl
|
|
AC_SUBST(REAL_LD_FLAGS) dnl
|
|
|
|
AC_SUBST(PICFLAGS) dnl
|
|
AC_SUBST(SHLIBEXT) dnl
|
|
AC_SUBST(LDSHARED) dnl
|
|
AC_SUBST(LD_FLAGS) dnl
|
|
AC_SUBST(LIBEXT) dnl
|
|
AC_SUBST(LIBPREFIX) dnl
|
|
AC_SUBST(EXECSUFFIX) dnl
|
|
|
|
dnl
|
|
dnl Check if we need to use weak-stuff
|
|
dnl
|
|
|
|
AC_HAVE_PRAGMA_WEAK
|
|
|
|
dnl
|
|
dnl Check for endian-ness, this breaks cross compilation
|
|
dnl
|
|
AC_C_BIGENDIAN
|
|
|
|
dnl
|
|
dnl Check for constness
|
|
dnl
|
|
AC_C_CONST
|
|
|
|
dnl
|
|
dnl Check for strange operating systems that you need to handle differently
|
|
dnl
|
|
|
|
AC_KRB_SYS_NEXTSTEP
|
|
AC_KRB_SYS_AIX
|
|
|
|
if test "$krb_cv_sys_aix" = yes ;then
|
|
AFS_EXTRA_OBJS='$(srcdir)/afsl.exp dlfcn.o'
|
|
AC_SUBST(AFS_EXTRA_OBJS)
|
|
AFS_EXTRA_LIBS=afslib.so
|
|
AC_SUBST(AFS_EXTRA_LIBS)
|
|
fi
|
|
|
|
#
|
|
# AIX needs /lib/pse.exp for getmsg, but alas that file is broken in
|
|
# AIX414
|
|
#
|
|
|
|
if test -f /lib/pse.exp ;then
|
|
LIBS="$LIBS -Wl,-bI:/lib/pse.exp"
|
|
fi
|
|
|
|
dnl
|
|
dnl Various checks for headers and their contents
|
|
dnl
|
|
|
|
AC_HEADER_STDC
|
|
|
|
AC_CHECK_HEADERS(arpa/ftp.h arpa/inet.h arpa/nameser.h)
|
|
AC_CHECK_HEADERS(arpa/telnet.h bind/bitypes.h bsd/bsd.h bsdsetjmp.h)
|
|
AC_CHECK_HEADERS(crypt.h dbm.h dirent.h err.h fcntl.h grp.h io.h)
|
|
AC_CHECK_HEADERS(lastlog.h login.h maillock.h ndbm.h net/if.h)
|
|
AC_CHECK_HEADERS(net/if_tun.h net/if_var.h netdb.h netinet/in.h)
|
|
AC_CHECK_HEADERS(netinet/in6_machtypes.h netinet/in_systm.h)
|
|
AC_CHECK_HEADERS(netinet/ip.h netinet/tcp.h paths.h pty.h pwd.h)
|
|
AC_CHECK_HEADERS(resolv.h rpcsvc/dbm.h sac.h security/pam_modules.h)
|
|
AC_CHECK_HEADERS(shadow.h siad.h signal.h stropts.h sys/bitypes.h)
|
|
AC_CHECK_HEADERS(sys/category.h sys/cdefs.h sys/file.h sys/filio.h)
|
|
AC_CHECK_HEADERS(sys/ioccom.h sys/ioctl.h sys/locking.h sys/mman.h)
|
|
AC_CHECK_HEADERS(sys/param.h sys/proc.h sys/ptyio.h sys/ptyvar.h)
|
|
AC_CHECK_HEADERS(sys/resource.h sys/select.h sys/socket.h)
|
|
AC_CHECK_HEADERS(sys/sockio.h sys/stat.h sys/str_tty.h sys/stream.h)
|
|
AC_CHECK_HEADERS(sys/stropts.h sys/strtty.h sys/syscall.h)
|
|
AC_CHECK_HEADERS(sys/sysctl.h sys/termio.h sys/time.h sys/timeb.h)
|
|
AC_CHECK_HEADERS(sys/times.h sys/tty.h sys/types.h sys/uio.h)
|
|
AC_CHECK_HEADERS(sys/un.h sys/utsname.h sys/wait.h syslog.h)
|
|
AC_CHECK_HEADERS(termio.h termios.h tmpdir.h ttyent.h udb.h ulimit.h)
|
|
AC_CHECK_HEADERS(unistd.h userpw.h usersec.h util.h utime.h utmp.h)
|
|
AC_CHECK_HEADERS(utmpx.h wait.h winsock.h)
|
|
|
|
AC_HEADER_TIME
|
|
AC_DECL_SYS_SIGLIST
|
|
AC_SUBST(ac_cv_header_sys_cdefs_h)dnl
|
|
AC_SUBST(ac_cv_header_err_h)dnl
|
|
|
|
AC_GROK_TYPES(int8_t int16_t int32_t int64_t)
|
|
AC_GROK_TYPES(u_int8_t u_int16_t u_int32_t u_int64_t)
|
|
|
|
dnl
|
|
dnl Various checks for libraries and their contents
|
|
dnl
|
|
|
|
dnl
|
|
dnl System V is have misplaced the socket routines, should really be in libc
|
|
dnl
|
|
|
|
AC_FIND_FUNC(socket, socket,
|
|
[#ifdef HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_SOCKET_H
|
|
#include <sys/socket.h>
|
|
#endif],
|
|
[0,0,0])
|
|
AC_FIND_FUNC(gethostbyname, nsl,
|
|
[#ifdef HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_SOCKET_H
|
|
#include <sys/socket.h>
|
|
#endif],
|
|
"foo")
|
|
|
|
dnl
|
|
dnl Horror AIX needs -lodm -lcfg to link login
|
|
dnl
|
|
|
|
AC_FIND_FUNC(odm_initialize, odm)
|
|
AC_FIND_FUNC(getattr, cfg)
|
|
AC_FIND_FUNC(setpcred, s)
|
|
AC_FIND_FUNC(logwtmp, util)
|
|
|
|
AC_FIND_FUNC(logout, util)
|
|
AC_FIND_FUNC_NO_LIBS(tgetent, termcap)
|
|
|
|
dnl
|
|
dnl See if there is any X11 present
|
|
dnl
|
|
AC_PATH_XTRA
|
|
if test "$no_x" = "yes" ; then
|
|
MAKE_X_PROGS_BIN=""
|
|
MAKE_X_PROGS_LIBEXEC=""
|
|
else
|
|
MAKE_X_PROGS_BIN='$(X_PROGS_BIN)'
|
|
MAKE_X_PROGS_LIBEXEC='$(X_PROGS_LIBEXEC)'
|
|
fi
|
|
AC_SUBST(MAKE_X_PROGS_BIN)dnl
|
|
AC_SUBST(MAKE_X_PROGS_LIBEXEC)dnl
|
|
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$X_CFLAGS $CFLAGS"
|
|
save_LIBS="$LIBS"
|
|
dnl LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS $LIBS"
|
|
LIBS="$X_PRE_LIBS $X_EXTRA_LIBS $LIBS"
|
|
save_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $X_LIBS"
|
|
|
|
AC_FIND_FUNC_NO_LIBS(XauReadAuth, Xau X11)
|
|
ac_xxx="$LIBS"
|
|
LIBS="$LIB_XauReadAuth $LIBS"
|
|
AC_CHECK_FUNCS(XauWriteAuth)
|
|
if test "$ac_cv_func_XauWriteAuth" != "yes"; then
|
|
XauWriteAuth_c=writeauth.c
|
|
XauWriteAuth_o=writeauth.o
|
|
fi
|
|
AC_SUBST(XauWriteAuth_c)dnl
|
|
AC_SUBST(XauWriteAuth_o)dnl
|
|
LIBS="$ac_xxx"
|
|
|
|
CFLAGS=$save_CFLAGS
|
|
LIBS=$save_LIBS
|
|
LDFLAGS=$save_LDFLAGS
|
|
|
|
dnl
|
|
dnl Look for berkeley db, gdbm, and ndbm in that order.
|
|
dnl
|
|
|
|
save_LIBS="$LIBS"
|
|
AC_FIND_FUNC_NO_LIBS(dbopen, $berkeley_db)
|
|
LIBS="$LIB_dbopen $LIBS"
|
|
AC_FIND_FUNC_NO_LIBS(dbm_firstkey, $berkeley_db gdbm ndbm)
|
|
if test -n "$LIB_dbopen"; then
|
|
LIB_DBM="$LIB_dbopen"
|
|
else
|
|
LIB_DBM="$LIB_dbm_firstkey"
|
|
fi
|
|
AC_SUBST(LIB_DBM)dnl
|
|
LIBS="$save_LIBS"
|
|
|
|
AC_FIND_FUNC(syslog, syslog)
|
|
|
|
AC_CACHE_CHECK(for working snprintf,ac_cv_func_snprintf_working,
|
|
ac_cv_func_snprintf_working=yes
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
int main()
|
|
{
|
|
changequote(`,')dnl
|
|
char foo[3];
|
|
changequote([,])dnl
|
|
snprintf(foo, 2, "12");
|
|
return strcmp(foo, "1");
|
|
}],:,ac_cv_func_snprintf_working=no,:))
|
|
: << END
|
|
@@@funcs="$funcs snprintf"@@@
|
|
END
|
|
if test "$ac_cv_func_snprintf_working" = yes; then
|
|
foo=HAVE_SNPRINTF
|
|
AC_DEFINE_UNQUOTED($foo)
|
|
fi
|
|
|
|
AC_CHECK_FUNCS(asnprintf asprintf vasprintf vasnprintf vsnprintf)
|
|
|
|
|
|
AC_CHECK_FUNCS(_getpty _scrsize _setsid _stricmp fchmod fcntl flock)
|
|
AC_CHECK_FUNCS(forkpty frevoke gethostname getlogin getpriority getservbyname)
|
|
AC_CHECK_FUNCS(getspnam getspuid gettimeofday getuid grantpt)
|
|
AC_CHECK_FUNCS(innetgr iruserok mktime ptsname rand random)
|
|
AC_CHECK_FUNCS(revoke setitimer setlogin setpgid setpriority)
|
|
AC_CHECK_FUNCS(setproctitle setregid setresgid setresuid setreuid setsid)
|
|
AC_CHECK_FUNCS(setutent swab ttyname ttyslot ulimit uname)
|
|
AC_CHECK_FUNCS(unlockpt vhangup yp_get_default_domain)
|
|
AC_FIND_FUNC_NO_LIBS(getpwnam_r,c_r)
|
|
if test "$ac_cv_func_getpwnam_r" = yes; then
|
|
AC_CACHE_CHECK(if getpwnam_r is posix,ac_cv_func_getpwnam_r_posix,
|
|
ac_libs="$LIBS"
|
|
LIBS="$LIBS $LIB_getpwnam_r"
|
|
AC_TRY_RUN([
|
|
#include <pwd.h>
|
|
int main()
|
|
{
|
|
struct passwd pw, *pwd;
|
|
return getpwnam_r("", &pw, NULL, 0, &pwd) < 0;
|
|
}
|
|
],ac_cv_func_getpwnam_r_posix=yes,ac_cv_func_getpwnam_r_posix=no,:)
|
|
LIBS="$ac_libs")
|
|
if test "$ac_cv_func_getpwnam_r_posix" = yes; then
|
|
AC_DEFINE(POSIX_GETPWNAM_R)
|
|
fi
|
|
fi
|
|
|
|
AC_FIND_FUNC_NO_LIBS(getsockopt, ,
|
|
[#ifdef HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_SOCKET_H
|
|
#include <sys/socket.h>
|
|
#endif],
|
|
[0,0,0,0,0])
|
|
AC_FIND_FUNC_NO_LIBS(setsockopt, ,
|
|
[#ifdef HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_SOCKET_H
|
|
#include <sys/socket.h>
|
|
#endif],
|
|
[0,0,0,0,0])
|
|
|
|
dnl Cray stuff
|
|
AC_CHECK_FUNCS(getudbnam setlim)
|
|
|
|
AC_FIND_FUNC(res_search, resolv,
|
|
[
|
|
#include <stdio.h>
|
|
#ifdef HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#ifdef HAVE_NETINET_IN_H
|
|
#include <netinet/in.h>
|
|
#endif
|
|
#ifdef HAVE_ARPA_NAMESER_H
|
|
#include <arpa/nameser.h>
|
|
#endif
|
|
#ifdef HAVE_RESOLV_H
|
|
#include <resolv.h>
|
|
#endif
|
|
],
|
|
[0,0,0,0,0])
|
|
|
|
AC_FIND_FUNC(dn_expand, resolv,
|
|
[
|
|
#include <stdio.h>
|
|
#ifdef HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#ifdef HAVE_NETINET_IN_H
|
|
#include <netinet/in.h>
|
|
#endif
|
|
#ifdef HAVE_ARPA_NAMESER_H
|
|
#include <arpa/nameser.h>
|
|
#endif
|
|
#ifdef HAVE_RESOLV_H
|
|
#include <resolv.h>
|
|
#endif
|
|
],
|
|
[0,0,0,0,0])
|
|
|
|
|
|
AC_FUNC_MMAP
|
|
AC_FUNC_ALLOCA
|
|
|
|
#
|
|
# Test for POSIX (broken) getlogin
|
|
#
|
|
|
|
if test "$ac_cv_func_getlogin" = yes; then
|
|
AC_CACHE_CHECK(if getlogin is posix, ac_cv_func_getlogin_posix, [
|
|
if test "$ac_cv_func_getlogin" = yes -a "$ac_cv_func_setlogin" = yes; then
|
|
ac_cv_func_getlogin_posix=no
|
|
else
|
|
ac_cv_func_getlogin_posix=yes
|
|
fi
|
|
])
|
|
if test "$ac_cv_func_getlogin_posix" = yes; then
|
|
AC_DEFINE(POSIX_GETLOGIN, 1)
|
|
fi
|
|
fi
|
|
|
|
AC_FIND_IF_NOT_BROKEN(hstrerror, resolv,
|
|
[#ifdef HAVE_NETDB_H
|
|
#include <netdb.h>
|
|
#endif],
|
|
17)
|
|
|
|
AC_BROKEN(chown daemon err errx fchown getcwd getdtablesize getopt)
|
|
AC_BROKEN(getusershell inet_aton initgroups lstat memmove mkstemp)
|
|
AC_BROKEN(putenv rcmd setegid setenv seteuid strcasecmp strdup)
|
|
AC_BROKEN(strerror strftime strlwr strnlen strtok_r strupr unsetenv)
|
|
AC_BROKEN(verr verrx vwarn vwarnx warn warnx)
|
|
|
|
AC_KRB_FUNC_GETCWD_BROKEN
|
|
|
|
dnl
|
|
dnl Figure what authentication modules should be built
|
|
dnl
|
|
|
|
AC_MSG_CHECKING(which authentication modules should be built)
|
|
|
|
LIB_AUTH_SUBDIRS=
|
|
|
|
if test "$ac_cv_header_siad_h" = yes; then
|
|
LIB_AUTH_SUBDIRS="$LIB_AUTH_SUBDIRS sia"
|
|
fi
|
|
|
|
if test "$ac_cv_header_security_pam_modules_h" = yes; then
|
|
LIB_AUTH_SUBDIRS="$LIB_AUTH_SUBDIRS pam"
|
|
fi
|
|
|
|
case "${host}" in
|
|
changequote(,)dnl
|
|
*-*-irix[56]*) LIB_AUTH_SUBDIRS="$LIB_AUTH_SUBDIRS afskauthlib" ;;
|
|
changequote([,])dnl
|
|
esac
|
|
|
|
AC_MSG_RESULT($LIB_AUTH_SUBDIRS)
|
|
|
|
AC_SUBST(LIB_AUTH_SUBDIRS)dnl
|
|
|
|
dnl
|
|
dnl Figure out if we have tunnels
|
|
dnl
|
|
|
|
AC_MSG_CHECKING(for tunnel devices)
|
|
|
|
APPL_KIP_DIR=
|
|
|
|
if test "$ac_cv_header_net_if_tun_h" = "yes"; then
|
|
APPL_KIP_DIR=kip
|
|
fi
|
|
|
|
AC_MSG_RESULT($ac_cv_header_net_if_tun_h)
|
|
|
|
AC_SUBST(APPL_KIP_DIR)dnl
|
|
|
|
dnl
|
|
dnl Checks for prototypes and declarations
|
|
dnl
|
|
|
|
AC_NEED_PROTO([
|
|
#ifdef HAVE_CRYPT_H
|
|
#include <crypt.h>
|
|
#endif
|
|
#ifdef HAVE_UNISTD_H
|
|
#include <unistd.h>
|
|
#endif
|
|
],
|
|
crypt)
|
|
|
|
AC_NEED_PROTO([
|
|
#include <string.h>
|
|
],
|
|
strtok_r)
|
|
|
|
AC_CHECK_VAR([#ifdef HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#ifdef HAVE_NETDB_H
|
|
#include <netdb.h>
|
|
#endif],
|
|
h_errno)
|
|
|
|
AC_CHECK_VAR([#ifdef HAVE_NETDB_H
|
|
#include <netdb.h>
|
|
#endif],
|
|
h_errlist)
|
|
|
|
AC_CHECK_VAR([#ifdef HAVE_NETDB_H
|
|
#include <netdb.h>
|
|
#endif],
|
|
h_nerr)
|
|
|
|
AC_CHECK_VAR([#ifdef HAVE_ERR_H
|
|
#include <err.h>
|
|
#endif],[__progname])
|
|
|
|
AC_CHECK_DECLARATION([#include <stdlib.h>], optarg)
|
|
AC_CHECK_DECLARATION([#include <stdlib.h>], optind)
|
|
AC_CHECK_DECLARATION([#include <stdlib.h>], opterr)
|
|
AC_CHECK_DECLARATION([#include <stdlib.h>], optopt)
|
|
|
|
dnl
|
|
dnl According to ANSI you are explicitly allowed to cast to void,
|
|
dnl but the standard fails to say what should happen. Some compilers
|
|
dnl think this is illegal:
|
|
dnl
|
|
dnl void foo(void)
|
|
dnl {
|
|
dnl return (void)0;
|
|
dnl }
|
|
dnl
|
|
dnl Thus explicitly test for void
|
|
dnl
|
|
AC_TYPE_SIGNAL
|
|
if test "$ac_cv_type_signal" = "void" ; then
|
|
AC_DEFINE(VOID_RETSIGTYPE, 1)
|
|
fi
|
|
|
|
dnl
|
|
dnl Check for fields in struct utmp
|
|
dnl
|
|
AC_EGREP_HEADER(ut_user, utmp.h, AC_DEFINE(HAVE_UT_USER))
|
|
AC_EGREP_HEADER(ut_host, utmp.h, AC_DEFINE(HAVE_UT_HOST))
|
|
AC_EGREP_HEADER(ut_addr, utmp.h, AC_DEFINE(HAVE_UT_ADDR))
|
|
AC_EGREP_HEADER(ut_type, utmp.h, AC_DEFINE(HAVE_UT_TYPE))
|
|
AC_EGREP_HEADER(ut_pid, utmp.h, AC_DEFINE(HAVE_UT_PID))
|
|
AC_EGREP_HEADER(ut_id, utmp.h, AC_DEFINE(HAVE_UT_ID))
|
|
AC_EGREP_HEADER(ut_syslen, utmpx.h, AC_DEFINE(HAVE_UT_SYSLEN))
|
|
|
|
AC_STRUCT_ST_BLKSIZE
|
|
|
|
dnl
|
|
dnl Check for struct winsize
|
|
dnl
|
|
|
|
AC_KRB_STRUCT_WINSIZE
|
|
|
|
dnl
|
|
dnl Check for some common types
|
|
dnl
|
|
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_UID_T
|
|
AC_TYPE_OFF_T
|
|
AC_TYPE_SIZE_T
|
|
|
|
dnl
|
|
dnl Check for sa_len in sys/socket.h
|
|
dnl
|
|
|
|
AC_MSG_CHECKING(for sa_len in struct sockaddr)
|
|
AC_CACHE_VAL(krb_cv_struct_sockaddr_sa_len, [
|
|
AC_TRY_COMPILE(
|
|
[#include <sys/types.h>
|
|
#include <sys/socket.h>],
|
|
[struct sockaddr sa;
|
|
int foo = sa.sa_len;],
|
|
krb_cv_struct_sockaddr_sa_len=yes,
|
|
krb_cv_struct_sockaddr_sa_len=no)
|
|
])
|
|
AC_MSG_RESULT($krb_cv_struct_sockaddr_sa_len)
|
|
if test "$krb_cv_struct_sockaddr_sa_len" = yes; then
|
|
AC_DEFINE(SOCKADDR_HAS_SA_LEN)
|
|
fi
|
|
|
|
dnl
|
|
dnl Check for ouid in sys/siad.h
|
|
dnl
|
|
|
|
if test "$ac_cv_header_siad_h" = yes; then
|
|
AC_MSG_CHECKING(for ouid in struct siaentity)
|
|
AC_CACHE_VAL(krb_cv_struct_siaentity_ouid, [
|
|
AC_TRY_COMPILE(
|
|
[#include <siad.h>
|
|
],
|
|
[SIAENTITY e;
|
|
int foo = e.ouid;],
|
|
krb_cv_struct_siaentity_ouid=yes,
|
|
krb_cv_struct_siaentity_ouid=no)
|
|
])
|
|
AC_MSG_RESULT($krb_cv_struct_siaentity_ouid)
|
|
if test "$krb_cv_struct_siaentity_ouid" = yes; then
|
|
AC_DEFINE(SIAENTITY_HAS_OUID)
|
|
fi
|
|
fi
|
|
|
|
dnl
|
|
dnl you can link with getmsg on AIX 3.2 but you cannot run the program
|
|
dnl
|
|
|
|
AC_CACHE_CHECK(for working getmsg, ac_cv_func_getmsg,
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <stdio.h>
|
|
|
|
int main()
|
|
{
|
|
getmsg(open("/dev/null", 0), NULL, NULL, NULL);
|
|
return 0;
|
|
}
|
|
], ac_cv_func_getmsg=yes, ac_cv_func_getmsg=no, ac_cv_func_getmsg=no))
|
|
test "$ac_cv_func_getmsg" = "yes" &&
|
|
AC_DEFINE(HAVE_GETMSG)
|
|
|
|
dnl
|
|
dnl Test if we are using berkeley db
|
|
dnl
|
|
|
|
save_LIBS="$LIBS"
|
|
LIBS="$LIB_DBM $LIBS"
|
|
AC_CACHE_CHECK(for berkeley db, krb_cv_lib_berkeleydb,
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <unistd.h>
|
|
#include <fcntl.h>
|
|
#include <ndbm.h>
|
|
int main()
|
|
{
|
|
DBM *d;
|
|
|
|
d = dbm_open("conftest", O_RDWR | O_CREAT, 0666);
|
|
if(d == NULL)
|
|
return 1;
|
|
dbm_close(d);
|
|
return access("conftest.db", F_OK) != 0;
|
|
}], krb_cv_lib_berkeleydb=yes, krb_cv_lib_berkeleydb=no,
|
|
krb_cv_lib_berkeleydb=no))
|
|
test "$krb_cv_lib_berkeleydb" = "yes" &&
|
|
AC_DEFINE(HAVE_NEW_DB)
|
|
LIBS="$save_LIBS"
|
|
|
|
dnl
|
|
dnl Tests for editline
|
|
dnl
|
|
|
|
AC_FIND_FUNC_NO_LIBS(el_init, edit)
|
|
AC_FIND_FUNC_NO_LIBS(readline, readline)
|
|
|
|
if test "$with_readline"; then
|
|
AC_DEFINE(HAVE_READLINE, 1)
|
|
editline_OBJS=
|
|
LIB_readline="$READLINELIB "'$(LIB_tgetent)'
|
|
INCLUDE_readline="$READLINEINCLUDE"
|
|
elif test "$ac_cv_func_el_init" = yes; then
|
|
AC_DEFINE(HAVE_READLINE, 1)
|
|
|
|
editline_OBJS=edit_compat.o
|
|
LIB_readline='-L$(topdir)/lib/editline -leditline '"$LIB_el_init"' $(LIB_tgetent)'
|
|
|
|
INCLUDE_readline='-I$(topdir)/lib/editline -I$(top_srcdir)/lib/editline'
|
|
elif test "$ac_cv_func_readline" = yes; then
|
|
AC_DEFINE(HAVE_READLINE, 1)
|
|
editline_OBJS=
|
|
LIB_readline='-lreadline $(LIB_tgetent)'
|
|
INCLUDE_readline=
|
|
else
|
|
AC_DEFINE(HAVE_READLINE, 1)
|
|
editline_OBJS="editline.o complete.o sysunix.o"
|
|
LIB_readline='-L$(topdir)/lib/editline -leditline $(LIB_tgetent)'
|
|
INCLUDE_readline='-I$(topdir)/lib/editline -I$(top_srcdir)/lib/editline'
|
|
fi
|
|
AC_SUBST(LIB_readline)
|
|
AC_SUBST(INCLUDE_readline)
|
|
AC_SUBST(editline_OBJS)
|
|
|
|
dnl telnet muck --------------------------------------------------
|
|
|
|
AC_DEFINE(AUTHENTICATION)dnl
|
|
AC_DEFINE(KRB4)dnl
|
|
AC_DEFINE(ENCRYPTION)dnl
|
|
AC_DEFINE(DES_ENCRYPTION)dnl
|
|
AC_DEFINE(DIAGNOSTICS)dnl
|
|
AC_DEFINE(OLD_ENVIRON)dnl
|
|
|
|
# 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_MSG_CHECKING(for streamspty)
|
|
case "`uname -sr`" in
|
|
SunOS\ 4*|OSF1*|IRIX\ 4*|HP-UX\ ?.10.*)
|
|
krb_cv_sys_streamspty=no
|
|
;;
|
|
AIX*)
|
|
os_rel=`uname -v`.`uname -r`
|
|
if expr "$os_rel" : "3*" >/dev/null 2>&1; then
|
|
krb_cv_sys_streamspty=no
|
|
else
|
|
krb_cv_sys_streamspty="$ac_cv_func_getmsg"
|
|
fi
|
|
;;
|
|
*)
|
|
krb_cv_sys_streamspty="$ac_cv_func_getmsg"
|
|
;;
|
|
esac
|
|
if test "$krb_cv_sys_streamspty" = yes; then
|
|
AC_DEFINE(STREAMSPTY)
|
|
fi
|
|
dnl AC_SUBST(STREAMSPTY)
|
|
AC_MSG_RESULT($krb_cv_sys_streamspty)
|
|
|
|
AC_MSG_CHECKING([if /bin/ls takes -A])
|
|
if /bin/ls -A > /dev/null 2>&1 ;then
|
|
AC_DEFINE(HAVE_LS_A)
|
|
krb_ls_a=yes
|
|
else
|
|
krb_ls_a=no
|
|
fi
|
|
AC_MSG_RESULT($krb_ls_a)
|
|
|
|
dnl ------------------------------------------------------------
|
|
AC_CACHE_CHECK(for suffix of preformatted manual pages, krb_cv_sys_cat_suffix,
|
|
if grep _version /etc/man.conf > /dev/null 2>&1; then
|
|
krb_cv_sys_cat_suffix=0
|
|
else
|
|
krb_cv_sys_cat_suffix=number
|
|
fi)
|
|
if test "$krb_cv_sys_cat_suffix" = number; then
|
|
CATSUFFIX='$$s'
|
|
else
|
|
CATSUFFIX=0
|
|
fi
|
|
AC_SUBST(CATSUFFIX)
|
|
|
|
dnl ------------------------------------------------------------
|
|
|
|
KRB_KAFS_LIB='-L$(topdir)/lib/kafs -lkafs'
|
|
if test "$krb_cv_sys_aix" = yes; then
|
|
KRB_KAFS_LIB="$KRB_KAFS_LIB -lld"
|
|
fi
|
|
AC_SUBST(KRB_KAFS_LIB)dnl
|
|
|
|
dnl ------------------------------------------------------------
|
|
|
|
|
|
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
|
|
|
|
dnl
|
|
dnl We are all set to emit the Makefiles and config.h
|
|
dnl
|
|
AC_OUTPUT( \
|
|
Makefile \
|
|
include/Makefile \
|
|
include/sys/Makefile \
|
|
\
|
|
util/Makefile \
|
|
util/et/Makefile \
|
|
\
|
|
man/Makefile \
|
|
\
|
|
lib/Makefile \
|
|
lib/des/Makefile \
|
|
lib/krb/Makefile \
|
|
lib/kdb/Makefile \
|
|
lib/kadm/Makefile \
|
|
lib/acl/Makefile \
|
|
lib/kafs/Makefile \
|
|
lib/roken/Makefile \
|
|
lib/otp/Makefile \
|
|
lib/sl/Makefile \
|
|
lib/editline/Makefile \
|
|
lib/auth/Makefile \
|
|
lib/auth/pam/Makefile \
|
|
lib/auth/sia/Makefile \
|
|
lib/auth/afskauthlib/Makefile \
|
|
\
|
|
kuser/Makefile \
|
|
server/Makefile \
|
|
slave/Makefile \
|
|
admin/Makefile \
|
|
kadmin/Makefile \
|
|
\
|
|
appl/Makefile \
|
|
\
|
|
appl/afsutil/Makefile \
|
|
appl/ftp/Makefile \
|
|
appl/ftp/common/Makefile \
|
|
appl/ftp/ftp/Makefile \
|
|
appl/ftp/ftpd/Makefile \
|
|
appl/telnet/Makefile \
|
|
appl/telnet/libtelnet/Makefile \
|
|
appl/telnet/telnet/Makefile \
|
|
appl/telnet/telnetd/Makefile \
|
|
appl/bsd/Makefile \
|
|
appl/kauth/Makefile \
|
|
appl/kpopper/Makefile \
|
|
appl/movemail/Makefile \
|
|
appl/sample/Makefile \
|
|
appl/xnlock/Makefile \
|
|
appl/kx/Makefile \
|
|
appl/kip/Makefile \
|
|
appl/otp/Makefile \
|
|
doc/Makefile \
|
|
) dnl end of AC_OUTPUT
|
|
|
|
dnl
|
|
dnl This is the release version name-number[beta]
|
|
dnl Update before making a new release
|
|
dnl
|
|
KRB4VERSION="$PACKAGE-$VERSION"
|
|
|
|
cat > include/newversion.h.in <<EOF
|
|
char *krb4_long_version = "@(#)\$Version: $KRB4VERSION by @USER@ on @HOST@ ($host) @DATE@ \$";
|
|
char *krb4_version = "$KRB4VERSION";
|
|
EOF
|
|
|
|
if test -f include/version.h && cmp -s include/newversion.h.in include/version.h.in; then
|
|
echo "include/version.h is unchanged"
|
|
rm -f include/newversion.h.in
|
|
else
|
|
echo "creating include/version.h"
|
|
User=${USER-${LOGNAME}}
|
|
Host=`(hostname || uname -n) 2>/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
|