Merge branch 'mirbsd'
[alioth/cvs.git] / configure.in
index 6a260f1..900a233 100644 (file)
@@ -1,5 +1,3 @@
-dnl $MirOS: src/gnu/usr.bin/cvs/configure.in,v 1.22 2016/10/22 03:37:04 tg Exp $
-dnl
 dnl configure.in for cvs
 
 AC_COPYRIGHT(
@@ -17,10 +15,12 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.])
 
-AC_INIT([Concurrent Versions System (CVS)],[1.12.13-MirOS-0AB7.3],
-       [miros-discuss@mirbsd.org],[cvs])
+AC_INIT([Concurrent Versions System (CVS)],[1.12.13-MirDebian-17],
+       [bug-cvs@nongnu.org],[cvs])
 AC_CONFIG_SRCDIR(src/cvs.h)
+AC_CONFIG_AUX_DIR(build-aux)
 AM_INIT_AUTOMAKE([gnu 1.9.2 dist-bzip2 no-define])
+AM_GNU_GETTEXT_VERSION([0.14.4])
 AC_PREREQ(2.59)
 
 AC_PREFIX_PROGRAM(cvs)
@@ -32,6 +32,53 @@ dnl a C compiler.
 gl_EARLY
 
 AC_PROG_CC
+AM_PROG_CC_C_O
+
+# 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_LN_S
@@ -64,7 +111,7 @@ 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, nroff gnroff groff roff, $missing_dir/missing roff, $glocs)
+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)
 
@@ -127,9 +174,7 @@ AC_CHECK_HEADERS(\
        wctype.h \
        zlib.h \
 )
-gl_AC_HEADER_STDINT_H
 AC_HEADER_STAT
-AC_HEADER_STDBOOL
 
 AC_C_CONST
 AC_TYPE_UID_T
@@ -167,6 +212,10 @@ ccvs_FUNC_SELECT
 dnl This calls most of the GNULIB macros we need via the
 dnl autogenerated m4/gnulib.m4.
 gl_INIT
+dnl For one reason or another, the autogenerated m4/gnulib.m4 wants
+dnl AM_GNU_GETTEXT([external]) called directly from here.
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION dnl work around for autoconf-2.57 bug.
 # The error module still poses merge problems.
 AC_FUNC_STRERROR_R
 dnl The following macros can be called by other GNULIB macros but are also
@@ -181,6 +230,8 @@ AC_REQUIRE([gl_AC_TYPE_INTMAX_T])
 AC_REQUIRE([gl_FUNC_MMAP_ANON])
 AC_REQUIRE([gl_AC_TYPE_LONG_LONG])])
 CCVS_CALL_GNULIB_MACROS_ONCE()
+dnl Until I persuade the GNULIB folks to integrate this module.
+gl_GLOB
 
 #
 # End GNULIB stuff.
@@ -190,22 +241,18 @@ CCVS_CALL_GNULIB_MACROS_ONCE()
 
 # Check for function existance.
 AC_CHECK_FUNCS(\
-       alloca \
-       btowc \
        fchdir \
        fchmod \
        fsync \
        ftime \
        geteuid \
        getgroups \
-       getopt_long_only \
        getpagesize \
-       getpass \
        gettimeofday \
        initgroups \
        login \
        logout \
-       mbsrtowcs \
+       mknod \
        regcomp \
        regerror \
        regexec \
@@ -219,13 +266,7 @@ AC_CHECK_FUNCS(\
        tzset \
        vprintf \
        wait3 \
-       wmemchr \
-       wmemcpy \
-       wmempcpy \
 )
-HAVE_PUTENV=$ac_cv_func_putenv
-AC_SUBST(HAVE_PUTENV)
-AC_C_BIGENDIAN
 
 dnl
 dnl Find the sizes of various types and set a variable for some if they
@@ -497,6 +538,105 @@ 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)
+
+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.])
+    cvs_client_objects="$cvs_client_objects kerberos4-client.o"
+    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
+      CPPFLAGS="$CPPFLAGS -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 WITH_EXTERNAL_ZLIB is external
+dnl
+ACX_WITH_EXTERNAL_ZLIB
+
+dnl
 dnl begin --with-rsh
 dnl
 dnl Many sites no longer desire the use of "rsh" as the default
@@ -1410,25 +1550,39 @@ dnl associate the setting of the execute bit with the individual scripts
 AC_CONFIG_FILES(contrib/validate_repo, [chmod +x contrib/validate_repo])
 AC_CONFIG_FILES(contrib/clmerge, [chmod +x contrib/clmerge])
 AC_CONFIG_FILES(contrib/cln_hist, [chmod +x contrib/cln_hist])
-dnl AC_CONFIG_FILES(contrib/commit_prep, [chmod +x contrib/commit_prep])
-dnl AC_CONFIG_FILES(contrib/cvs_acls, [chmod +x contrib/cvs_acls])
-dnl AC_CONFIG_FILES(contrib/log, [chmod +x contrib/log])
-dnl AC_CONFIG_FILES(contrib/log_accum, [chmod +x contrib/log_accum])
-dnl AC_CONFIG_FILES(contrib/mfpipe, [chmod +x contrib/mfpipe])
+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])
-dnl AC_CONFIG_FILES(contrib/rcslock, [chmod +x contrib/rcslock])
+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])
 
 dnl the bulk files
 AC_CONFIG_FILES([Makefile \
          contrib/Makefile \
+         contrib/pam/Makefile \
+         cvs.spec \
          diff/Makefile \
          doc/Makefile \
+         doc/i18n/Makefile \
+         doc/i18n/pt_BR/Makefile \
+         emx/Makefile \
          lib/Makefile \
+         maint-aux/Makefile \
          man/Makefile \
-         src/Makefile])
+         os2/Makefile \
+         src/Makefile \
+         src/sanity.config.sh \
+         tools/Makefile \
+         vms/Makefile \
+         windows-NT/Makefile \
+         windows-NT/SCC/Makefile \
+         zlib/Makefile])
 
 dnl and we're done
 AC_OUTPUT