configure.in revision 25839
117721Speterdnl configure.in for cvs 217721SpeterAC_INIT(src/cvs.h) 325839Speterdnl 417721SpeterAC_PREREQ(2.4)dnl Required Autoconf version. 525839Speterdnl Do not use autoconf 2.12; it produces a configure script which produces 625839Speterdnl a "internal 2K buffer" error on HPUX when run with /bin/sh. 725839Speterdnl autoconf 2.10 seems like a good choice. 825839Speterdnl 925839Speterdnl It is possible that we should just change the above required version 1025839Speterdnl to 2.10; it seems like everyone is using 2.10 anyway, and there is 1125839Speterdnl at least some sentiment that we should be using a version which has 1225839Speterdnl --bindir (and correspondingly, using @bindir@ and friends in our 1325839Speterdnl Makefile.in files. I'm not sure exactly what version of autoconf 1425839Speterdnl introduced --bindir but I know 2.10 has it. 1517721SpeterAC_CONFIG_HEADER(config.h src/options.h) 1617721Speter 1717721SpeterAC_PROG_CC 1817721Speter 1917721SpeterAC_AIX 2017721SpeterAC_MINIX 2117721SpeterAC_ISC_POSIX 2217721Speterif test "$ISC" = yes; then 2317721SpeterCFLAGS="$CFLAGS -D_SYSV3" 2425839SpeterLIBS="-lcrypt $LIBS" 2517721Speterfi 2617721Speter 2717721SpeterAC_PREFIX_PROGRAM(cvs) 2817721Speter 2925839Speterdnl FIXME: AC_C_CROSS is considered obsolete by autoconf 2.12, and is 3025839Speterdnl pretty ugly to start with. But it isn't obvious to me how we should 3125839Speterdnl be handling the uses of cross_compiling below. 3217721SpeterAC_C_CROSS 3317721Speter 3417721SpeterAC_C_CONST 3517721Speter 3617721SpeterAC_PROG_INSTALL 3717721SpeterAC_PROG_RANLIB 3817721SpeterAC_PROG_YACC 3917721SpeterAC_PROG_MAKE_SET 4017721Speter 4117721SpeterAC_PATH_PROG(perl_path, perl, no) 4217721SpeterAC_PATH_PROG(csh_path, csh, no) 4317721Speter 4417721SpeterAC_SYS_INTERPRETER 4517721Speterif test X"$ac_cv_sys_interpreter" != X"yes" ; then 4617721Speter # silly trick to avoid problems in AC macros... 4717721Speter ac_msg='perl scripts using #! may not be invoked properly' 4817721Speter AC_MSG_WARN($ac_msg) 4917721Speterfi 5017721Speter 5117721SpeterAC_HEADER_STDC 5217721SpeterAC_CHECK_HEADERS(errno.h unistd.h string.h memory.h utime.h fcntl.h ndbm.h \ 5317721Speter sys/param.h sys/select.h sys/time.h sys/timeb.h \ 5417721Speter io.h direct.h sys/bsdtypes.h sys/resource.h) 5517721SpeterAC_HEADER_SYS_WAIT 5617721SpeterAC_HEADER_STAT 5717721SpeterAC_HEADER_TIME 5817721SpeterAC_HEADER_DIRENT 5917721SpeterAC_TYPE_SIGNAL 6017721SpeterAC_TYPE_UID_T 6117721SpeterAC_TYPE_MODE_T 6217721SpeterAC_TYPE_SIZE_T 6317721SpeterAC_TYPE_PID_T 6425839SpeterAC_REPLACE_FUNCS(getwd mkdir rename strdup strstr dup2 strerror valloc waitpid vasprintf strtoul) 6525839SpeterAC_CHECK_FUNCS(fchmod fsync ftime mkfifo mktemp putenv vfork vprintf ftruncate timezone getpagesize initgroups fchdir sigaction sigprocmask sigvec sigsetmask sigblock tempnam tzset readlink wait3) 6625839Speter 6725839Speterdnl 6825839Speterdnl Look for shadow password files before we go ahead and set getspnam. 6925839Speterdnl On some systems (Linux), the C library has getspnam but shadow 7025839Speterdnl passwords might not be in use. 7125839Speterdnl 7225839Speterdnl We used to check for the existence of the /etc/security directory 7325839Speterdnl here, but that's incorrect, since it's possible to have PAM installed 7425839Speterdnl without using shadow passwords. 7525839Speterdnl 7625839SpeterAC_MSG_CHECKING([for evidence of shadow passwords]) 7725839Speterif test -f /etc/shadow \ 7825839Speter || test -f /etc/security/passwd.adjunct ; then 7925839Speter found="yes" 8025839Speter AC_CHECK_LIB(sec, getspnam) 8125839Speter AC_CHECK_FUNCS(getspnam) 8225839Speterelse 8325839Speter found="no" 8425839Speterfi 8525839SpeterAC_MSG_RESULT([$found]) 8625839Speter 8717721SpeterAC_CHECK_FUNC(re_exec, :, LIBOBJS="$LIBOBJS regex.o") 8817721SpeterAC_FUNC_UTIME_NULL 8917721SpeterAC_SYS_LONG_FILE_NAMES 9017721Speter 9117721SpeterAC_MSG_CHECKING([for working fnmatch function]) 9217721SpeterAC_CACHE_VAL(ccvs_cv_sys_working_fnmatch, 9317721Speter[AC_TRY_RUN([ 9417721Speter#include <fnmatch.h> 9517721Speterint 9617721Spetermain () 9717721Speter{ 9817721Speter exit ((fnmatch ("a", "a", FNM_PATHNAME) == 0 9917721Speter && fnmatch ("a", "b", FNM_PATHNAME) == FNM_NOMATCH) 10017721Speter ? 0 : 1); 10117721Speter}], 10217721Speterccvs_cv_sys_working_fnmatch=yes, 10317721Speterccvs_cv_sys_working_fnmatch=no, 10417721Speterccvs_cv_sys_working_fnmatch=no)]) 10517721Speterif test $ccvs_cv_sys_working_fnmatch = no; then 10617721Speter LIBOBJS="$LIBOBJS fnmatch.o" 10717721Speterfi 10817721SpeterAC_MSG_RESULT($ccvs_cv_sys_working_fnmatch) 10917721Speter 11025839Speter# If we can't find connect, try looking in -lsocket, -lnsl, and -linet. 11125839Speter# The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has 11225839Speter# libsocket.so which has a bad implementation of gethostbyname (it 11325839Speter# only looks in /etc/hosts), so we only look for -lsocket if we need 11425839Speter# it. 11525839SpeterAC_CHECK_FUNC(connect, :, 11625839Speter[case "$LIBS" in 11725839Speter*-lnsl*) ;; 11825839Speter*) AC_CHECK_LIB(nsl_s, printf) ;; 11925839Speteresac 12025839Spetercase "$LIBS" in 12125839Speter*-lnsl*) ;; 12225839Speter*) AC_CHECK_LIB(nsl, printf) ;; 12325839Speteresac 12425839Spetercase "$LIBS" in 12525839Speter*-lsocket*) ;; 12625839Speter*) AC_CHECK_LIB(socket, connect) ;; 12725839Speteresac 12825839Spetercase "$LIBS" in 12925839Speter*-linet*) ;; 13025839Speter*) AC_CHECK_LIB(inet, connect) ;; 13125839Speteresac 13225839Speterdnl We can't just call AC_CHECK_FUNCS(connect) here, because the value 13325839Speterdnl has been cached. 13425839Speterif test "$ac_cv_lib_socket_connect" = "yes" || test "$ac_cv_lib_inet_connect" = "yes"; then 13525839Speter ac_cv_func_connect=yes 13625839Speter AC_DEFINE(HAVE_CONNECT) 13725839Speterfi]) 13825839Speter 13917721Speterdnl 14017721Speterdnl set $(KRB4) from --with-krb4=value -- WITH_KRB4 14117721Speterdnl 14217721SpeterKRB4=/usr/kerberos 14317721Speterdefine(WITH_KRB4,[ 14417721SpeterAC_ARG_WITH([krb4], 14517721Speter [ --with-krb4=value set default \$(KRB4) from value], 14617721Speter [KRB4=$withval], 14717721Speter)dnl 14817721Speterecho "default place for krb4 is $KRB4" 14917721SpeterAC_SUBST(KRB4)])dnl 15017721SpeterWITH_KRB4 15117721Speter 15217721Speterkrb_h= 15317721SpeterAC_MSG_CHECKING([for krb.h]) 15417721SpeterAC_TRY_LINK([#include <krb.h>],[int i;], 15517721Speter [krb_h=yes krb_incdir=], 15617721Speter [if test "$cross_compiling" != yes && test -r $KRB4/include/krb.h; then 15717721Speter hold_cflags=$CFLAGS 15817721Speter CFLAGS="$CFLAGS -I$KRB4/include" 15917721Speter AC_TRY_LINK([#include <krb.h>],[int i;], 16017721Speter [krb_h=yes krb_incdir=$KRB4/include]) 16117721Speter CFLAGS=$hold_cflags 16217721Speter fi]) 16317721Speterif test -z "$krb_h"; then 16417721Speter AC_TRY_LINK([#include <krb.h>],[int i;], 16517721Speter [krb_h=yes krb_incdir=], 16617721Speter [if test "$cross_compiling" != yes && test -r $KRB4/include/kerberosIV/krb.h; then 16717721Speter hold_cflags=$CFLAGS 16817721Speter CFLAGS="$CFLAGS -I$KRB4/include/kerberosIV" 16917721Speter AC_TRY_LINK([#include <krb.h>],[int i;], 17017721Speter [krb_h=yes krb_incdir=$KRB4/include/kerberosIV]) 17117721Speter CFLAGS=$hold_cflags 17217721Speter fi]) 17317721Speterfi 17417721SpeterAC_MSG_RESULT($krb_h) 17517721Speter 17617721Speterif test -n "$krb_h"; then 17717721Speter krb_lib= 17817721Speter AC_CHECK_LIB(krb,printf,[krb_lib=yes krb_libdir=], 17917721Speter [if test "$cross_compiling" != yes && test -r $KRB4/lib/libkrb.a; then 18017721Speter krb_lib=yes krb_libdir=$KRB4/lib 18117721Speter fi]) 18217721Speter if test -n "$krb_lib"; then 18317721Speter AC_DEFINE(HAVE_KERBEROS) 18417721Speter test -n "${krb_libdir}" && LIBS="${LIBS} -L${krb_libdir}" 18517721Speter LIBS="${LIBS} -lkrb" 18625839Speter # Put -L${krb_libdir} in LDFLAGS temporarily so that it appears before 18725839Speter # -ldes in the command line. Don't do it permanently so that we honor 18825839Speter # the user's setting for LDFLAGS 18925839Speter hold_ldflags=$LDFLAGS 19025839Speter test -n "${krb_libdir}" && LDFLAGS="$LDFLAGS -L${krb_libdir}" 19117721Speter AC_CHECK_LIB(des,printf,[LIBS="${LIBS} -ldes"]) 19225839Speter LDFLAGS=$hold_ldflags 19317721Speter if test -n "$krb_incdir"; then 19417721Speter includeopt="${includeopt} -I$krb_incdir" 19517721Speter AC_SUBST(includeopt) 19617721Speter fi 19717721Speter fi 19817721Speterfi 19917721SpeterAC_CHECK_FUNCS(krb_get_err_text) 20017721Speter 20125839Speterdnl 20225839Speterdnl Use --with-encryption to turn on encryption support 20325839Speterdnl 20425839SpeterAC_ARG_ENABLE(encryption, 20525839Speter [ --enable-encryption enable encryption support], 20625839Speter [case "${enableval}" in 20725839Speter yes) encryption=true ;; 20825839Speter no) encryption=false ;; 20925839Speter *) AC_MSG_ERROR(bad value ${enableval} for encryption option) ;; 21025839Speter esac], 21125839Speter [encryption=false]) 21225839Speterif test "$encryption" = "true"; then 21325839Speter AC_DEFINE(ENCRYPTION) 21425839Speterfi 21525839Speter 21617721SpeterAC_CHECK_FUNC(gethostname, :, LIBOBJS="$LIBOBJS hostname.o") 21717721Speter 21825839Speter# Check for options requesting client and server feature. If none are 21925839Speter# given and we have connect(), we want the full client & server arrangement. 22025839SpeterAC_ARG_ENABLE(client, 22125839Speter[ --enable-client include code for running as a remote client (default) 22225839Speter --disable-client don't include remote client code], 22325839Speter[if test "$enable_client" = yes; then 22425839Speter AC_DEFINE(CLIENT_SUPPORT) 22525839Speterfi], 22625839Speter[if test "$ac_cv_func_connect" = yes; then 22725839Speter AC_DEFINE(CLIENT_SUPPORT) 22825839Speterfi]) 22925839SpeterAC_ARG_ENABLE(server, 23025839Speter[ --enable-server include code for running as a server (default) 23125839Speter --disable-server don't include server code], 23225839Speter[if test "$enable_server" = yes; then 23325839Speter AC_DEFINE(SERVER_SUPPORT) 23425839Speterfi], 23525839Speter[if test "$ac_cv_func_connect" = yes; then 23625839Speter AC_DEFINE(SERVER_SUPPORT) 23725839Speter enable_server=yes 23825839Speterfi]) 23925839Speter 24025839Speter### The auth server needs to be able to check passwords against passwd 24125839Speter### file entries, so we only #define AUTH_SERVER_SUPPORT if we can 24225839Speter### find the crypt function. 24325839Speter### 24425839Speter### We used to test for crypt in libc first, and only add -lcrypt if 24525839Speter### we couldn't find it, but that interacts badly with the cache 24625839Speter### variables, the 'unset' command isn't portable, and I'm not sure 24725839Speter### there's any harm in just testing for -lcrypt first. 24825839Speter 24925839Speterif test "$enable_server" = yes; then 25025839SpeterAC_CHECK_LIB(crypt, crypt) 25125839SpeterAC_CHECK_FUNCS(crypt) 25225839Speter 25325839Speterif test "$ac_cv_func_crypt" = yes; then 25417721Speter AC_DEFINE(AUTH_SERVER_SUPPORT) 25517721Speterfi 25625839Speterfi # enable_server 25717721Speter 25817721Spetertest -f src/options.h && ( 25917721Speter AC_MSG_WARN(saving ./src/options.h in ./src/options.h-SAVED) 26017721Speter AC_MSG_WARN(You may wish to check that local options have not been lost.) 26117721Speter AC_MSG_WARN(Do not re-run ./configure or ./config.status until you have....) 26217721Speter cp ./src/options.h ./src/options.h-SAVED 26317721Speter) 26417721Speter 26525839SpeterAC_OUTPUT(Makefile lib/Makefile src/Makefile zlib/Makefile doc/Makefile \ 26617721Speter man/Makefile tools/Makefile tools/pcl-cvs/Makefile \ 26717721Speter contrib/Makefile contrib/elib/Makefile \ 26825839Speter windows-NT/Makefile windows-NT/SCC/Makefile \ 26925839Speter os2/Makefile macintosh/Makefile vms/Makefile \ 27025839Speter stamp-h) 271