1687 lines
57 KiB
Plaintext
1687 lines
57 KiB
Plaintext
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)
|
|
CUSERFLAGS="$CFLAGS"
|
|
AC_PROG_CC
|
|
SVN_CC_MODE_SETUP
|
|
|
|
# Look for a C++ compiler (before anything can set CXXFLAGS)
|
|
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 "\)".
|
|
|
|
APR_VER_REGEXES=["1\.[5-9]\. 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)
|
|
SVN_APR_MAJOR_VERSION=2
|
|
else
|
|
svn_lib_ver=0
|
|
APU_VER_REGEXES=["1\.[3-9]\."]
|
|
SVN_LIB_APRUTIL($APU_VER_REGEXES)
|
|
SVN_APR_MAJOR_VERSION=1
|
|
fi
|
|
AC_SUBST(SVN_APR_MAJOR_VERSION)
|
|
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,3,4)
|
|
|
|
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
|
|
|
|
AC_ARG_ENABLE(apache-whitelist,
|
|
AS_HELP_STRING([--enable-apache-whitelist=VER],
|
|
[Whitelist a particular Apache version number,
|
|
typically used to enable the use of a old version
|
|
patched by a distribution.]),
|
|
[apache_whitelist_ver=$enableval],
|
|
[apache_whitelist_ver=no])
|
|
HTTPD_WHITELIST="$apache_whitelist_ver"
|
|
AC_SUBST(HTTPD_WHITELIST)
|
|
|
|
dnl Find Apache with a recent-enough magic module number
|
|
SVN_FIND_APACHE(20051115, $apache_whitelist_ver)
|
|
|
|
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.8.2"
|
|
SQLITE_RECOMMENDED_VER="3.8.11.1"
|
|
dnl Used to construct the SQLite download URL.
|
|
SQLITE_RECOMMENDED_VER_REL_YEAR="2015"
|
|
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"
|
|
|
|
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 "${prefix}" = "NONE" \
|
|
&& ( test "${datadir}" = '${prefix}/share' \
|
|
|| ( test "${datadir}" = '${datarootdir}' \
|
|
&& test "${datarootdir}" = '${prefix}/share' ) ); 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)
|
|
|
|
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 <expat.h>
|
|
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 <expat.h>
|
|
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
|
|
db_alt_version="5.x"
|
|
# 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 <apr.h>
|
|
#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 <dbus/dbus.h>
|
|
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(old_gnome_keyring,
|
|
AS_HELP_STRING([--with-old-gnome-keyring],
|
|
[Enable old GNOME Keyring for auth credentials (prefer --with-gnome-keyring)]),
|
|
[with_old_gnome_keyring="$withval"],
|
|
[with_old_gnome_keyring=no])
|
|
|
|
found_old_gnome_keyring=no
|
|
AC_MSG_CHECKING([whether to look for old GNOME Keyring])
|
|
if test "$with_old_gnome_keyring" != "no"; then
|
|
AC_MSG_RESULT([yes])
|
|
case "$host" in
|
|
*-*-darwin*)
|
|
if test "$with_old_gnome_keyring" = "yes"; then
|
|
AC_MSG_ERROR([--with-old-gnome-keyring is not supported on Mac OS X.])
|
|
else
|
|
with_old_gnome_keyring=no
|
|
fi
|
|
;;
|
|
*)
|
|
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_old_gnome_keyring=yes, found_old_gnome_keyring=no)
|
|
AC_MSG_CHECKING([for GNOME Keyring])
|
|
if test "$found_old_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`"
|
|
SVN_GNOME_KEYRING_PCLIBS="glib-2.0, gnome-keyring-1"
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
if test "$with_old_gnome_keyring" = "yes"; then
|
|
AC_MSG_ERROR([cannot find GNOME Keyring])
|
|
fi
|
|
fi
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
if test "$with_old_gnome_keyring" = "yes"; then
|
|
AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files.])
|
|
else
|
|
with_old_gnome_keyring=no
|
|
fi
|
|
fi
|
|
else
|
|
if test "$with_old_gnome_keyring" = "yes"; then
|
|
AC_MSG_ERROR([cannot find pkg-config. GNOME Keyring requires this.])
|
|
else
|
|
with_old_gnome_keyring=no
|
|
fi
|
|
fi
|
|
else
|
|
if test "$with_old_gnome_keyring" = "yes"; then
|
|
AC_MSG_ERROR([APR does not have support for DSOs. GNOME Keyring requires this.])
|
|
else
|
|
with_old_gnome_keyring=no
|
|
fi
|
|
fi
|
|
else
|
|
if test "$with_old_gnome_keyring" = "yes"; then
|
|
AC_MSG_ERROR([--with-old-gnome-keyring conflicts with --disable-shared])
|
|
else
|
|
with_old_gnome_keyring=no
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
AC_SUBST(SVN_GNOME_KEYRING_INCLUDES)
|
|
AC_SUBST(SVN_GNOME_KEYRING_LIBS)
|
|
|
|
dnl LibSecret -------------------
|
|
SVN_LIB_SECRET
|
|
|
|
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"
|
|
SVN_INTL_LIBS=""
|
|
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],
|
|
[
|
|
# in case libintl needs to be linked explicitly,
|
|
# $ac_cv_search_bindtextdomain contains -l linker flags
|
|
if echo "$ac_cv_search_bindtextdomain" | grep '^-l' >/dev/null
|
|
then
|
|
SVN_INTL_LIBS="$ac_cv_search_bindtextdomain"
|
|
fi
|
|
],
|
|
[
|
|
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"
|
|
if echo "$ac_cv_search_bindtextdomain" | grep '^-l' >/dev/null
|
|
then
|
|
SVN_INTL_LIBS="$ac_cv_search_bindtextdomain"
|
|
fi
|
|
# 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
|
|
|
|
AC_SUBST(SVN_INTL_LIBS)
|
|
|
|
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 <locale.h>
|
|
#include <libintl.h>
|
|
/* 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
|
|
|
|
/* compiler hints */
|
|
#if defined(__GNUC__) && (__GNUC__ >= 3)
|
|
# define SVN__PREDICT_FALSE(x) (__builtin_expect(x, 0))
|
|
# define SVN__PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))
|
|
#else
|
|
# define SVN__PREDICT_FALSE(x) (x)
|
|
# define SVN__PREDICT_TRUE(x) (x)
|
|
#endif
|
|
|
|
#if defined(SVN_DEBUG)
|
|
# define SVN__FORCE_INLINE
|
|
# define SVN__PREVENT_INLINE
|
|
#elif defined(__GNUC__)
|
|
# define SVN__FORCE_INLINE APR_INLINE __attribute__ ((always_inline))
|
|
# define SVN__PREVENT_INLINE __attribute__ ((noinline))
|
|
#else
|
|
# define SVN__FORCE_INLINE APR_INLINE
|
|
# define SVN__PREVENT_INLINE
|
|
#endif
|
|
|
|
/* Macro used to specify that a variable is intentionally left unused.
|
|
Supresses compiler warnings about the variable being unused. */
|
|
#define SVN_UNUSED(v) ( (void)(v) )
|
|
])
|
|
|
|
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 $LDFLAGS"
|
|
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([--enable-plaintext-password-storage],
|
|
[Enable on-disk caching of plaintext passwords and passphrases.
|
|
(Enabling this functionality will not force Subversion
|
|
to store passwords in plaintext, but does permit users to
|
|
explicitly allow that behavior via runtime configuration.)]),
|
|
[plaintext_passwordd_storage="$enableval"],
|
|
[plaintext_passwordd_storage="no"])
|
|
|
|
if test "$plaintext_passwordd_storage" = "yes"; then
|
|
AC_MSG_WARN([Enabling plaintext password/passphrase storage])
|
|
else
|
|
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_old_gnome_keyring" = "yes" || 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 and ELF headers
|
|
AC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], [])
|
|
AC_CHECK_HEADERS(elf.h)
|
|
|
|
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_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
|
|
shared_only_LDFLAGS="-Wl,--no-undefined"
|
|
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_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_SUBST([shared_only_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 CFLAGS="-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])
|
|
SVN_CFLAGS_ADD_IFELSE([-Wmissing-variable-declarations])
|
|
SVN_CFLAGS_ADD_IFELSE([-Wno-unused-const-variable])
|
|
|
|
CMAINTAINERFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS_KEEP"
|
|
|
|
dnl Add flags that all versions of GCC (should) support
|
|
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"
|
|
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"
|
|
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])
|
|
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])
|
|
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
|
|
|
|
dnl Dump the current compiler options
|
|
AC_MSG_NOTICE([C compiler flags: $CFLAGS])
|
|
AC_MSG_NOTICE([ language-level: $CMODEFLAGS])
|
|
AC_MSG_NOTICE([ user-defined: $CUSERFLAGS])
|
|
AC_MSG_NOTICE([ maintainer-mode: $CMAINTAINERFLAGS])
|
|
AC_MSG_NOTICE([C++ compiler flags: $CXXFLAGS])
|
|
AC_MSG_NOTICE([ language-level: $CXXMODEFLAGS])
|
|
AC_MSG_NOTICE([ user-defined: $CXXUSERFLAGS])
|
|
AC_MSG_NOTICE([ maintainer-mode: $CXXMAINTAINERFLAGS])
|
|
|
|
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
|
|
|
|
SVN_LZ4
|
|
|
|
SVN_UTF8PROC
|
|
|
|
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
|
|
AC_ARG_VAR([PYTHON], [Python interpreter command])
|
|
|
|
PYTHON="`$abs_srcdir/build/find_python.sh`"
|
|
if test -z "$PYTHON"; then
|
|
AC_MSG_WARN([Python 2.7 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.8'
|
|
# 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 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)
|
|
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 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)
|
|
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 or later are supported at this time])
|
|
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
|
|
AC_ARG_VAR(SWIG_FEATURES, [SWIG feature flags common to all bindings])
|
|
AC_ARG_VAR(SWIG_RB_FEATURES, [SWIG feature flags specific to Ruby bindings])
|
|
AC_ARG_VAR(SWIG_PL_FEATURES, [SWIG feature flags specific to Perl bindings])
|
|
AC_ARG_VAR(SWIG_PY_FEATURES, [SWIG feature flags specific to Python bindings])
|
|
|
|
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])
|
|
|
|
dnl Mac OS X uses libname.MAJOR.SOVERSION.dylib
|
|
dnl Most other unixes use libname.MAJOR.so.SOVERSION
|
|
case "$host" in
|
|
*-*-darwin*)
|
|
AC_DEFINE(SVN_DSO_SUFFIX_FMT, ["%d.%d.dylib"],
|
|
[Shared library file name suffix format])
|
|
;;
|
|
*)
|
|
AC_DEFINE(SVN_DSO_SUFFIX_FMT, ["%d.so.%d"],
|
|
[Shared library file name suffix format])
|
|
;;
|
|
esac
|
|
fi
|
|
])
|
|
|
|
if test "$svn_enable_shared" = "no" || test "$use_dso" != "yes"; then
|
|
AC_DEFINE(SVN_LIBSVN_RA_LINKS_RA_LOCAL, 1,
|
|
[Defined if libsvn_ra 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_RA_LINKS_RA_SVN, 1,
|
|
[Defined if libsvn_ra 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_RA_LINKS_RA_SERF, 1,
|
|
[Defined if libsvn_ra 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)"
|
|
|
|
AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_X, 1,
|
|
[Defined if libsvn_fs should link against libsvn_fs_x])
|
|
svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_X_DEPS)"
|
|
svn_fs_lib_link="$svn_fs_lib_link \$(FS_X_LINK)"
|
|
dnl FSFS already installs fsmod
|
|
dnl svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-fsmod-lib"
|
|
|
|
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)
|
|
|
|
# ==== SVN++ =================================================================
|
|
|
|
dnl Possibly compile SVN++
|
|
do_svnxx_build=no
|
|
AC_ARG_ENABLE(svnxx,
|
|
AS_HELP_STRING([--enable-svnxx],
|
|
[Enable compilation of the C++ bindings (requires C++)]),
|
|
[ if test "$enableval" = "yes" ; then
|
|
AC_MSG_NOTICE([Enabling the C++ bindings])
|
|
do_svnxx_build=yes
|
|
fi
|
|
])
|
|
|
|
dnl Possibly compile SVN++ tests
|
|
do_svnxx_test_build=no
|
|
AC_ARG_ENABLE(svnxx-tests,
|
|
AS_HELP_STRING([--enable-svnxx-tests],
|
|
[Enable compilation of tests for the C++ bindings
|
|
(implies --enable-svnxx, requires Boost and Boost.Test)]),
|
|
[ if test "$enableval" = "yes" ; then
|
|
AC_MSG_NOTICE([Enabling tests for the C++ bindings])
|
|
do_svnxx_test_build=yes
|
|
fi
|
|
])
|
|
|
|
AX_BOOST_BASE([1.58],
|
|
[
|
|
if test "$do_svnxx_test_build" = "yes"; then
|
|
AX_BOOST_UNIT_TEST_FRAMEWORK
|
|
fi
|
|
],
|
|
[
|
|
if test "$do_svnxx_test_build" = "yes"; then
|
|
AC_MSG_WARN([Tests for the C++ bindings require Boost and Boost.Test])
|
|
do_svnxx_test_build=no
|
|
fi
|
|
])
|
|
|
|
if test "$do_svnxx_test_build" = "yes"; then
|
|
if test "$want_boost" != "yes"; then
|
|
AC_MSG_WARN([Tests for the C++ bindings require Boost and Boost.Test])
|
|
do_svnxx_test_build=no
|
|
SVN_BUILD_SVNXX_TESTS=false
|
|
else
|
|
if test "$do_svnxx_build" != "yes"; then
|
|
AC_MSG_WARN([Enabling the C++ bindings because their tests are enabled])
|
|
do_svnxx_build=yes
|
|
fi
|
|
SVN_BUILD_SVNXX_TESTS=true
|
|
fi
|
|
else
|
|
SVN_BUILD_SVNXX_TESTS=false
|
|
fi
|
|
|
|
if test "$do_svnxx_build" = "yes"; then
|
|
SVN_BUILD_SVNXX=true
|
|
else
|
|
SVN_BUILD_SVNXX=false
|
|
fi
|
|
|
|
AC_SUBST(SVN_BUILD_SVNXX)
|
|
AC_SUBST(SVN_BUILD_SVNXX_TESTS)
|
|
|
|
# ==== 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
|
|
case "$host" in
|
|
*freebsd10*)
|
|
AC_MSG_RESULT([none needed])
|
|
;;
|
|
*)
|
|
LT_CXX_LIBADD="-lstdc++"
|
|
AC_MSG_RESULT([$LT_CXX_LIBADD])
|
|
;;
|
|
esac
|
|
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 ====================================================
|
|
|
|
AC_CHECK_HEADERS([stdbool.h stdint.h])
|
|
|
|
# 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])
|
|
|
|
# Create pkg-config .pc files from .pc.in files
|
|
for pc_in_file in "${abs_srcdir}"/subversion/libsvn_*/*.pc.in; do
|
|
pc_file=${pc_in_file#${abs_srcdir}/}
|
|
pc_file=${pc_file%.in}
|
|
AC_CONFIG_FILES([${pc_file}])
|
|
done
|
|
|
|
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 .swig_pl_checked .swig_py_checked .swig_rb_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_have_berkeley_db" = "no6" && test "$enable_bdb6" != "no"; then
|
|
AC_MSG_WARN([We have configured without BDB filesystem support
|
|
|
|
|
|
Berkeley DB 6 was found, but not used. Please re-run configure (see
|
|
./config.nice) with the '--enable-bdb6' flag to use it,
|
|
or explicitly specify '--disable-bdb6' or '--without-berkeley-db'
|
|
to silence this warning.
|
|
|
|
Please note that some versions of Berkeley DB 6+ are under the GNU Affero
|
|
General Public License, version 3:
|
|
https://oss.oracle.com/pipermail/bdb/2013-June/000056.html
|
|
|
|
The AGPL-3.0 licence may impose special requirements for making available
|
|
source code of server-side software. The text of the licence is:
|
|
https://www.gnu.org/licenses/agpl-3.0.html
|
|
http://opensource.org/licenses/AGPL-3.0
|
|
|
|
The Berkeley DB backend to Subversion is deprecated; see
|
|
http://subversion.apache.org/docs/release-notes/1.8#bdb-deprecated
|
|
|
|
The Subversion developers have not tested Subversion with Berkeley DB 6 for
|
|
technical problems or bugs.
|
|
])
|
|
fi
|