From d25dac7fcc6acc838b71bbda8916fd9665c709ab Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 18 Jun 2013 02:07:41 +0000 Subject: Import trimmed svn-1.8.0-rc3 --- configure.ac | 1521 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1521 insertions(+) create mode 100644 configure.ac (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..b1748ce --- /dev/null +++ b/configure.ac @@ -0,0 +1,1521 @@ +dnl Licensed to the Apache Software Foundation (ASF) under one +dnl or more contributor license agreements. See the NOTICE file +dnl distributed with this work for additional information +dnl regarding copyright ownership. The ASF licenses this file +dnl to you under the Apache License, Version 2.0 (the +dnl "License"); you may not use this file except in compliance +dnl with the License. You may obtain a copy of the License at +dnl +dnl http://www.apache.org/licenses/LICENSE-2.0 +dnl +dnl Unless required by applicable law or agreed to in writing, +dnl software distributed under the License is distributed on an +dnl "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +dnl KIND, either express or implied. See the License for the +dnl specific language governing permissions and limitations +dnl under the License. + +dnl configure.ac: Autoconfiscation for Subversion +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.59) + +dnl Get the version of Subversion, using m4's esyscmd() command to do this +dnl at m4-time, since AC_INIT() requires it then. +AC_INIT([subversion], + [esyscmd(python build/getversion.py SVN subversion/include/svn_version.h)], + [http://subversion.apache.org/]) + +AC_CONFIG_SRCDIR(subversion/include/svn_types.h) +AC_CONFIG_AUX_DIR([build]) + +AC_MSG_NOTICE([Configuring Subversion ]AC_PACKAGE_VERSION) + +AC_SUBST([abs_srcdir], ["`cd $srcdir && pwd`"]) +AC_SUBST([abs_builddir], ["`pwd`"]) +if test "$abs_srcdir" = "$abs_builddir"; then + canonicalized_srcdir="" +else + canonicalized_srcdir="$srcdir/" +fi +AC_SUBST([canonicalized_srcdir]) + +SWIG_LDFLAGS="$LDFLAGS" +AC_SUBST([SWIG_LDFLAGS]) + +# Generate config.nice early (before the arguments are munged) +SVN_CONFIG_NICE(config.nice) + +# ==== Check for programs ==================================================== + +# Look for a C compiler (before anything can set CFLAGS) +CMAINTAINERFLAGS="$CUSERFLAGS" +CUSERFLAGS="$CFLAGS" +AC_PROG_CC +SVN_CC_MODE_SETUP + +# Look for a C++ compiler (before anything can set CXXFLAGS) +CXXMAINTAINERFLAGS="$CXXUSERFLAGS" +CXXUSERFLAGS="$CXXFLAGS" +AC_PROG_CXX +SVN_CXX_MODE_SETUP + +# Look for a C pre-processor +AC_PROG_CPP + +# Look for a good sed +# AC_PROG_SED was introduced in Autoconf 2.59b +m4_ifdef([AC_PROG_SED], [AC_PROG_SED], [SED="${SED:-sed}"]) + +# Grab target_cpu, so we can use it in the Solaris pkginfo file +AC_CANONICAL_TARGET + +# Look for an extended grep +AC_PROG_EGREP + +AC_PROG_LN_S + +AC_PROG_INSTALL +# If $INSTALL is relative path to our fallback install-sh, then convert +# to an absolute path, as in some cases (e.g. Solaris VPATH build), libtool +# may try to use it from a changed working directory. +if test "$INSTALL" = "build/install-sh -c"; then + INSTALL="$abs_srcdir/$INSTALL" +fi + +if test -z "$MKDIR"; then + MKDIR="$INSTALL -d" +fi +AC_SUBST([MKDIR]) + +# ==== Libraries, for which we may have source to build ====================== + +dnl verify apr version and set apr flags +dnl These regular expressions should not contain "\(" and "\)". +dnl The specific reason we require APR 0.9.7 is: +dnl It contains fixes to its file writing routines +dnl now generating errors instead of silently ignoring +dnl them. Only .7 and later can guarantee repository +dnl integrity with FSFS. + +APR_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\. 2\."] + +SVN_LIB_APR($APR_VER_REGEXES) + +if test `expr $apr_version : 2` -ne 0; then + dnl Bump the library so-version to 2 if using APR-2 + dnl (Debian uses so-version 1 for APR-1-with-largefile) + svn_lib_ver=2 + dnl APR-2 provides APRUTIL + apu_config=$apr_config + AC_SUBST(SVN_APRUTIL_INCLUDES) + AC_SUBST(SVN_APRUTIL_CONFIG, ["$apu_config"]) + AC_SUBST(SVN_APRUTIL_LIBS) +else + svn_lib_ver=0 + APU_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\."] + SVN_LIB_APRUTIL($APU_VER_REGEXES) +fi +SVN_LT_SOVERSION="-version-info $svn_lib_ver" +AC_SUBST(SVN_LT_SOVERSION) +AC_DEFINE_UNQUOTED(SVN_SOVERSION, $svn_lib_ver, + [Subversion library major verson]) + +dnl Search for pkg-config +AC_PATH_PROG(PKG_CONFIG, pkg-config) + +dnl Search for serf +SVN_LIB_SERF(1,2,1) + +if test "$svn_lib_serf" = "yes"; then + AC_DEFINE([SVN_HAVE_SERF], 1, + [Defined if support for Serf is enabled]) +fi + +dnl Search for apr_memcache (only affects fs_fs) +SVN_LIB_APR_MEMCACHE + +if test "$svn_lib_apr_memcache" = "yes"; then + AC_DEFINE(SVN_HAVE_MEMCACHE, 1, + [Defined if apr_memcache (standalone or in apr-util) is present]) +fi + + +dnl Find Apache with a recent-enough magic module number +SVN_FIND_APACHE(20020903) + +dnl Search for SQLite. If you change SQLITE_URL from a .zip to +dnl something else also update build/ac-macros/sqlite.m4 to reflect +dnl the correct command to unpack the downloaded file. +SQLITE_MINIMUM_VER="3.7.12" +SQLITE_RECOMMENDED_VER="3.7.15.1" +SQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-$(printf %d%02d%02d%02d $(echo ${SQLITE_RECOMMENDED_VER} | sed -e 's/\./ /g')).zip" + +SVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER}, + ${SQLITE_URL}) + +AC_ARG_ENABLE(sqlite-compatibility-version, + AS_HELP_STRING([--enable-sqlite-compatibility-version=X.Y.Z], + [Allow binary to run against SQLite as old as ARG]), + [sqlite_compat_ver=$enableval],[sqlite_compat_ver=no]) + +if test -n "$sqlite_compat_ver" && test "$sqlite_compat_ver" != no; then + SVN_SQLITE_VERNUM_PARSE([$sqlite_compat_ver], + [sqlite_compat_ver_num]) + CFLAGS="-DSVN_SQLITE_MIN_VERSION='\"$sqlite_compat_ver\"' $CFLAGS" + CFLAGS="-DSVN_SQLITE_MIN_VERSION_NUMBER=$sqlite_compat_ver_num $CFLAGS" +fi + +SVN_CHECK_FOR_ATOMIC_BUILTINS + +if test "$svn_cv_atomic_builtins" = "yes"; then + AC_DEFINE(SVN_HAS_ATOMIC_BUILTINS, 1, [Define if compiler provides atomic builtins]) +fi + +dnl Set up a number of directories --------------------- + +dnl Create SVN_BINDIR for proper substitution +if test "${bindir}" = '${exec_prefix}/bin'; then + if test "${exec_prefix}" = "NONE"; then + if test "${prefix}" = "NONE"; then + SVN_BINDIR="${ac_default_prefix}/bin" + else + SVN_BINDIR="${prefix}/bin" + fi + else + SVN_BINDIR="${exec_prefix}/bin" + fi +else + SVN_BINDIR="${bindir}" +fi + +dnl fully evaluate this value. when we substitute it into our tool scripts, +dnl they will not have things such as ${bindir} available +SVN_BINDIR="`eval echo ${SVN_BINDIR}`" +AC_SUBST(SVN_BINDIR) + +dnl provide ${bindir} in svn_private_config.h for use in compiled code +AC_DEFINE_UNQUOTED(SVN_BINDIR, "${SVN_BINDIR}", + [Defined to be the path to the installed binaries]) + +dnl This purposely does *not* allow for multiple parallel installs. +dnl However, it is compatible with most gettext usages. +localedir='${datadir}/locale' +AC_SUBST(localedir) + +dnl For SVN_LOCALE_DIR, we have to expand it to something. See SVN_BINDIR. +if test "${datadir}" = '${prefix}/share' && test "${prefix}" = "NONE"; then + exp_localedir='${ac_default_prefix}/share/locale' +else + exp_localedir=$localedir +fi +SVN_EXPAND_VAR(svn_localedir, "${exp_localedir}") +AC_DEFINE_UNQUOTED(SVN_LOCALE_DIR, "${svn_localedir}", + [Defined to be the path to the installed locale dirs]) + +dnl Check for libtool -- we'll definitely need it for all our shared libs! +AC_MSG_NOTICE([configuring libtool now]) +ifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL]) +AC_ARG_ENABLE(experimental-libtool, + AS_HELP_STRING([--enable-experimental-libtool],[Use APR's libtool]), + [experimental_libtool=$enableval],[experimental_libtool=no]) + +if test "$experimental_libtool" = "yes"; then + echo "using APR's libtool" + sh_libtool="`$apr_config --apr-libtool`" + LIBTOOL="$sh_libtool" + SVN_LIBTOOL="$sh_libtool" +else + sh_libtool="$abs_builddir/libtool" + SVN_LIBTOOL="\$(SHELL) $sh_libtool" +fi +AC_SUBST(SVN_LIBTOOL) + +dnl Determine the libtool version +changequote(, )dnl +lt_pversion=`$LIBTOOL --version 2>/dev/null|$SED -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` +lt_version=`echo $lt_pversion|$SED -e 's/\([a-z]*\)$/.\1/'` +lt_major_version=`echo $lt_version | cut -d'.' -f 1` +changequote([, ])dnl + +dnl set the default parameters +svn_enable_static=yes +svn_enable_shared=yes + +dnl check for --enable-static option +AC_ARG_ENABLE(static, + AS_HELP_STRING([--enable-static], + [Build static libraries]), + [svn_enable_static="$enableval"], [svn_enable_static="yes"]) + +dnl check for --enable-shared option +AC_ARG_ENABLE(shared, + AS_HELP_STRING([--enable-shared], + [Build shared libraries]), + [svn_enable_shared="$enableval"], [svn_enable_shared="yes"]) + +if test "$svn_enable_static" = "yes" && test "$svn_enable_shared" = "yes" ; then + AC_MSG_NOTICE([building both shared and static libraries]) +elif test "$svn_enable_static" = "yes" ; then + AC_MSG_NOTICE([building static libraries only]) + LT_CFLAGS="-static $LT_CFLAGS" + LT_LDFLAGS="-static $LT_LDFLAGS" +elif test "$svn_enable_shared" = "yes" ; then + AC_MSG_NOTICE([building shared libraries only]) + if test "$lt_major_version" = "1" ; then + LT_CFLAGS="-prefer-pic $LT_CFLAGS" + elif test "$lt_major_version" = "2" ; then + LT_CFLAGS="-shared $LT_CFLAGS" + fi + LT_LDFLAGS="-shared $LT_LDFLAGS" +else + AC_MSG_ERROR([cannot disable both shared and static libraries]) +fi + +dnl Check for --enable-all-static option +AC_ARG_ENABLE(all-static, + AS_HELP_STRING([--enable-all-static], + [Build completely static (standalone) binaries.]), + [ + if test "$enableval" = "yes" ; then + LT_LDFLAGS="-all-static $LT_LDFLAGS" + elif test "$enableval" != "no" ; then + AC_MSG_ERROR([--enable-all-static doesn't accept argument]) + fi +]) + +AC_SUBST(LT_CFLAGS) +AC_SUBST(LT_LDFLAGS) + +AC_ARG_ENABLE(local-library-preloading, + AS_HELP_STRING([--enable-local-library-preloading], + [Enable preloading of locally built libraries in locally + built executables. This may be necessary for testing + prior to installation on some platforms. It does not + work on some platforms (Darwin, OpenBSD, ...).]), + [ + if test "$enableval" != "no"; then + if test "$svn_enable_shared" = "yes"; then + TRANSFORM_LIBTOOL_SCRIPTS="transform-libtool-scripts" + else + AC_MSG_ERROR([--enable-local-library-preloading conflicts with --disable-shared]) + fi + else + TRANSFORM_LIBTOOL_SCRIPTS="" + fi + ], [ + TRANSFORM_LIBTOOL_SCRIPTS="" +]) +AC_SUBST(TRANSFORM_LIBTOOL_SCRIPTS) + +dnl Check if -no-undefined is needed for the platform. +dnl It should always work but with libtool 1.4.3 on OS X it breaks the build. +dnl So we only turn it on for platforms where we know we really need it. +AC_MSG_CHECKING([whether libtool needs -no-undefined]) +case $host in + *-*-cygwin*) + AC_MSG_RESULT([yes]) + LT_NO_UNDEFINED="-no-undefined" + ;; + *) + AC_MSG_RESULT([no]) + LT_NO_UNDEFINED="" + ;; +esac +AC_SUBST(LT_NO_UNDEFINED) + +AC_MSG_CHECKING([whether to avoid circular linkage at all costs]) +case $host in + *-*-cygwin*) + AC_MSG_RESULT([yes]) + AC_DEFINE([SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK], 1, + [Define if circular linkage is not possible on this platform.]) + ;; + *) + AC_MSG_RESULT([no]) + ;; +esac + +dnl Check for trang. +trang=yes +AC_ARG_WITH(trang, +AS_HELP_STRING([--with-trang=PATH], + [Specify the command to run the trang schema converter]), +[ + trang="$withval" +]) +if test "$trang" = "yes"; then + AC_PATH_PROG(TRANG, trang, none) +else + TRANG="$trang" + AC_SUBST(TRANG) +fi + +dnl Check for doxygen +doxygen=yes +AC_ARG_WITH(doxygen, +AC_HELP_STRING([--with-doxygen=PATH], + [Specify the command to run doxygen]), +[ + doxygen="$withval" +]) +if test "$doxygen" = "yes"; then + AC_PATH_PROG(DOXYGEN, doxygen, none) +else + DOXYGEN="$doxygen" + AC_SUBST(DOXYGEN) +fi + + +dnl Check for libraries -------------------- + +dnl Expat ------------------- + +AC_ARG_WITH(expat, + AS_HELP_STRING([--with-expat=INCLUDES:LIB_SEARCH_DIRS:LIBS], + [Specify location of Expat]), + [svn_lib_expat="$withval"], + [svn_lib_expat="::expat"]) + +# APR-util accepts "builtin" as an argument to this option so if the user +# passed "builtin" pretend the user didn't specify the --with-expat option +# at all. Expat will (hopefully) be found in apr-util. +test "_$svn_lib_expat" = "_builtin" && svn_lib_expat="::expat" + +AC_MSG_CHECKING([for Expat]) +if test -n "`echo "$svn_lib_expat" | $EGREP ":.*:"`"; then + SVN_XML_INCLUDES="" + for i in [`echo "$svn_lib_expat" | $SED -e "s/\([^:]*\):.*/\1/"`]; do + SVN_XML_INCLUDES="$SVN_XML_INCLUDES -I$i" + done + SVN_XML_INCLUDES="${SVN_XML_INCLUDES## }" + for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\):.*/\1/"`]; do + LDFLAGS="$LDFLAGS -L$l" + done + for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\)/\1/"`]; do + SVN_XML_LIBS="$SVN_XML_LIBS -l$l" + done + SVN_XML_LIBS="${SVN_XML_LIBS## }" + old_CPPFLAGS="$CPPFLAGS" + old_LIBS="$LIBS" + CPPFLAGS="$CPPFLAGS $SVN_XML_INCLUDES" + LIBS="$LIBS $SVN_XML_LIBS" + AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include +int main() +{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no") + LIBS="$old_LIBS" + if test "$svn_lib_expat" = "yes"; then + AC_MSG_RESULT([yes]) + else + SVN_XML_INCLUDES="" + SVN_XML_LIBS="" + CPPFLAGS="$CPPFLAGS $SVN_APRUTIL_INCLUDES" + if test "$enable_all_static" != "yes"; then + SVN_APRUTIL_LIBS="$SVN_APRUTIL_LIBS `$apu_config --libs`" + fi + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ +#include +int main() +{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no") + if test "$svn_lib_expat" = "yes"; then + AC_MSG_RESULT([yes]) + AC_MSG_WARN([Expat found amongst libraries used by APR-Util, but Subversion libraries might be needlessly linked against additional unused libraries. It can be avoided by specifying exact location of Expat in argument of --with-expat option.]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Expat not found]) + fi + fi + CPPFLAGS="$old_CPPFLAGS" +else + AC_MSG_RESULT([no]) + if test "$svn_lib_expat" = "yes"; then + AC_MSG_ERROR([--with-expat option requires argument]) + elif test "$svn_lib_expat" = "no"; then + AC_MSG_ERROR([Expat is required]) + else + AC_MSG_ERROR([Invalid syntax of argument of --with-expat option]) + fi +fi +AC_SUBST(SVN_XML_INCLUDES) +AC_SUBST(SVN_XML_LIBS) + +dnl Berkeley DB ------------------- + +# Berkeley DB on SCO OpenServer needs -lsocket +AC_CHECK_LIB(socket, socket) + +# Build the BDB filesystem library only if we have an appropriate +# version of Berkeley DB. +case "$host" in +powerpc-apple-darwin*) + # Berkeley DB 4.0 does not work on OS X. + SVN_FS_WANT_DB_MAJOR=4 + SVN_FS_WANT_DB_MINOR=1 + SVN_FS_WANT_DB_PATCH=25 + ;; +*) + SVN_FS_WANT_DB_MAJOR=4 + SVN_FS_WANT_DB_MINOR=0 + SVN_FS_WANT_DB_PATCH=14 + ;; +esac +# Look for libdb4.so first: +SVN_LIB_BERKELEY_DB($SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MINOR, + $SVN_FS_WANT_DB_PATCH, [db4 db]) + +AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MAJOR, + [The desired major version for the Berkeley DB]) +AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MINOR, $SVN_FS_WANT_DB_MINOR, + [The desired minor version for the Berkeley DB]) +AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_PATCH, $SVN_FS_WANT_DB_PATCH, + [The desired patch version for the Berkeley DB]) + +AC_SUBST(SVN_DB_INCLUDES) +AC_SUBST(SVN_DB_LIBS) + +SVN_LIB_SASL + +if test "$svn_lib_sasl" = "yes"; then + AC_DEFINE(SVN_HAVE_SASL, 1, + [Defined if Cyrus SASL v2 is present on the system]) +fi + +dnl Mac OS specific features ------------------- + +SVN_LIB_MACHO_ITERATE +SVN_LIB_MACOS_PLIST +SVN_LIB_MACOS_KEYCHAIN + +dnl APR_HAS_DSO ------------------- + +AC_MSG_CHECKING([whether APR has support for DSOs]) +old_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES" +AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ +#include +#if !APR_HAS_DSO +#error +#endif]])], + APR_HAS_DSO="yes" + AC_MSG_RESULT([yes]), + APR_HAS_DSO="no" + AC_MSG_RESULT([no])) +CPPFLAGS="$old_CPPFLAGS" + + +dnl D-Bus (required for support for KWallet) ------------------- + +if test -n "$PKG_CONFIG"; then + AC_MSG_CHECKING([for D-Bus .pc file]) + if $PKG_CONFIG --exists dbus-1; then + AC_MSG_RESULT([yes]) + old_CPPFLAGS="$CPPFLAGS" + old_LIBS="$LIBS" + DBUS_CPPFLAGS="`$PKG_CONFIG --cflags dbus-1`" + AC_MSG_CHECKING([D-Bus version]) + DBUS_VERSION="`$PKG_CONFIG --modversion dbus-1`" + AC_MSG_RESULT([$DBUS_VERSION]) + # D-Bus 0.* requires DBUS_API_SUBJECT_TO_CHANGE + if test -n ["`echo "$DBUS_VERSION" | $EGREP '^0\.[[:digit:]]+'`"]; then + DBUS_CPPFLAGS="$DBUS_CPPFLAGS -DDBUS_API_SUBJECT_TO_CHANGE" + fi + DBUS_LIBS="`$PKG_CONFIG --libs dbus-1`" + CPPFLAGS="$CPPFLAGS $DBUS_CPPFLAGS" + LIBS="$LIBS $DBUS_LIBS" + AC_MSG_CHECKING([for D-Bus]) + AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include +int main() +{dbus_bus_get(DBUS_BUS_SESSION, NULL);}]])], HAVE_DBUS="yes", HAVE_DBUS="no") + if test "$HAVE_DBUS" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + CPPFLAGS="$old_CPPFLAGS" + LIBS="$old_LIBS" + else + AC_MSG_RESULT([no]) + fi +fi + +dnl GPG Agent ------------------- + +AC_ARG_WITH(gpg_agent, +AS_HELP_STRING([--without-gpg-agent], + [Disable support for GPG-Agent]), + [], [with_gpg_agent=yes]) +AC_MSG_CHECKING([whether to support GPG-Agent]) +if test "$with_gpg_agent" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE([SVN_HAVE_GPG_AGENT], [1], + [Is GPG Agent support enabled?]) +else + AC_MSG_RESULT([no]) +fi + +AC_SUBST(SVN_HAVE_GPG_AGENT) + +dnl GNOME Keyring ------------------- + +AC_ARG_WITH(gnome_keyring, + AS_HELP_STRING([--with-gnome-keyring], + [Enable use of GNOME Keyring for auth credentials (enabled by default if found)]), + [with_gnome_keyring="$withval"], + [with_gnome_keyring=auto]) + +found_gnome_keyring=no +AC_MSG_CHECKING([whether to look for GNOME Keyring]) +if test "$with_gnome_keyring" != "no"; then + AC_MSG_RESULT([yes]) + if test "$svn_enable_shared" = "yes"; then + if test "$APR_HAS_DSO" = "yes"; then + if test -n "$PKG_CONFIG"; then + AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files]) + if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then + AC_MSG_RESULT([yes]) + old_CPPFLAGS="$CPPFLAGS" + SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`" + CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES" + AC_CHECK_HEADER(gnome-keyring.h, found_gnome_keyring=yes, found_gnome_keyring=no) + AC_MSG_CHECKING([for GNOME Keyring]) + if test "$found_gnome_keyring" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1], + [Is GNOME Keyring support enabled?]) + CPPFLAGS="$old_CPPFLAGS" + SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`" + else + AC_MSG_RESULT([no]) + if test "$with_gnome_keyring" = "yes"; then + AC_MSG_ERROR([cannot find GNOME Keyring]) + fi + fi + else + AC_MSG_RESULT([no]) + if test "$with_gnome_keyring" = "yes"; then + AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files.]) + else + with_gnome_keyring=no + fi + fi + else + if test "$with_gnome_keyring" = "yes"; then + AC_MSG_ERROR([cannot find pkg-config. GNOME Keyring requires this.]) + else + with_gnome_keyring=no + fi + fi + else + if test "$with_gnome_keyring" = "yes"; then + AC_MSG_ERROR([APR does not have support for DSOs. GNOME Keyring requires this.]) + else + with_gnome_keyring=no + fi + fi + else + if test "$with_gnome_keyring" = "yes"; then + AC_MSG_ERROR([--with-gnome-keyring conflicts with --disable-shared]) + else + with_gnome_keyring=no + fi + fi +else + AC_MSG_RESULT([no]) +fi +AC_SUBST(SVN_GNOME_KEYRING_INCLUDES) +AC_SUBST(SVN_GNOME_KEYRING_LIBS) + + +dnl Ev2 experimental features ---------------------- +dnl Note: The Ev2 implementations will be built unconditionally, but by +dnl providing this flag, users can choose to use the currently-shimmed Ev2 +dnl editor implementations for various operations. This will probably +dnl negatively impact performance, but is useful for testing. +AC_ARG_ENABLE(ev2-impl, + AS_HELP_STRING([--enable-ev2-impl], + [Use Ev2 implementations, where available [EXPERIMENTAL]]), + [enable_ev2_impl=$enableval],[enable_ev2_impl=no]) +if test "$enable_ev2_impl" = "yes"; then + AC_DEFINE(ENABLE_EV2_IMPL, 1, + [Define to 1 if Ev2 implementations should be used.]) +fi + + +dnl I18n ------------------- + +AC_ARG_ENABLE(nls, + AS_HELP_STRING([--disable-nls],[Disable gettext functionality]), + [enable_nls=$enableval],[enable_nls=yes]) + +USE_NLS="no" +if test "$enable_nls" = "yes"; then + dnl First, check to see if there is a working msgfmt. + AC_PATH_PROG(MSGFMT, msgfmt, none) + AC_PATH_PROG(MSGMERGE, msgmerge, none) + AC_PATH_PROG(XGETTEXT, xgettext, none) + if test "$MSGFMT" != "none"; then + AC_SEARCH_LIBS(bindtextdomain, [intl], [], + [ + enable_nls="no" + ]) + if test "$enable_nls" = "no"; then + # Destroy the cached result so we can test again + unset ac_cv_search_bindtextdomain + # On some systems, libintl needs libiconv to link properly, + # so try again with -liconv. + AC_SEARCH_LIBS(bindtextdomain, [intl], + [ + enable_nls="yes" + # This is here so that -liconv ends up in LIBS + # if it worked with -liconv. + AC_CHECK_LIB(iconv, libiconv_open) + ], + [ + AC_MSG_WARN([bindtextdomain() not found. Disabling NLS.]) + enable_nls="no" + ], -liconv) + fi + if test "$enable_nls" = "yes"; then + AC_DEFINE(ENABLE_NLS, 1, + [Define to 1 if translation of program messages to the user's + native language is requested.]) + USE_NLS="yes" + fi + fi +fi + +AH_BOTTOM([ +/* Indicate to translators that string X should be translated. Do not look + up the translation at run time; just expand to X. This macro is suitable + for use where a constant string is required at compile time. */ +#define N_(x) x +/* Indicate to translators that we have decided the string X should not be + translated. Expand to X. */ +#define U_(x) x +#ifdef ENABLE_NLS +#include +#include +/* Indicate to translators that string X should be translated. At run time, + look up and return the translation of X. */ +#define _(x) dgettext(PACKAGE_NAME, x) +/* Indicate to translators that strings X1 and X2 are singular and plural + forms of the same message, and should be translated. At run time, return + an appropriate translation depending on the number N. */ +#define Q_(x1, x2, n) dngettext(PACKAGE_NAME, x1, x2, n) +#else +#define _(x) (x) +#define Q_(x1, x2, n) (((n) == 1) ? x1 : x2) +#define gettext(x) (x) +#define dgettext(domain, x) (x) +#endif +]) + +dnl Used to simulate makefile conditionals. +GETTEXT_CODESET=\# +NO_GETTEXT_CODESET=\# +if test $USE_NLS = "yes"; then + AC_CHECK_FUNCS(bind_textdomain_codeset, + [ GETTEXT_CODESET="" ], + [ NO_GETTEXT_CODESET="" ]) +fi +AC_SUBST(GETTEXT_CODESET) +AC_SUBST(NO_GETTEXT_CODESET) + +# Check if we are using GNU gettext. +GNU_GETTEXT=no +MSGFMTFLAGS='' +if test $USE_NLS = "yes"; then + AC_MSG_CHECKING(if we are using GNU gettext) + if $MSGFMT --version 2>&1 | $EGREP GNU > /dev/null; then + GNU_GETTEXT=yes + MSGFMTFLAGS='-c' + fi + AC_MSG_RESULT($GNU_GETTEXT) +fi +AC_SUBST(MSGFMTFLAGS) + +dnl libmagic ------------------- + +libmagic_found=no + +AC_ARG_WITH(libmagic,AS_HELP_STRING([--with-libmagic=PREFIX], + [libmagic filetype detection library]), +[ + if test "$withval" = "yes" ; then + AC_CHECK_HEADER(magic.h, [ + AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"]) + ]) + libmagic_prefix="the default locations" + elif test "$withval" != "no"; then + libmagic_prefix=$withval + save_cppflags="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I$libmagic_prefix/include" + AC_CHECK_HEADERS(magic.h,[ + save_ldflags="$LDFLAGS" + LDFLAGS="-L$libmagic_prefix/lib" + AC_CHECK_LIB(magic, magic_open, [libmagic_found="yes"]) + LDFLAGS="$save_ldflags" + ]) + CPPFLAGS="$save_cppflags" + fi + if test "$withval" != "no" && test "$libmagic_found" = "no"; then + AC_MSG_ERROR([[--with-libmagic requested, but libmagic not found at $libmagic_prefix]]) + fi +], +[ + AC_CHECK_HEADER(magic.h, [ + AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"]) + ]) +]) + +if test "$libmagic_found" != "no"; then + AC_DEFINE([SVN_HAVE_LIBMAGIC], [1], [Defined if libmagic support is enabled]) + SVN_MAGIC_LIBS="-lmagic" +fi + +if test "$libmagic_found" = "yes"; then + SVN_MAGIC_INCLUDES="-I$libmagic_prefix/include" + LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$libmagic_prefix/lib)`" +fi + +AC_SUBST(SVN_MAGIC_INCLUDES) +AC_SUBST(SVN_MAGIC_LIBS) + +dnl KWallet ------------------- +SVN_LIB_KWALLET + +if test "$svn_lib_kwallet" = "yes"; then + AC_DEFINE([SVN_HAVE_KWALLET], 1, + [Defined if KWallet support is enabled]) +fi + +dnl plaintext passwords ------------------- +AC_ARG_ENABLE(plaintext-password-storage, +AS_HELP_STRING([--disable-plaintext-password-storage], + [Disable on-disk caching of plaintext passwords and passphrases. + (Leaving this functionality enabled will not force Subversion + to store passwords in plaintext, but does permit users to + explicitly allow that behavior via runtime configuration.)]), +[ + if test "$enableval" = "no"; then + AC_MSG_NOTICE([Disabling plaintext password/passphrase storage]) + AC_DEFINE(SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE, 1, + [Defined if plaintext password/passphrase storage is disabled]) + fi +]) + +dnl Build and install rules ------------------- + +INSTALL_STATIC_RULES="install-bin install-docs" +INSTALL_RULES="install-fsmod-lib install-ramod-lib install-lib install-include install-static" +INSTALL_RULES="$INSTALL_RULES $INSTALL_APACHE_RULE" +BUILD_RULES="fsmod-lib ramod-lib lib bin test sub-test $BUILD_APACHE_RULE tools" + +if test "$svn_lib_berkeley_db" = "yes"; then + BUILD_RULES="$BUILD_RULES bdb-lib bdb-test" + INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-fsmod-lib/install-fsmod-lib install-bdb-lib/'`" + INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-bdb-lib" + BDB_TEST_DEPS="\$(BDB_TEST_DEPS)" + BDB_TEST_PROGRAMS="\$(BDB_TEST_PROGRAMS)" +fi + +if test "$svn_lib_serf" = "yes"; then + BUILD_RULES="$BUILD_RULES serf-lib" + INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-ramod-lib/install-ramod-lib install-serf-lib/'`" + INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-serf-lib" +fi + +if test "$svn_lib_kwallet" = "yes"; then + BUILD_RULES="$BUILD_RULES kwallet-lib" + INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-kwallet-lib/'`" + INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-kwallet-lib" +fi + +if test "$found_gnome_keyring" = "yes"; then + BUILD_RULES="$BUILD_RULES gnome-keyring-lib" + INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-gnome-keyring-lib/'`" + INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-gnome-keyring-lib" +fi + +if test "$USE_NLS" = "yes"; then + BUILD_RULES="$BUILD_RULES locale" + INSTALL_RULES="$INSTALL_RULES install-locale" +fi + +AC_SUBST(BUILD_RULES) +AC_SUBST(INSTALL_STATIC_RULES) +AC_SUBST(INSTALL_RULES) +AC_SUBST(BDB_TEST_DEPS) +AC_SUBST(BDB_TEST_PROGRAMS) + +dnl Check for header files ---------------- + +dnl Standard C headers +AC_HEADER_STDC + +dnl Check for typedefs, structures, and compiler characteristics ---------- + +dnl if compiler doesn't understand `const', then define it empty +AC_C_CONST + +dnl if non-existent, define size_t to be `unsigned' +AC_TYPE_SIZE_T + + +dnl Check for library functions ---------- + +AC_FUNC_MEMCMP + +dnl svn_error's default warning handler uses vfprintf() +AC_FUNC_VPRINTF + +dnl check for functions needed in special file handling +AC_CHECK_FUNCS(symlink readlink) + +dnl check for uname +AC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], []) + +dnl check for termios +AC_CHECK_HEADER(termios.h,[ + AC_CHECK_FUNCS(tcgetattr tcsetattr,[ + AC_DEFINE(HAVE_TERMIOS_H,1,[Defined if we have a usable termios library.]) + ]) +]) + +dnl Process some configuration options ---------- + +AC_ARG_WITH(openssl, +AS_HELP_STRING([--with-openssl], + [This option does NOT affect the Subversion build process in any + way. It tells an integrated Serf HTTP client library build + process where to locate the OpenSSL library when (and only when) + building Serf as an integrated part of the Subversion build + process. When linking to a previously installed version of Serf + instead, you do not need to use this option.]), +[]) + +AC_ARG_ENABLE(debug, +AS_HELP_STRING([--enable-debug], + [Turn on debugging]), +[ + if test "$enableval" = "yes" ; then + enable_debugging="yes" + else + enable_debugging="no" + fi +], +[ + # Neither --enable-debug nor --disable-debug was passed. + enable_debugging="maybe" +]) + +AC_ARG_ENABLE(optimize, +AS_HELP_STRING([--enable-optimize], + [Turn on optimizations]), +[ + if test "$enableval" = "yes" ; then + enable_optimization="yes" + else + enable_optimization="no" + fi +], +[ + # Neither --enable-optimize nor --disable-optimize was passed. + enable_optimization="maybe" +]) + +dnl Use -Wl,--no-undefined during linking of some libraries +AC_ARG_ENABLE(disallowing-of-undefined-references, + [AS_HELP_STRING([--enable-disallowing-of-undefined-references], + [Use -Wl,--no-undefined flag during linking of some libraries to disallow undefined references])]) +if test "$enable_disallowing_of_undefined_references" != "yes" && test "`uname`" != "Linux"; then + enable_disallowing_of_undefined_references="no" +fi +if test "$enable_disallowing_of_undefined_references" != "no"; then + AC_MSG_CHECKING([for -Wl,--no-undefined]) + old_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,--no-undefined" + AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(){;}]])], [svn_wl_no_undefined="yes"], [svn_wl_no_undefined="no"]) + LDFLAGS="$old_LDFLAGS" + if test "$svn_wl_no_undefined" = "yes"; then + AC_MSG_RESULT([yes]) + for library_dir in "$abs_srcdir/subversion/libsvn_"*; do + eval "`basename $library_dir`_LDFLAGS=-Wl,--no-undefined" + done + else + AC_MSG_RESULT([no]) + if test "$enable_disallowing_of_undefined_references" = "yes"; then + AC_MSG_ERROR([--enable-disallowing-of-undefined-references explicitly requested, but -Wl,--no-undefined not supported]) + fi + fi +fi +AC_SUBST([libsvn_auth_gnome_keyring_LDFLAGS]) +AC_SUBST([libsvn_auth_kwallet_LDFLAGS]) +AC_SUBST([libsvn_client_LDFLAGS]) +AC_SUBST([libsvn_delta_LDFLAGS]) +AC_SUBST([libsvn_diff_LDFLAGS]) +AC_SUBST([libsvn_fs_LDFLAGS]) +AC_SUBST([libsvn_fs_base_LDFLAGS]) +AC_SUBST([libsvn_fs_fs_LDFLAGS]) +AC_SUBST([libsvn_fs_util_LDFLAGS]) +AC_SUBST([libsvn_ra_LDFLAGS]) +AC_SUBST([libsvn_ra_local_LDFLAGS]) +AC_SUBST([libsvn_ra_serf_LDFLAGS]) +AC_SUBST([libsvn_ra_svn_LDFLAGS]) +AC_SUBST([libsvn_repos_LDFLAGS]) +AC_SUBST([libsvn_subr_LDFLAGS]) +AC_SUBST([libsvn_wc_LDFLAGS]) + + +AC_ARG_ENABLE(maintainer-mode, +AS_HELP_STRING([--enable-maintainer-mode], + [Turn on debugging and very strict compile-time warnings]), +[ + if test "$enableval" = "yes" ; then + if test "$enable_debugging" = "no" ; then + AC_MSG_ERROR([Can't have --disable-debug and --enable-maintainer-mode]) + fi + enable_debugging=yes + + dnl Enable some extra warnings. Put these before the user's flags + dnl so the user can specify flags that override these. + if test "$GCC" = "yes"; then + AC_MSG_NOTICE([maintainer-mode: adding GCC warning flags]) + + dnl some additional flags that can be handy for an occasional review, + dnl but throw too many warnings in svn code, of too little importance, + dnl to keep these enabled. Remove the "dnl" to do a run with these + dnl switches enabled. + dnl ./configure CUSERFLAGS="-Wswitch-enum -Wswitch-default" + + dnl Add each of the following flags only if the C compiler accepts it. + CFLAGS_KEEP="$CFLAGS" + CFLAGS="" + + SVN_CFLAGS_ADD_IFELSE([-Werror=implicit-function-declaration]) + SVN_CFLAGS_ADD_IFELSE([-Werror=declaration-after-statement]) + SVN_CFLAGS_ADD_IFELSE([-Wextra-tokens]) + SVN_CFLAGS_ADD_IFELSE([-Wnewline-eof]) + SVN_CFLAGS_ADD_IFELSE([-Wshorten-64-to-32]) + SVN_CFLAGS_ADD_IFELSE([-Wold-style-definition]) + SVN_CFLAGS_ADD_IFELSE([-Wno-system-headers]) + SVN_CFLAGS_ADD_IFELSE([-Wno-format-nonliteral]) + + CMAINTAINERFLAGS="$CFLAGS $CMAINTAINERFLAGS" + CFLAGS="$CFLAGS_KEEP" + + dnl Add flags that all versions of GCC (should) support + CMAINTAINERFLAGS="-Wall -Wpointer-arith -Wwrite-strings -Wshadow -Wformat=2 -Wunused -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wno-multichar -Wredundant-decls -Wnested-externs -Winline -Wno-long-long $CMAINTAINERFLAGS" + fi + if test "$GXX" = "yes"; then + AC_MSG_NOTICE([maintainer-mode: adding G++ warning flags]) + + dnl Add each of the following flags only if the C++ compiler accepts it. + CXXFLAGS_KEEP="$CXXFLAGS" + CXXFLAGS="" + + SVN_CXXFLAGS_ADD_IFELSE([-Wextra-tokens]) + SVN_CXXFLAGS_ADD_IFELSE([-Wnewline-eof]) + SVN_CXXFLAGS_ADD_IFELSE([-Wshorten-64-to-32]) + SVN_CXXFLAGS_ADD_IFELSE([-Wno-system-headers]) + + CXXMAINTAINERFLAGS="$CXXFLAGS $CXXMAINTAINERFLAGS" + CXXFLAGS="$CXXFLAGS_KEEP" + + dnl Add flags that all versions of G++ (should) support + CXXMAINTAINERFLAGS="-Wall -Wpointer-arith -Wwrite-strings -Wshadow -Wunused -Wunreachable-code $CXXMAINTAINERFLAGS" + fi + fi +]) + +if test "$enable_debugging" = "yes" ; then + dnl At the moment, we don't want optimization, because we're + dnl debugging. Unless optiization was explicitly enabled. + if test "$enable_optimization" != "yes"; then + AC_MSG_NOTICE([Disabling optimizations for debugging]) + CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] + CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] + fi + dnl Add debugging flags, unless they were set by the user + if test -z ["`echo $CUSERFLAGS' ' | $EGREP -- '-g[0-9]? '`"]; then + AC_MSG_NOTICE([Enabling debugging for C]) + CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] + SVN_CFLAGS_ADD_IFELSE([-fno-inline]) + SVN_CFLAGS_ADD_IFELSE([-fno-omit-frame-pointer]) + SVN_CFLAGS_ADD_IFELSE([-g3],[],[ + SVN_CFLAGS_ADD_IFELSE([-g2],[],[ + SVN_CFLAGS_ADD_IFELSE([-g])])]) + fi + if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-g[0-9]? '`"]; then + AC_MSG_NOTICE([Enabling debugging for C++]) + CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] + SVN_CXXFLAGS_ADD_IFELSE([-fno-inline]) + SVN_CXXFLAGS_ADD_IFELSE([-fno-omit-frame-pointer]) + SVN_CXXFLAGS_ADD_IFELSE([-g3],[],[ + SVN_CXXFLAGS_ADD_IFELSE([-g2],[],[ + SVN_CXXFLAGS_ADD_IFELSE([-g])])]) + fi + dnl SVN_DEBUG enables specific features for developer builds + dnl AP_DEBUG enables specific (Apache) features for developer builds + CFLAGS="$CFLAGS -DSVN_DEBUG -DAP_DEBUG" + CXXFLAGS="$CXXFLAGS -DSVN_DEBUG -DAP_DEBUG" +elif test "$enable_debugging" = "no" ; then + AC_MSG_NOTICE([Disabling debugging]) + CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] + CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] + dnl Compile with NDEBUG to get rid of assertions + CFLAGS="$CFLAGS -DNDEBUG" + CXXFLAGS="$CXXFLAGS -DNDEBUG" +# elif test "$enable_debugging" = "maybe" ; then +# # do nothing +fi + +if test "$enable_optimization" = "yes"; then + dnl Add optimization flags, unless they were set by the user + if test -z ["`echo $CUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then + CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] + if test "$enable_debugging" = "yes"; then + AC_MSG_NOTICE([Enabling optimizations for C (with debugging enabled)]) + SVN_CFLAGS_ADD_IFELSE([-O1],[],[ + SVN_CFLAGS_ADD_IFELSE([-O])]) + else + AC_MSG_NOTICE([Enabling optimizations for C]) + SVN_CFLAGS_ADD_IFELSE([-O3],[],[ + SVN_CFLAGS_ADD_IFELSE([-O2],[],[ + SVN_CFLAGS_ADD_IFELSE([-O1],[],[ + SVN_CFLAGS_ADD_IFELSE([-O])])])]) + SVN_CFLAGS_ADD_IFELSE([-Wno-clobbered]) + SVN_CFLAGS_ADD_IFELSE([-flto]) + SVN_CFLAGS_ADD_IFELSE([-fwhole-program]) + fi + fi + if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then + CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] + if test "$enable_debugging" = "yes"; then + AC_MSG_NOTICE([Enabling optimizations for C++ (with debugging enabled)]) + SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[ + SVN_CXXFLAGS_ADD_IFELSE([-O])]) + else + AC_MSG_NOTICE([Enabling optimizations for C++]) + SVN_CXXFLAGS_ADD_IFELSE([-O3],[],[ + SVN_CXXFLAGS_ADD_IFELSE([-O2],[],[ + SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[ + SVN_CXXFLAGS_ADD_IFELSE([-O])])])]) + SVN_CXXFLAGS_ADD_IFELSE([-Wno-clobbered]) + SVN_CXXFLAGS_ADD_IFELSE([-flto]) + SVN_CXXFLAGS_ADD_IFELSE([-fwhole-program]) + fi + fi +elif test "$enable_optimization" = "no"; then + dnl Remove all optimization flags + AC_MSG_NOTICE([Disabling optimizations]) + CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] + CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] +# elif test "$enable_optimization" = "maybe" ; then +# # do nothing +fi + + +AC_ARG_ENABLE(full-version-match, +AS_HELP_STRING([--disable-full-version-match], + [Disable the full version match rules when checking + Subversion library compatibility.]), +[ + if test "$enableval" = "no" ; then + AC_MSG_NOTICE([Disabling svn full version matching]) + AC_DEFINE(SVN_DISABLE_FULL_VERSION_MATCH, 1, + [Defined if the full version matching rules are disabled]) + fi +]) + +AC_ARG_WITH(editor, +AS_HELP_STRING([--with-editor=PATH], + [Specify a default editor for the subversion client.]), +[ + + if test "$withval" = "yes" ; then + AC_MSG_ERROR([--with-editor requires an argument.]) + else + SVN_CLIENT_EDITOR=$withval + AC_DEFINE_UNQUOTED(SVN_CLIENT_EDITOR, "$SVN_CLIENT_EDITOR", + [The path of a default editor for the client.]) + + fi + +]) + +SVN_LIB_Z + +MOD_ACTIVATION="" +AC_ARG_ENABLE(mod-activation, +AS_HELP_STRING([--enable-mod-activation], + [Enable mod_dav_svn in httpd.conf]), +[ + if test "$enableval" = "yes" ; then + MOD_ACTIVATION="-a" + AC_MSG_NOTICE([Enabling apache module activation]) + else + AC_MSG_NOTICE([Disabling apache module activation]) + fi +]) +AC_SUBST(MOD_ACTIVATION) + + + +AC_ARG_ENABLE(gcov, +AC_HELP_STRING([--enable-gcov], + [Turn on gcov coverage testing (GCC only).]), +[ + if test "$enableval" = "yes" ; then + dnl Probably other compilers support something similar; + dnl feel free to extend this to include them. + if test "$GCC" = "yes"; then + if test "$svn_enable_shared" = "yes" ; then + AC_MSG_ERROR([Can't have --enable-gcov without --disable-shared (we + recommend also using --enable-all-static).]) + fi + if test ! "$enable_all_static" = "yes" ; then + AC_MSG_WARN(We recommend --enable-all-static with --enable-gcov.) + fi + AC_MSG_NOTICE([Enabling gcov coverage testing.]) + CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" + CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage" + else + AC_MSG_ERROR([We only support --enable-gcov with GCC right now.]) + fi + fi +]) + +AC_ARG_ENABLE(gprof, +AS_HELP_STRING([--enable-gprof], + [Produce gprof profiling data in 'gmon.out' (GCC only).]), +[ + if test "$enableval" = "yes" ; then + dnl Probably other compilers support -pg or something similar; + dnl feel free to extend this to include them. + if test "$GCC" = "yes"; then + if test "$svn_enable_shared" = "yes" ; then + AC_MSG_ERROR([Can't have --enable-gprof without --disable-shared (we + recommend also using --enable-all-static).]) + fi + if test ! "$enable_all_static" = "yes" ; then + AC_MSG_WARN(We recommend --enable-all-static with --enable-gprof.) + fi + AC_MSG_NOTICE([Enabling gprof profiling data (to gmon.out).]) + CFLAGS="$CFLAGS -pg" + CXXFLAGS="$CXXFLAGS -pg" + LT_LDFLAGS="$LT_LDFLAGS -pg" + else + AC_MSG_ERROR([We only support --enable-gprof with GCC right now.]) + fi + fi +]) + + +# Scripting and Bindings languages + +# Python: Used for testsuite, and bindings + + +PYTHON="`$abs_srcdir/build/find_python.sh`" +if test -z "$PYTHON"; then + AC_MSG_WARN([Python 2.5 or later is required to run the testsuite]) + AC_MSG_WARN([or to use the Subversion Python bindings]) + AC_MSG_WARN([]) + AC_MSG_WARN([If you have a suitable Python installed, but not on the]) + AC_MSG_WARN([PATH, set the environment variable PYTHON to the full path]) + AC_MSG_WARN([to the Python executable, and re-run configure]) +fi +AC_PATH_PROGS(PYTHON, "$PYTHON", none) + +# The minimum version for the JVM runtime for our Java bytecode. +JAVA_OLDEST_WORKING_VER='1.5' +# SVN_CHECK_JDK sets $JAVA_CLASSPATH +SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER) + +AC_PATH_PROG(PERL, perl, none) + +if test -n "$RUBY"; then + AC_PATH_PROG(RUBY, "$RUBY", none) +else + AC_PATH_PROGS(RUBY, ruby ruby1.8 ruby18 ruby1.9 ruby1 ruby1.9.3 ruby193, none) +fi +if test "$RUBY" != "none"; then + AC_MSG_CHECKING([rb_hash_foreach]) + if "$RUBY" -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)' >/dev/null; then + AC_MSG_RESULT([yes]) + if test -n "$RDOC"; then + AC_PATH_PROG(RDOC, "$RDOC", none) + else + AC_PATH_PROGS(RDOC, rdoc rdoc1.8 rdoc18 rdoc1.9 rdoc19 rdoc1.9.3 rdoc193, none) + fi + AC_CACHE_CHECK([for Ruby major version], [svn_cv_ruby_major],[ + svn_cv_ruby_major="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MAJOR))'`" + ]) + RUBY_MAJOR="$svn_cv_ruby_major" + + AC_CACHE_CHECK([for Ruby minor version], [svn_cv_ruby_minor],[ + svn_cv_ruby_minor="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MINOR))'`" + ]) + RUBY_MINOR="$svn_cv_ruby_minor" + + AC_CACHE_CHECK([for Ruby teeny version], [svn_cv_ruby_teeny],[ + svn_cv_ruby_teeny="`$RUBY -rrbconfig -e 'major, minor, teeny = RUBY_VERSION.split("."); print teeny;'`" + ]) + RUBY_TEENY="$svn_cv_ruby_teeny" + + AC_SUBST(RUBY_MAJOR) + AC_SUBST(RUBY_MINOR) + AC_SUBST(RUBY_TEENY) + if test \( "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -gt "8" -a "$RUBY_TEENY" -lt "3" \); then + # Disallow Ruby between 1.8.7 and 1.9.3 + RUBY="none" + AC_MSG_WARN([The detected Ruby is between 1.9 and 1.9.3]) + AC_MSG_WARN([Only 1.8.x and 1.9.3 releases are supported at this time]) + elif test \( "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -eq "9" -a "$RUBY_TEENY" -eq "3" \); then + #Warn about 1.9.3 support + AC_MSG_WARN([WARNING: The detected Ruby is 1.9.3]) + AC_MSG_WARN([WARNING: Only 1.8.x releases are fully supported, 1.9.3 support is new]) + fi + else + AC_MSG_RESULT([no]) + RUBY="none" + AC_MSG_WARN([The detected Ruby is too old for Subversion to use]) + AC_MSG_WARN([A Ruby which has rb_hash_foreach is required to use the]) + AC_MSG_WARN([Subversion Ruby bindings]) + AC_MSG_WARN([Upgrade to the official 1.8.2 release, or later]) + fi +fi + +SVN_CHECK_SWIG + +SVN_CHECK_CTYPESGEN + +dnl decide whether we want to link against the RA/FS libraries +AC_ARG_ENABLE(runtime-module-search, +AS_HELP_STRING([--enable-runtime-module-search], + [Turn on dynamic loading of RA/FS libraries including + third-party FS libraries]), +[ + if test "$enableval" = "yes"; then + use_dso=yes + if test "$svn_enable_shared" = "no"; then + AC_MSG_ERROR([--enable-runtime-module-search conflicts with --disable-shared]) + fi + AC_DEFINE(SVN_USE_DSO, 1, + [Defined if svn should try to load DSOs]) + fi +]) + +if test "$svn_enable_shared" = "no" || test "$use_dso" != "yes"; then + AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL, 1, + [Defined if libsvn_client should link against libsvn_ra_local]) + svn_ra_lib_deps="\$(RA_LOCAL_DEPS)" + svn_ra_lib_install_deps="install-ramod-lib" + svn_ra_lib_link="\$(RA_LOCAL_LINK)" + + AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_SVN, 1, + [Defined if libsvn_client should link against libsvn_ra_svn]) + svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SVN_DEPS)" + svn_ra_lib_link="$svn_ra_lib_link \$(RA_SVN_LINK)" + + if test "$svn_lib_serf" = "yes"; then + AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_SERF, 1, + [Defined if libsvn_client should link against libsvn_ra_serf]) + svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SERF_DEPS)" + svn_ra_lib_install_deps="$svn_ra_lib_install_deps install-serf-lib" + svn_ra_lib_link="$svn_ra_lib_link \$(RA_SERF_LINK)" + fi + + SVN_RA_LIB_DEPS=$svn_ra_lib_deps + SVN_RA_LIB_INSTALL_DEPS=$svn_ra_lib_install_deps + SVN_RA_LIB_LINK=$svn_ra_lib_link + + AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_FS, 1, + [Defined if libsvn_fs should link against libsvn_fs_fs]) + svn_fs_lib_deps="\$(FS_FS_DEPS)" + svn_fs_lib_install_deps="install-fsmod-lib" + svn_fs_lib_link="\$(FS_FS_LINK)" + + if test "$svn_lib_berkeley_db" = "yes"; then + AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_BASE, 1, + [Defined if libsvn_fs should link against libsvn_fs_base]) + svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_BASE_DEPS)" + svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-bdb-lib" + svn_fs_lib_link="$svn_fs_lib_link \$(FS_BASE_LINK)" + fi + + SVN_FS_LIB_DEPS=$svn_fs_lib_deps + SVN_FS_LIB_INSTALL_DEPS=$svn_fs_lib_install_deps + SVN_FS_LIB_LINK=$svn_fs_lib_link +fi + +AC_SUBST(SVN_RA_LIB_DEPS) +AC_SUBST(SVN_RA_LIB_INSTALL_DEPS) +AC_SUBST(SVN_RA_LIB_LINK) +AC_SUBST(SVN_FS_LIB_DEPS) +AC_SUBST(SVN_FS_LIB_INSTALL_DEPS) +AC_SUBST(SVN_FS_LIB_LINK) + +# ==== JavaHL ================================================================ + +dnl Possibly compile JavaHL +do_javahl_build=no +AC_ARG_ENABLE(javahl, + AS_HELP_STRING([--enable-javahl], + [Enable compilation of Java high-level bindings (requires C++)]), + [ if test "$enableval" = "yes" ; then + do_javahl_build="yes" + fi + ]) + +JAVAHL_OBJDIR="" +INSTALL_EXTRA_JAVAHL_LIB="" +FIX_JAVAHL_LIB="" +JAVAHL_TESTS_TARGET="" +JAVAHL_COMPAT_TESTS_TARGET="" +LT_CXX_LIBADD="" +if test "$do_javahl_build" = "yes"; then + dnl Check for suitable JDK + if test "$JDK_SUITABLE" = "no"; then + AC_MSG_ERROR([Cannot compile JavaHL without a suitable JDK. + Please specify a suitable JDK using the --with-jdk option.]) + fi + + dnl The temporary directory where libtool compiles libsvnjavahl. + JAVAHL_OBJDIR='$(libsvnjavahl_PATH)/.libs' + + os_arch=`uname` + if test "$os_arch" = "Darwin"; then + dnl On Darwin, JNI libs must be installed as .jnilib + INSTALL_EXTRA_JAVAHL_LIB='ln -sf $(libdir)/libsvnjavahl-1.dylib $(libdir)/libsvnjavahl-1.jnilib' + FIX_JAVAHL_LIB="ln -sf libsvnjavahl-1.dylib $JAVAHL_OBJDIR/libsvnjavahl-1.jnilib" + fi + # This segment (and the rest of r10800) is very likely unnecessary + # with libtool 1.5, which automatically adds libstdc++ as a + # dependency to the C++ libraries it builds. So at some future time + # when autogen.sh requires libtool 1.5 or higher, we can get rid of + # it. + AC_MSG_CHECKING([for additional flags to link C++ libraries]) + if test "x$ac_compiler_gnu" = "xyes"; then + LT_CXX_LIBADD="-lstdc++" + AC_MSG_RESULT([$LT_CXX_LIBADD]) + else + AC_MSG_RESULT([none needed]) + fi +fi +AC_SUBST(INSTALL_EXTRA_JAVAHL_LIB) +AC_SUBST(JAVAHL_OBJDIR) +AC_SUBST(FIX_JAVAHL_LIB) +AC_SUBST(LT_CXX_LIBADD) + +AC_ARG_WITH(junit, +AS_HELP_STRING([--with-junit=PATH], + [Specify a path to the junit JAR file.]), +[ + if test "$withval" != "no"; then + if test -n "$JAVA_CLASSPATH"; then + JAVA_CLASSPATH="$withval:$JAVA_CLASSPATH" + else + JAVA_CLASSPATH="$withval" + fi + JAVAHL_TESTS_TARGET="javahl-tests" + JAVAHL_COMPAT_TESTS_TARGET="javahl-compat-tests" + fi +]) +AC_SUBST(JAVA_CLASSPATH) +AC_SUBST(JAVAHL_TESTS_TARGET) +AC_SUBST(JAVAHL_COMPAT_TESTS_TARGET) + +# ==== Miscellaneous bits ==================================================== + +# Strip '-no-cpp-precomp' from CPPFLAGS for the clang compiler +### I think we get this flag from APR, so the fix probably belongs there +if test "$CC" = "clang"; then + SVN_STRIP_FLAG(CPPFLAGS, [-no-cpp-precomp ]) +fi + +dnl Since this is used only on Unix-y systems, define the path separator as '/' +AC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/', + [Defined to be the path separator used on your local filesystem]) + +AC_DEFINE_UNQUOTED(SVN_NULL_DEVICE_NAME, "/dev/null", + [Defined to be the null device for the system]) + +DEFAULT_FS_TYPE="fsfs" +AC_DEFINE_UNQUOTED(DEFAULT_FS_TYPE, "$DEFAULT_FS_TYPE", + [The fs type to use by default]) + +DEFAULT_HTTP_LIBRARY="serf" +AC_DEFINE_UNQUOTED(DEFAULT_HTTP_LIBRARY, "$DEFAULT_HTTP_LIBRARY", + [The http library to use by default]) + +# BSD/OS (BSDi) needs to use a different include syntax in Makefile +INCLUDE_OUTPUTS="include \$(top_srcdir)/build-outputs.mk" +case "$host" in + *bsdi*) + # Check whether they've installed GNU make + if ! make --version > /dev/null 2>&1; then + # BSDi make + INCLUDE_OUTPUTS=".include \"\$(top_srcdir)/build-outputs.mk\"" + fi + ;; +esac +AC_SUBST(INCLUDE_OUTPUTS) + +# ==== Detection complete - output and run config.status ===================== + +AC_CONFIG_HEADERS(subversion/svn_private_config.h.tmp:subversion/svn_private_config.h.in) +AC_CONFIG_COMMANDS([svn_private_config.h.tmp], + [svn_cf=subversion/svn_private_config.h; + $SED -e "s/@SVN_DB_HEADER@/$SVN_DB_HEADER/" $svn_cf.tmp > $svn_cf.tmp.new + cmp -s $svn_cf.tmp.new $svn_cf || mv -f $svn_cf.tmp.new $svn_cf + rm -f $svn_cf.tmp.new $svn_cf.tmp], + [SED="$SED" + SVN_DB_HEADER="$SVN_DB_HEADER"]) +AC_CONFIG_FILES([Makefile]) + +SVN_CONFIG_SCRIPT(tools/backup/hot-backup.py) +SVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl) +SVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL) +if test -e packages/solaris/pkginfo.in; then + SVN_CONFIG_SCRIPT(packages/solaris/pkginfo) +fi +AC_SUBST(SVN_CONFIG_SCRIPT_FILES) + +# Ensure that SWIG is checked after reconfiguration. +rm -f .swig_checked + +dnl Provide ${host} for use in compiled code (for svn --version) +AC_DEFINE_UNQUOTED([SVN_BUILD_HOST], "${host}", + [Defined to the config.guess name of the build system]) + +dnl Provide ${target} for use in compiled code (for user-agent string) +AC_DEFINE_UNQUOTED([SVN_BUILD_TARGET], "${target}", + [Defined to the config.guess name of the build target]) + +AC_OUTPUT + +# ==== Print final messages to user ========================================== + +dnl Configure is long - users tend to miss warnings printed during it. +dnl Hence, print a warnings about what we did and didn't configure at the +dnl end, where people will actually see them. + +if test "$svn_lib_berkeley_db" = "no" && test "$with_berkeley_db" != "no"; then + db_version="$SVN_FS_WANT_DB_MAJOR.$SVN_FS_WANT_DB_MINOR.$SVN_FS_WANT_DB_PATCH" + AC_MSG_WARN([we have configured without BDB filesystem support + + +You don't seem to have Berkeley DB version $db_version or newer +installed and linked to APR-UTIL. We have created a Makefile which will build +Subversion without support for the Berkeley DB back-end. You can find the +latest version of Berkeley DB here: + + http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html + +or explicitly specify --without-berkeley-db to silence this warning. +]) +fi -- cgit v1.1