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