summaryrefslogtreecommitdiffstats
path: root/contrib/cvs/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/cvs/configure.in')
-rw-r--r--contrib/cvs/configure.in1172
1 files changed, 1172 insertions, 0 deletions
diff --git a/contrib/cvs/configure.in b/contrib/cvs/configure.in
new file mode 100644
index 0000000..8c83397
--- /dev/null
+++ b/contrib/cvs/configure.in
@@ -0,0 +1,1172 @@
+dnl configure.in for cvs
+AC_INIT([Concurrent Versions System (CVS)],[1.11.22.1],
+ [bug-cvs@nongnu.org],[cvs])
+AC_CONFIG_SRCDIR(src/cvs.h)
+AM_INIT_AUTOMAKE([gnu 1.7.9 dist-bzip2 no-define])
+AC_PREREQ(2.60)
+
+AC_PREFIX_PROGRAM(cvs)
+AM_CONFIG_HEADER(config.h)
+AM_MAINTAINER_MODE
+
+AC_PROG_CC
+AM_PROG_CC_C_O
+
+dnl FIXME the next three calls should be avoided according to autoconf
+dnl philosophy. for example, AC_CHECK_LIB should be used to look for crypt.
+dnl
+dnl These are here instead of later because they want to be called before
+dnl anything that calls a C compiler.
+AC_AIX
+AC_MINIX
+
+# Find the posix library needed on INTERACTIVE UNIX (ISC)
+dnl
+dnl From the Autoconf 2.53 manual (AC_ISC_POSIX):
+dnl
+dnl For INTERACTIVE UNIX (ISC), add `-lcposix' to output variable
+dnl `LIBS' if necessary for POSIX facilities. Call this after
+dnl `AC_PROG_CC' and before any other macros that use POSIX
+dnl interfaces. INTERACTIVE UNIX is no longer sold, and Sun says that
+dnl they will drop support for it on 2006-07-23, so this macro is
+dnl becoming obsolescent.
+dnl
+AC_SEARCH_LIBS([strerror], [cposix])
+
+dnl
+dnl Autoconf stopped setting $ISC sometime before 2.53
+dnl
+dnl If this is still important, someone should come up with a generic test
+dnl for whether _SYSV3 needs to be defined. Removed code below:
+dnl
+dnl if test "$ISC" = yes; then
+dnl CFLAGS="$CFLAGS -D_SYSV3"
+dnl # And I don't like this... In theory it should be found later if server is
+dnl # enabled, but maybe something on INTERACTIVE UNIX (ISC) we didn't ask to
+dnl # link with crypt tries? Anyhow, the autoconf manual says we can delete
+dnl # this ISC stuff on or after 2006-07-23 when Sun discontinues support and
+dnl # ISC becomes obsolescent, but I suppose that is probably a matter of
+dnl # opinion.
+dnl #
+dnl # N.B. The reason for doing this is that some moron decided to put a stub
+dnl # for crypt in libc that always returns NULL. Without this here, the later
+dnl # check will find the stub instead of the real thing, resulting in a server
+dnl # that can't process crypted passwords correctly.
+dnl
+dnl # again, if we have to try and reenable this for ISC, someone should come
+dnl # up with a generic test that figures out whether crypt is good or not -
+dnl # Is it always returning NULL?
+dnl LIBS="-lcrypt $LIBS"
+dnl fi
+dnl
+dnl FIXME - This has been broken for at least a few months anyhow, so I'm
+dnl removing the crypt lib define above, but the correct fix would be to
+dnl provide a CRYPT_WORKS macro or the like that gets called sometime after
+dnl the AC_SEARCH_LIBS call that normally finds crypt, and if crypt doesn't
+dnl work, the macro should be retried with LIBS="-lcrypt $LIBS" forced.
+dnl
+
+AC_PROG_RANLIB
+AC_PROG_YACC
+AC_PROG_LN_S
+AC_EXEEXT
+
+AC_PATH_PROG(PERL, perl, no)
+AC_PATH_PROG(CSH, csh, no)
+# for contrib/rcs2log.sh & src/cvsbug.in.
+AC_PATH_PROG(MKTEMP, mktemp, mktemp)
+if test x"$MKTEMP" = xmktemp; then
+ MKTEMP_SH_FUNCTION=$srcdir/mktemp.sh
+else
+ MKTEMP_SH_FUNCTION=/dev/null
+fi
+AC_SUBST_FILE(MKTEMP_SH_FUNCTION)
+# for src/cvsbug.in
+AC_PATH_PROG(SENDMAIL, sendmail, no, [$PATH:/usr/sbin:/usr/lib])
+# For diff/util.c
+AC_PATH_PROG(PR, pr, no)
+if test x"$PR" != xno; then
+ AC_DEFINE_UNQUOTED([PR_PROGRAM], ["$PR"], [Path to the pr utility])
+fi
+
+dnl FIXME This is truly gross.
+missing_dir=`cd $ac_aux_dir && pwd`
+dnl FIXME I pulled this default list from sanity.sh. Perhaps these lists
+dnl can be stored in one location?
+dnl
+dnl Yeah, put the value in a variable add it to the substitution list
+dnl then have configure create sanity.sh from sanity.sh.in...
+glocs="$PATH:/usr/local/bin:/usr/contrib/bin:/usr/gnu/bin:/local/bin:/local/gnu/bin:/gnu/bin"
+AC_PATH_PROGS(ROFF, groff roff, $missing_dir/missing roff, $glocs)
+AC_PATH_PROG(PS2PDF, ps2pdf, $missing_dir/missing ps2pdf)
+AC_PATH_PROG(TEXI2DVI, texi2dvi, $missing_dir/missing texi2dvi)
+
+AC_SYS_INTERPRETER
+if test X"$ac_cv_sys_interpreter" != X"yes" ; then
+ # silly trick to avoid problems in AC macros...
+ ac_msg='perl scripts using #! may not be invoked properly'
+ AC_MSG_WARN($ac_msg)
+fi
+
+# BSD's logo is a devil for a reason, hey?
+AC_CACHE_CHECK(for BSD VPATH bug in make, ccvs_cv_bsd_make_vpath_bug,
+[if test ! -d ac_test_dir ; then
+ AC_TRY_COMMAND([mkdir ac_test_dir])
+fi
+cat >conftestmake <<EOF
+VPATH = ac_test_dir
+ac_test_target: ac_test_dep
+ echo BSD VPATH bug present >&2
+ac_test_dep: ac_test_dep_dep
+EOF
+touch ac_test_dir/ac_test_dep_dep
+touch ac_test_dir/ac_test_dep
+touch ac_test_target
+# Don't know why, but the following test doesn't work under FreeBSD 4.2
+# without this sleep command
+sleep 1
+if AC_TRY_COMMAND([make -f conftestmake 2>&1 >/dev/null |grep ^BSD\ VPATH\ bug\ present\$ >/dev/null]) ; then
+ ccvs_cv_bsd_make_vpath_bug=yes
+else
+ ccvs_cv_bsd_make_vpath_bug=no
+fi
+AC_TRY_COMMAND([rm -rf ac_test_dir ac_test_target conftestmake])])
+# We also don't need to worry about the bug when $srcdir = $builddir
+AM_CONDITIONAL(MAKE_TARGETS_IN_VPATH, \
+ test $ccvs_cv_bsd_make_vpath_bug = no \
+ || test $srcdir = .)
+
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_HEADER_SYS_WAIT
+AC_CHECK_HEADERS(\
+ errno.h \
+ direct.h \
+ fcntl.h \
+ fnmatch.h \
+ io.h \
+ limits.h \
+ memory.h \
+ ndbm.h \
+ string.h \
+ syslog.h \
+ sys/bsdtypes.h \
+ sys/file.h \
+ sys/param.h \
+ sys/resource.h \
+ sys/select.h \
+ sys/time.h \
+ sys/timeb.h \
+ unistd.h \
+ utime.h\
+)
+AC_HEADER_STAT
+AC_HEADER_TIME
+
+AC_C_CONST
+AC_TYPE_UID_T
+AC_TYPE_MODE_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_SIGNAL
+
+AC_CHECK_MEMBERS([struct stat.st_blksize])
+AC_CHECK_MEMBERS([struct stat.st_rdev])
+
+AC_REPLACE_FUNCS(\
+ dup2 \
+ ftruncate \
+ gethostname \
+ memmove \
+ mkdir \
+ rename \
+ strerror \
+ strstr \
+ strtoul\
+ valloc \
+ waitpid \
+)
+
+
+
+dnl
+dnl Begin GNULIB stuff.
+dnl
+gl_XSIZE
+
+dnl We always want to use the GNULIB getpass, so define its name to something
+dnl that won't conflict with system declarations.
+AC_DEFINE([getpass], [cvs_getpass],
+ [We want to always use the GNULIB version of getpass which we have in lib,
+ so define getpass to something that won't conflict with any existing system
+ declarations.])
+
+dnl
+dnl End GNULIB stuff.
+dnl
+
+
+
+AC_CHECK_FUNCS(\
+ fchdir \
+ fchmod \
+ fsync \
+ ftime \
+ geteuid \
+ getgroups \
+ getopt \
+ getpagesize \
+ gettimeofday \
+ initgroups \
+ login \
+ logout \
+ mknod \
+ mkstemp \
+ mktemp \
+ putenv \
+ readlink \
+ regcomp \
+ regerror \
+ regexec \
+ regfree \
+ sigaction \
+ sigblock \
+ sigprocmask \
+ sigsetmask \
+ sigvec \
+ tempnam \
+ timezone \
+ tzset \
+ vprintf \
+ wait3 \
+)
+# we only need one of the following
+AC_CHECK_FUNCS([\
+ nanosleep \
+ usleep \
+ select \
+], [break])
+
+dnl
+dnl The CVS coding standard (as specified in HACKING) is that if it exists
+dnl in SunOS4 and ANSI, we use it. CVS itself, of course, therefore doesn't
+dnl need HAVE_* defines for such functions, but diff wants them.
+dnl
+AC_DEFINE(HAVE_STRCHR, 1,
+[Define if you have strchr (always for CVS).])
+AC_DEFINE(HAVE_MEMCHR, 1,
+[Define if you have memchr (always for CVS).])
+
+dnl
+dnl Force lib/regex.c to use malloc instead of messing around with alloca
+dnl and define the old re_comp routines that we use.
+dnl
+AC_DEFINE(REGEX_MALLOC, 1,
+[Define to force lib/regex.c to use malloc instead of alloca.])
+AC_DEFINE(_REGEX_RE_COMP, 1,
+[Define to force lib/regex.c to define re_comp et al.])
+dnl
+dnl AC_FUNC_FORK([]) is rather baroque. It seems to be rather more picky
+dnl than, say, the Single Unix Specification (version 2), which simplifies
+dnl a lot of cases by saying that the child process can't set any variables
+dnl (thus avoiding problems with register allocation) or call any functions
+dnl (thus avoiding problems with whether file descriptors are shared).
+dnl It would be nice if we could just write to the Single Unix Specification.
+dnl I think the only way to do redirection this way is by doing it in the
+dnl parent, and then undoing it afterwards (analogous to windows-NT/run.c).
+dnl That would appear to have a race condition if the user hits ^C (or
+dnl some other signal) at the wrong time, as main_cleanup will try to use
+dnl stdout/stderr. So maybe we are stuck with AC_FUNC_FORK([]).
+dnl
+AC_FUNC_FORK([])
+AC_FUNC_CLOSEDIR_VOID
+
+dnl
+dnl Check for shadow password support.
+dnl
+dnl We used to try to determine whether shadow passwords were actually in
+dnl use or not, but the code has been changed to work right reguardless,
+dnl so we can go back to a simple check.
+AC_SEARCH_LIBS(getspnam, sec gen, AC_DEFINE(HAVE_GETSPNAM, 1,
+[Define if you have the getspnam function.]))
+
+AC_FUNC_UTIME_NULL
+AC_SYS_LONG_FILE_NAMES
+
+AC_FUNC_FNMATCH
+if test "$ac_cv_func_fnmatch_works" = no; then
+ AC_LIBOBJ(fnmatch)
+ AC_CONFIG_LINKS(lib/fnmatch.h:lib/fnmatch.h.in)
+ AC_LIBSOURCE(fnmatch.h.in)
+fi
+
+# Try to find connect and gethostbyname.
+AC_CHECK_LIB(nsl, main)
+AC_SEARCH_LIBS(connect, xnet socket inet,
+ AC_DEFINE(HAVE_CONNECT, 1,
+[Define if you have the connect function.]))
+dnl no need to search nsl for gethostbyname here since we should have
+dnl just added libnsl above if we found it.
+AC_SEARCH_LIBS(gethostbyname, netinet)
+
+
+dnl
+dnl begin --with-*
+dnl
+
+dnl
+dnl set $(KRB4) from --with-krb4=value -- WITH_KRB4
+dnl
+dnl If you change this, keep in mind that some systems have a bogus
+dnl libkrb in the system libraries, so --with-krb4=value needs to
+dnl override the system -lkrb.
+dnl
+KRB4=/usr/kerberos
+define(WITH_KRB4,[
+AC_ARG_WITH(
+ [krb4],
+ AC_HELP_STRING(
+ [--with-krb4],
+ [Kerberos 4 directory (default /usr/kerberos)]),
+ [KRB4=$with_krb4],
+)dnl
+AC_MSG_CHECKING([for KRB4 in $KRB4])
+AC_MSG_RESULT([])
+AC_SUBST(KRB4)])dnl
+WITH_KRB4
+
+krb_h=
+AC_MSG_CHECKING([for krb.h])
+if test "$cross_compiling" != yes && test -r $KRB4/include/krb.h; then
+ hold_cflags=$CFLAGS
+ CFLAGS="$CFLAGS -I$KRB4/include"
+ AC_TRY_LINK([#include <krb.h>],[int i;],
+ [krb_h=yes krb_incdir=$KRB4/include],
+ [CFLAGS=$hold_cflags
+ AC_TRY_LINK([#include <krb.h>],[int i;],
+ [krb_h=yes krb_incdir=])])
+ CFLAGS=$hold_cflags
+else
+ AC_TRY_LINK([#include <krb.h>],[int i;],
+ [krb_h=yes krb_incdir=])
+fi
+if test -z "$krb_h"; then
+ AC_TRY_LINK([#include <krb.h>],[int i;],
+ [krb_h=yes krb_incdir=],
+ [if test "$cross_compiling" != yes && test -r $KRB4/include/kerberosIV/krb.h; then
+ hold_cflags=$CFLAGS
+ CFLAGS="$CFLAGS -I$KRB4/include/kerberosIV"
+ AC_TRY_LINK([#include <krb.h>],[int i;],
+ [krb_h=yes krb_incdir=$KRB4/include/kerberosIV])
+ CFLAGS=$hold_cflags
+ fi])
+fi
+AC_MSG_RESULT($krb_h)
+
+includeopt=
+AC_SUBST(includeopt)
+if test -n "$krb_h"; then
+ krb_lib=
+ if test "$cross_compiling" != yes && test -r $KRB4/lib/libkrb.a; then
+ hold_ldflags=$LDFLAGS
+ LDFLAGS="-L${KRB4}/lib $LDFLAGS"
+ AC_CHECK_LIB(krb,printf,[krb_lib=yes krb_libdir=${KRB4}/lib],
+ [LDFLAGS=$hold_ldflags
+ # Using open here instead of printf so we don't
+ # get confused by the cached value for printf from above.
+ AC_CHECK_LIB(krb,open,[krb_lib=yes krb_libdir=])])
+ LDFLAGS=$hold_ldflags
+ else
+ AC_CHECK_LIB(krb,printf,[krb_lib=yes krb_libdir=])
+ AC_CHECK_FUNC(krb_recvauth,[krb_lib=yes krb_libdir=])
+ fi
+ if test -n "$krb_lib"; then
+ AC_DEFINE([HAVE_KERBEROS], 1,
+ [Define if you have MIT Kerberos version 4 available.])
+ test -n "${krb_libdir}" && LIBS="${LIBS} -L${krb_libdir}"
+ # Put -L${krb_libdir} in LDFLAGS temporarily so that it appears before
+ # -ldes in the command line. Don't do it permanently so that we honor
+ # the user's setting for LDFLAGS
+ hold_ldflags=$LDFLAGS
+ test -n "${krb_libdir}" && LDFLAGS="$LDFLAGS -L${krb_libdir}"
+ AC_CHECK_LIB(des,printf,[LIBS="${LIBS} -ldes"])
+ AC_CHECK_LIB(krb,krb_recvauth)
+ AC_CHECK_LIB(krb4,krb_recvauth)
+ LDFLAGS=$hold_ldflags
+ if test -n "$krb_incdir"; then
+ includeopt="${includeopt} -I$krb_incdir"
+ fi
+ fi
+fi
+AC_CHECK_FUNCS(krb_get_err_text)
+
+
+dnl
+dnl WITH_GSSAPI is external
+dnl
+dnl TODO - I tried to put these in alphabetical order, but ACX_WITH_GSSAPI
+dnl fails unless called after the KRB4 stuff. I don't know why.
+dnl
+ACX_WITH_GSSAPI
+
+
+dnl
+dnl begin --with-editor
+dnl
+dnl Set the default editor to use for log messages
+dnl
+
+AC_ARG_VAR(
+ [EDITOR],
+ [The text editor CVS will use by default for log messages.])
+
+# Let the confiscator request a specific editor
+AC_ARG_WITH(
+ [editor],
+ AC_HELP_STRING(
+ [--with-editor],
+ [The default text editor CVS should use for log messages
+ (default autoselects)]), ,
+ [with_editor=yes])
+
+# If --with-editor was supplied with an argument, let it override $EDITOR from
+# the user's environment. We need to unset EDITOR here because AC_CHECK_PROGS
+# will let the value of EDITOR ride when it is set rather than searching. We
+# ignore the --without-editor case since it will be caught below.
+if test -n "$EDITOR" && test yes != $with_editor; then
+ AS_UNSET([EDITOR])
+fi
+
+# Set the default when --with-editor wasn't supplied or when it was supplied
+# without an argument.
+if test yes = $with_editor; then
+ with_editor="vim vi emacs nano pico edit"
+fi
+
+if echo $with_editor |grep ^/ >/dev/null; then
+ # If $with_editor is an absolute path, issue a warning if the executable
+ # doesn't exist or isn't usable, but then trust the user and use it
+ # regardless
+ EDITOR=$with_editor
+ AC_MSG_CHECKING([for an editor])
+ AC_MSG_RESULT([$EDITOR])
+ if ! test -f $with_editor \
+ || ! test -x $with_editor; then
+ # warn the user that they may encounter problems
+ AC_MSG_WARN([\`$with_editor' is not a path to an executable file])
+ fi
+elif test no != "${with_editor}"; then
+ # Search for an editor
+ AC_CHECK_PROGS([EDITOR], [$with_editor], [no])
+ if test no = "${EDITOR}"; then
+ AC_MSG_ERROR([
+ Failed to find a text file editor. CVS cannot be compiled
+ without a default log message editor. Searched for
+ \`$with_editor'. Try \`configure --with-editor'.])
+ fi
+else
+ AC_MSG_ERROR([
+ CVS cannot be compiled without a default log message editor.
+ Try \`configure --with-editor'.])
+fi
+
+dnl FIXME - Using --without-editor will probably break a compile at
+dnl the moment, but maybe it is reasonable for someone to want to
+dnl compile a CVS executable that refuses to run if no $EDITOR,
+dnl $CVS_EDITOR, or -e option is specified? Making a preliminary
+dnl design decision in this direction, subject to discussion.
+dnl
+dnl Still don't know if the above would be useful, but we shouldn't
+dnl be able to get here any longer without $EDITOR defined due to the
+dnl error checking above.
+AC_DEFINE_UNQUOTED(
+ [EDITOR_DFLT], ["$EDITOR"],
+ [The default editor to use, if one does not specify the "-e" option
+ to cvs, or does not have an EDITOR environment variable. If this
+ is not set to an absolute path to an executable, use the shell to
+ find where the editor actually is. This allows sites with
+ /usr/bin/vi or /usr/ucb/vi to work equally well (assuming that their
+ PATH is reasonable).])
+
+dnl
+dnl done finding an editor
+dnl
+dnl end --with-editor
+dnl
+
+dnl
+dnl begin --with-ssh
+dnl
+
+# What remote shell transport should the :extssh: client cvs default to using?
+AC_ARG_WITH(
+ [ssh],
+ AC_HELP_STRING(
+ [--with-ssh],
+ [The default remote shell CVS will use for :extssh: transport
+ (default autodetects)]), ,
+ [with_ssh="ssh lshc ssh2"])
+
+if test no = "$with_ssh"; then
+ AC_MSG_WARN([Failed to find usable remote shell. Using 'ssh'.])
+ with_ssh=ssh
+elif test yes = "$with_ssh"; then
+ # Make --with-ssh mean the same thing as --with-ssh=ssh
+ with_ssh=ssh
+fi
+
+if echo $with_ssh |grep ^/ >/dev/null; then
+ # If $with_ssh is an absolute path, issue a warning if the executable
+ # doesn't exist or isn't usable, but then trust the user and use it
+ # regardless
+ with_default_ssh=$with_ssh
+ AC_MSG_CHECKING([for a remote shell])
+ if ! test -f $with_ssh \
+ || ! test -x $with_ssh; then
+ # warn the user that they may encounter problems
+ AC_MSG_WARN([$with_ssh is not a path to an executable file])
+ fi
+else
+ # Search for a remote shell
+ AC_CHECK_PROGS([with_default_ssh], [$with_ssh], "ssh")
+fi
+
+AC_DEFINE_UNQUOTED(
+ [SSH_DFLT], ["$with_default_ssh"],
+ [The default remote shell to use, if one does not specify the
+ CVS_SSH environment variable.])
+dnl done with finding a default CVS_SSH value
+dnl
+dnl end --with-ssh
+dnl
+
+
+dnl
+dnl begin --with-rsh
+dnl
+dnl Many sites no longer desire the use of "rsh" as the default
+dnl remote shell program. They typically favor "ssh" as the default
+
+# What remote shell transport should our client cvs default to using?
+AC_ARG_WITH(
+ [rsh],
+ AC_HELP_STRING(
+ [--with-rsh],
+ [The default remote shell CVS will use for :ext: transport
+ (default autodetects)]), ,
+ dnl `remsh' is only useful on HP-UX, where `rsh' is the `restricted shell'
+ dnl and `remsh' is the remote shell, but look for it first since it
+ dnl probably won't exist on any platform where it shouldn't be preferred
+ dnl to `rsh'.
+ [with_rsh="remsh rsh ssh lshc ssh2"])
+
+if test no = "$with_rsh"; then
+ AC_MSG_WARN([Failed to find usable remote shell. Using 'rsh'.])
+ with_rsh=rsh
+elif test yes = "$with_rsh"; then
+ # Make --with-rsh mean the same thing as --with-rsh=rsh
+ with_rsh=rsh
+fi
+
+if echo $with_rsh |grep ^/ >/dev/null; then
+ # If $with_rsh is an absolute path, issue a warning if the executable
+ # doesn't exist or isn't usable, but then trust the user and use it
+ # regardless
+ with_default_rsh=$with_rsh
+ AC_MSG_CHECKING([for a remote shell])
+ if ! test -f $with_rsh \
+ || ! test -x $with_rsh; then
+ # warn the user that they may encounter problems
+ AC_MSG_WARN([$with_rsh is not a path to an executable file])
+ fi
+else
+ # Search for a remote shell
+ AC_CHECK_PROGS([with_default_rsh], [$with_rsh], "rsh")
+fi
+
+AC_DEFINE_UNQUOTED(
+ [RSH_DFLT], ["$with_default_rsh"],
+ [The default remote shell to use, if one does not specify the
+ CVS_RSH environment variable.])
+dnl done with finding a default CVS_RSH value
+dnl
+dnl end --with-rsh
+dnl
+
+
+dnl
+dnl Find a temporary directory
+dnl
+AC_ARG_WITH(
+ [tmpdir],
+ AC_HELP_STRING(
+ [--with-tmpdir],
+ [The temporary directory CVS should use as a default
+ (default autoselects)]))
+
+AC_MSG_CHECKING([for temporary directory])
+if test -z "$with_tmpdir" || test yes = "$with_tmpdir"; then
+ for with_tmpdir in /tmp /var/tmp no; do
+ if test -d "$with_tmpdir" && test -x "$with_tmpdir" \
+ && test -w "$with_tmpdir" && test -r "$with_tmpdir"; then
+ break
+ fi
+ done
+ if test no = "$with_tmpdir"; then
+ AC_MSG_WARN([Failed to find usable temporary directory. Using '/tmp'.])
+ with_tmpdir=/tmp
+ fi
+ AC_MSG_RESULT([$with_tmpdir])
+elif ! echo "$with_tmpdir" |grep '^[[\\/]]'; then
+ AC_MSG_RESULT([$with_tmpdir])
+ AC_MSG_ERROR([--with-tmpdir requires an absolute path.])
+elif ! test -d "$with_tmpdir" || ! test -x "$with_tmpdir" \
+ || ! test -w "$with_tmpdir" || ! test -r "$with_tmpdir"; then
+ AC_MSG_RESULT([$with_tmpdir])
+ AC_MSG_WARN(
+ [User supplied temporary directory ('$with_tmpdir') does not
+ exist or lacks sufficient permissions for read/write.])
+fi
+
+AC_DEFINE_UNQUOTED(
+ [TMPDIR_DFLT], ["$with_tmpdir"],
+ [Directory used for storing temporary files, if not overridden by
+ environment variables or the -T global option. There should be little
+ need to change this (-T is a better mechanism if you need to use a
+ different directory for temporary files).])
+
+dnl
+dnl done finding tmpdir
+dnl
+
+
+dnl
+dnl Get default umask
+dnl
+
+AC_ARG_WITH(
+ [umask],
+ AC_HELP_STRING(
+ [--with-umask],
+ [Set the umask CVS will use by default in the repository (default 002)]))
+
+if test -z "$with_umask" || test yes = "$with_umask"; then
+ with_umask=002
+elif test no = "$with_umask"; then
+ with_umask=000
+fi
+
+AC_DEFINE_UNQUOTED(
+ [UMASK_DFLT], [$with_umask],
+ [The default umask to use when creating or otherwise setting file or
+ directory permissions in the repository. Must be a value in the
+ range of 0 through 0777. For example, a value of 002 allows group
+ rwx access and world rx access; a value of 007 allows group rwx
+ access but no world access. This value is overridden by the value
+ of the CVSUMASK environment variable, which is interpreted as an
+ octal number.])
+
+dnl
+dnl Done setting default umask
+dnl
+
+dnl
+dnl Set CVS Administrator Group
+dnl
+AC_ARG_WITH(
+ [cvs-admin-group],
+ AC_HELP_STRING(
+ [--with-cvs-admin-group=GROUP],
+ [The CVS admin command is restricted to the members of this group.
+ If this group does not exist, all users are allowed to run CVS admin.
+ To disable the CVS admin command for all users, create an empty group
+ by specifying the --with-cvs-admin-group= option. To disable access
+ control for CVS admin, run configure with the --without-cvs-admin-group
+ option. (default 'cvsadmin')]), ,
+ [with_cvs_admin_group=cvsadmin])
+
+if test yes = "$with_cvs_admin_group"; then
+ with_cvs_admin_group=cvsadmin
+fi
+if test no != "$with_cvs_admin_group"; then
+ dnl FIXME We should warn if the group doesn't exist
+ AC_DEFINE_UNQUOTED(
+ [CVS_ADMIN_GROUP], ["$with_cvs_admin_group"],
+ [The CVS admin command is restricted to the members of the group
+ CVS_ADMIN_GROUP. If this group does not exist, all users are
+ allowed to run CVS admin. To disable the CVS admin command for
+ all users, create an empty CVS_ADMIN_GROUP by running configure
+ with the --with-cvs-admin-group= option. To disable access control
+ for CVS admin, run configure with the --without-cvs-admin-group
+ option in order to comment out the define below.])
+fi
+
+dnl
+dnl Done setting CVS Administrator Group
+dnl
+
+dnl
+dnl end --with-*
+dnl
+
+
+dnl
+dnl Set the NDBM library to use.
+dnl
+dnl XXX - FIXME - FIXME - FIXME - XXX
+dnl
+dnl This is very bad. It should really autodetect an appropriate NDBM library
+dnl and, if it doesn't find one, decide to use MY_NDBM. I'm am defining
+dnl this here since this is no worse than it worked when it was in options.h
+dnl and I am cleaning out options.h so that the Windows version of CVS will
+dnl compile properly for the next release.
+dnl
+dnl That's why this option is in the --with-* section rather than the
+dnl --enable-* section.
+dnl
+dnl XXX - FIXME - FIXME - FIXME - XXX
+dnl
+AC_ARG_ENABLE(
+ [cvs-ndbm],
+ AC_HELP_STRING(
+ [--enable-cvs-ndbm],
+ [Use the NDBM library distributed with CVS rather than attempting to use
+ a system NDBM library. Disabling this may not work. (default)]), ,
+ [enable_cvs_ndbm=yes])
+if test no != "$enable_cvs_ndbm"; then
+ AC_DEFINE(
+ [MY_NDBM], [1],
+ [By default, CVS stores its modules and other such items in flat
+ text files (MY_NDBM enables this). Turning off MY_NDBM causes CVS
+ to look for a system-supplied ndbm database library and use it
+ instead. That may speed things up, but the default setting
+ generally works fine too.])
+fi
+
+dnl
+dnl Done selecting NDBM library.
+dnl
+
+
+dnl
+dnl begin --enables
+dnl
+
+
+dnl Allow mmap for the buffer routine replacements to be disabled in
+dnl case of problems.
+
+AC_ARG_ENABLE(
+ [mmap],
+ AC_HELP_STRING(
+ [--disable-mmap],
+ [Don't mmap RCS files]))
+
+if test no != "$enable_mmap"; then
+ AC_FUNC_MMAP
+fi
+
+# Check for options requesting client and server feature. If none are
+# given and we have connect(), we want the full client & server arrangement.
+AC_ARG_ENABLE(
+ [client],
+ AC_HELP_STRING(
+ [--enable-client],
+ [Include code for running as a remote client (default)]), ,
+ [if test "$ac_cv_search_connect" != no; then
+ enable_client=yes
+ fi])
+if test no != "$enable_client"; then
+ AC_DEFINE(
+ [CLIENT_SUPPORT], [1],
+ [Define if you want CVS to be able to be a remote repository client.])
+fi
+
+AC_ARG_ENABLE(
+ [password-authenticated-client],
+ AC_HELP_STRING(
+ [--enable-password-authenticated-client],
+ [Enable pserver as a remote access method in the CVS client
+ (default)]))
+
+if test no != "$enable_password_authenticated_client"; then
+ if test no != "$enable_client"; then
+ AC_DEFINE(
+ [AUTH_CLIENT_SUPPORT], [1],
+ [Enable AUTH_CLIENT_SUPPORT to enable pserver as a remote access
+ method in the CVS client (default)])
+ else
+ AC_MSG_WARN(
+ [--enable-password-authenticated-client is meaningless with
+ the CVS client disabled (--disable-client)])
+ fi
+fi
+
+
+dnl
+dnl Give the confiscator control over whether the server code is compiled
+dnl
+AC_ARG_ENABLE(
+ [server],
+ AC_HELP_STRING(
+ [--enable-server],
+ [Include code for running as a server (default)]), ,
+ [if test "$ac_cv_search_connect" != no; then
+ enable_server=yes
+ fi])
+
+if test no != "$enable_server"; then
+ AC_DEFINE(
+ [SERVER_SUPPORT], [1],
+ [Define if you want CVS to be able to serve repositories to remote
+ clients.])
+
+ dnl
+ dnl The auth server needs to be able to check passwords against passwd
+ dnl file entries, so we only #define AUTH_SERVER_SUPPORT if we can
+ dnl find the crypt function.
+ dnl
+ AC_SEARCH_LIBS(
+ [crypt], [crypt],
+ [AC_DEFINE(
+ [HAVE_CRYPT], [1],
+ [Define if you have the crypt function.])
+ AC_DEFINE(
+ [AUTH_SERVER_SUPPORT], [1],
+ [Define if you want to use the password authenticated server.])dnl
+ ])dnl AC_SEARCH_LIBS
+
+ dnl
+ dnl Allow the configurer to enable server flowcontrol. Read the help
+ dnl strings below for a full explanation.
+ dnl
+ AC_ARG_ENABLE(
+ [server-flow-control],
+ AC_HELP_STRING(
+ [--enable-server-flow-control],
+ [If you are working with a large remote repository and a 'cvs
+ checkout' is swamping your network and memory, define these to
+ enable flow control. You may optionally pass a low water mark
+ in bytes and a high water mark in bytes, separated by commas.
+ (default is enabled 1M,2M)]),
+ [if test yes = $enable_server_flow_control; then
+ enable_server_flow_control=1M,2M
+ fi],
+ [enable_server_flow_control=1M,2M])
+ if test no != $enable_server_flow_control; then
+ ccvs_lwm=`expr "$enable_server_flow_control" : '\(.*\),'`
+ ccvs_hwm=`expr "$enable_server_flow_control" : '.*,\(.*\)'`
+ ccvs_lwm_E=`expr "$ccvs_lwm" : '[[0-9]][[0-9]]*\(.*\)'`
+ ccvs_lwm=`expr "$ccvs_lwm" : '\([[0-9]][[0-9]]*\)'`
+ test "" != "$ccvs_lwm" || ccvs_lwm_E="?"
+ case $ccvs_lwm_E in
+ G) ccvs_lwm="$ccvs_lwm * 1024 * 1024 * 1024";;
+ M) ccvs_lwm="$ccvs_lwm * 1024 * 1024";;
+ k) ccvs_lwm="$ccvs_lwm * 1024";;
+ b | '') ;;
+ *) AC_MSG_ERROR([Can't parse argument to --enable-server-flow-control
+ ('$enable_server_flow_control') as <lwm>,<hwm>])
+ esac
+ ccvs_hwm_E=`expr "$ccvs_hwm" : '[[0-9]][[0-9]]*\(.*\)'`
+ ccvs_hwm=`expr "$ccvs_hwm" : '\([[0-9]][[0-9]]*\).*'`
+ test "" != "$ccvs_hwm" || ccvs_hwm_E="?"
+ case $ccvs_hwm_E in
+ G) ccvs_hwm="$ccvs_hwm * 1024 * 1024 * 1024";;
+ M) ccvs_hwm="$ccvs_hwm * 1024 * 1024";;
+ k) ccvs_hwm="$ccvs_hwm * 1024";;
+ b | '') ccvs_hwm="$ccvs_hwm";;
+ *) AC_MSG_ERROR([Can't parse argument to --enable-server-flow-control
+ ('$enable_server_flow_control') as <lwm>,<hwm>])
+ esac
+
+ AC_DEFINE(
+ [SERVER_FLOWCONTROL], [1],
+ [If you are working with a large remote repository and a 'cvs
+ checkout' is swamping your network and memory, define these to
+ enable flow control. You will end up with even less probability of
+ a consistent checkout (see Concurrency in cvs.texinfo), but CVS
+ doesn't try to guarantee that anyway. The master server process
+ will monitor how far it is getting behind, if it reaches the high
+ water mark, it will signal the child process to stop generating
+ data when convenient (ie: no locks are held, currently at the
+ beginning of a new directory). Once the buffer has drained
+ sufficiently to reach the low water mark, it will be signalled to
+ start again.])
+ AC_DEFINE_UNQUOTED(
+ [SERVER_LO_WATER], [($ccvs_lwm)],
+ [The low water mark in bytes for server flow control. Required if
+ SERVER_FLOWCONTROL is defined, and useless otherwise.])
+ AC_DEFINE_UNQUOTED(
+ [SERVER_HI_WATER], [($ccvs_hwm)],
+ [The high water mark in bytes for server flow control. Required if
+ SERVER_FLOWCONTROL is defined, and useless otherwise.])
+ fi # enable_server_flow_control
+fi # enable_server
+
+
+dnl
+dnl begin --enable-case-sensitivity
+dnl
+
+AC_ARG_ENABLE(
+ [case-sensitivity],
+ AC_HELP_STRING(
+ [--enable-case-sensitivity],
+ [Force CVS to expect a case sensitive file system. Enabling this on a case
+ insensitive system should have little effect on the server or client
+ operation, though client users may ocassionally be suprised that the CVS
+ server appears to be case sensitive. Disabling this for a case sensitive
+ server disables server support for case insensitive clients, which can
+ confuse all users of case insensitive clients contacting the server.
+ Disabling this for a case sensitive client will cause the client to ask
+ servers to behave case insensitively, which could cause confusion for
+ users, but also probably no real harm. (default autoselects based on the
+ case sensitivity of the file system containing the current working
+ directory)]),
+ [case "$enable_case_sensitivity" in
+ yes | no | auto) ;;
+ *)
+ AC_MSG_ERROR([Unrecognized argument to --enable-case-sensitivity: \`$enable_case_sensitivity'. Acceptable values are \`yes', \`no', and \`auto'.])
+ ;;
+ esac],
+ [enable_case_sensitivity=auto])
+
+acx_forced=' (forced)'
+AC_MSG_CHECKING([for a case sensitive file system])
+if test $enable_case_sensitivity = auto; then
+ dnl
+ dnl Check for a case insensitive filesystem, like Mac OS X and Windows have.
+ dnl
+ AC_CACHE_VAL([acx_cv_case_sensitive],
+ [ rm -f ac_TEST_filenames_CASE_sensitive
+ echo foo >ac_test_filenames_case_sensitive
+ if test -f ac_TEST_filenames_CASE_sensitive; then
+ acx_cv_case_sensitive=no
+ else
+ acx_cv_case_sensitive=yes
+ fi
+ rm ac_test_filenames_case_sensitive
+ ])
+ enable_case_sensitivity=$acx_cv_case_sensitive
+ acx_forced=
+fi
+AC_MSG_RESULT([$enable_case_sensitivity$acx_forced])
+if test $enable_case_sensitivity = no; then
+ AC_DEFINE([FILENAMES_CASE_INSENSITIVE], [1],
+ [Define if this executable will be running on case insensitive
+ file systems. In the client case, this means that it will request
+ that the server pretend to be case insensitive if it isn't
+ already.])
+ dnl Compile fncase.c (containing fncase() & fncmp()) to handle file name
+ dnl comparisons on case insensitive filesystems.
+ AC_LIBOBJ(fncase)
+fi
+
+dnl
+dnl end --enable-case-sensitivity
+dnl
+
+
+dnl
+dnl begin --enable-encryption
+dnl
+
+dnl
+dnl Use --enable-encryption to turn on encryption support, but ignore this
+dnl option unless either client or server is enabled.
+dnl
+AC_ARG_ENABLE(
+ [encryption],
+ AC_HELP_STRING(
+ [--enable-encryption],
+ [Enable encryption support (disabled by default)]), ,
+ [enable_encryption=no])
+if test "$enable_encryption" = yes; then
+ if test no != "$with_client" || test no != "$with_server"; then
+ AC_DEFINE(
+ [ENCRYPTION], [1],
+ [Define to enable encryption support.])
+ else
+ AC_MSG_WARN(
+ [--enable-encryption is meaningless when neither the CVS client
+ nor the CVS server is enabled (--disable-client and --disable-server).])
+ fi
+fi
+
+dnl
+dnl end --enable-encryption
+dnl
+
+
+dnl
+dnl begin --enable-force-editor
+dnl
+
+AC_ARG_ENABLE(
+ [force-editor],
+ AC_HELP_STRING(
+ [--enable-force-editor],
+ [When committing or importing files, you must enter a log message.
+ Normally, you can do this either via the -m flag on the command
+ line, the -F flag on the command line, or an editor will be started
+ for you. If you like to use logging templates (the rcsinfo file
+ within the $CVSROOT/CVSROOT directory), you might want to force
+ people to use the editor even if they specify a message with -m or
+ -F. --enable-force-editor will cause the -m or -F message to be
+ appended to the temp file when the editor is started. (disabled
+ by default)]), ,
+ [enable_force_editor=no])
+
+if test yes = "$enable_force_editor"; then
+ AC_DEFINE(
+ [FORCE_USE_EDITOR], [1],
+ [When committing or importing files, you must enter a log message.
+ Normally, you can do this either via the -m flag on the command
+ line, the -F flag on the command line, or an editor will be started
+ for you. If you like to use logging templates (the rcsinfo file
+ within the $CVSROOT/CVSROOT directory), you might want to force
+ people to use the editor even if they specify a message with -m or
+ -F. Enabling FORCE_USE_EDITOR will cause the -m or -F message to be
+ appended to the temp file when the editor is started.])
+fi
+
+dnl
+dnl end --enable-force-editor
+dnl
+
+
+dnl
+dnl begin --enable-rootcommit
+dnl
+
+dnl
+dnl I don't like this here, but I don't really like options.h, either.
+dnl Besides, this is causing some problems currently when compiling under
+dnl Windows and moving it here should avoid the issue (the wrong options.h
+dnl is being used).
+dnl
+dnl I don't like making this a runtime option either. I think I just don't
+dnl like making it easy to get to, but putting it here goes along with the
+dnl Autoconf ideal.
+dnl
+AC_ARG_ENABLE(
+ [rootcommit],
+ AC_HELP_STRING(
+ [--enable-rootcommit],
+ [Allow the root user to commit files (disabled by default)]), ,
+ [enable_rootcommit=no])
+if test "$enable_rootcommit" = no; then
+ AC_DEFINE(
+ [CVS_BADROOT], [1],
+ [When committing a permanent change, CVS and RCS make a log entry of
+ who committed the change. If you are committing the change logged
+ in as "root" (not under "su" or other root-priv giving program),
+ CVS/RCS cannot determine who is actually making the change.
+
+ As such, by default, CVS prohibits changes committed by users
+ logged in as "root". You can disable checking by passing the
+ "--enable-rootcommit" option to configure or by commenting out the
+ lines below.])
+fi
+
+dnl
+dnl end --enable-rootcommit
+dnl
+
+
+
+dnl
+dnl end --enable-*
+dnl
+
+
+
+dnl For the moment we will assume that all systems which have
+dnl the unixyness to run configure are unixy enough to do the
+dnl PreservePermissions stuff. I have this sinking feeling that
+dnl things won't be that simple, before long.
+dnl AC_DEFINE(PRESERVE_PERMISSIONS_SUPPORT, 1,
+dnl [Define if this system supports chown(), link(), and friends.])
+
+dnl On cygwin32, we configure like a Unix system, but we need some support
+dnl libraries. We do this at the end so that the new libraries are added at
+dnl the end of LIBS.
+dnl
+dnl FIXME: We should be trying to meet the autoconf ideal of checking for
+dnl the properties of the system rather than the name of the os here. In other
+dnl words, we should check the case sensitivty of the system and then for
+dnl the support functions we are using and which library we find them in.
+AC_CACHE_CHECK(for cygwin32, ccvs_cv_sys_cygwin32,
+[AC_TRY_COMPILE([], [return __CYGWIN32__;],
+ccvs_cv_sys_cygwin32=yes, ccvs_cv_sys_cygwin32=no)])
+if test $ccvs_cv_sys_cygwin32 = yes; then
+ LIBS="$LIBS -ladvapi32"
+
+ dnl On Windows you can only change file times if you can write to
+ dnl the file. cygwin32 should really handle this for us, but as of
+ dnl January 1998 it doesn't.
+ AC_DEFINE(UTIME_EXPECTS_WRITABLE, 1,
+[Define if utime requires write access to the file (true on Windows,
+but not Unix).])
+
+ dnl On Windows we must use setmode to change between binary and text
+ dnl mode. This probably doesn't really require two macro definitions
+ AC_DEFINE(USE_SETMODE_STDOUT, 1,
+[Define if setmode is required when writing binary data to stdout.])
+ AC_DEFINE(HAVE_SETMODE, 1,
+[Define if the diff library should use setmode for binary files.])
+fi
+
+dnl associate the setting of the execute bit with the individual scripts
+AC_CONFIG_FILES(contrib/check_cvs, [chmod +x contrib/check_cvs])
+AC_CONFIG_FILES(contrib/clmerge, [chmod +x contrib/clmerge])
+AC_CONFIG_FILES(contrib/cln_hist, [chmod +x contrib/cln_hist])
+AC_CONFIG_FILES(contrib/commit_prep, [chmod +x contrib/commit_prep])
+AC_CONFIG_FILES(contrib/cvs_acls, [chmod +x contrib/cvs_acls])
+AC_CONFIG_FILES(contrib/log, [chmod +x contrib/log])
+AC_CONFIG_FILES(contrib/log_accum, [chmod +x contrib/log_accum])
+AC_CONFIG_FILES(contrib/mfpipe, [chmod +x contrib/mfpipe])
+AC_CONFIG_FILES(contrib/pvcs2rcs, [chmod +x contrib/pvcs2rcs])
+AC_CONFIG_FILES(contrib/rcs2log:contrib/rcs2log.sh, [chmod +x contrib/rcs2log])
+AC_CONFIG_FILES(contrib/rcslock, [chmod +x contrib/rcslock])
+AC_CONFIG_FILES(contrib/sccs2rcs, [chmod +x contrib/sccs2rcs])
+AC_CONFIG_FILES(doc/mkman:doc/mkman.pl, [chmod +x doc/mkman])
+AC_CONFIG_FILES(src/cvsbug, [chmod +x src/cvsbug])
+AC_CONFIG_FILES(windows-NT/fix-msvc-mak:windows-NT/fix-msvc-mak-head.pl:windows-NT/fix-msvc-mak.pl,
+ [chmod +x windows-NT/fix-msvc-mak])
+
+dnl the bulk files
+AC_CONFIG_FILES([Makefile \
+ contrib/Makefile \
+ cvs.spec \
+ diff/Makefile \
+ doc/Makefile \
+ emx/Makefile \
+ lib/Makefile \
+ man/Makefile \
+ os2/Makefile \
+ src/Makefile \
+ tools/Makefile \
+ vms/Makefile \
+ windows-NT/Makefile \
+ windows-NT/SCC/Makefile \
+ zlib/Makefile])
+
+dnl and we're done
+AC_OUTPUT
+
+
+
+# Report the state of this version of CVS if this is from dev.
+m4_bmatch(m4_defn([AC_PACKAGE_VERSION]), [[0-9]*\.[0-9]*\.[0-9]*\.[0-9]],
+[ cat <<EOF
+
+You are about to use an unreleased version of CVS. Be sure to
+read the relevant mailing lists, most importantly <info-cvs@nongnu.org>.
+
+Below you will find information on the status of this version of CVS.
+
+
+EOF
+ sed -n '/^\* Status/,$p' $srcdir/BUGS
+])
OpenPOWER on IntegriCloud