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