| 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)], |
| [https://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 |
| dnl Select C++ language level for GNU-like compilers |
| dnl This is an advanced option for maintainers |
| AC_ARG_ENABLE([c++], |
| AS_HELP_STRING([--enable-c++=VER], |
| [Select C++ language standard for g++-like compilers]), |
| [ |
| if test "$enableval" = "yes"; then |
| cxx_language_level=any |
| elif test "$enableval" = "no"; then |
| cxx_language_level=any |
| AC_MSG_WARN([--disable-c++ has no effect]) |
| else |
| case "$enableval" in |
| [c++[0-9]*]) cxx_language_level="$enableval";; |
| [gnu++[0-9]*]) cxx_language_level="$enableval";; |
| [[0-9]*]) cxx_language_level="c++$enableval";; |
| [*]) cxx_language_level=undefined;; |
| esac |
| if test "$cxx_language_level" = undefined; then |
| AC_MSG_ERROR([--enable-c++ does not accept $enableval]) |
| fi |
| fi |
| ], |
| [ |
| cxx_language_level=any |
| ]) |
| 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\.[4-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 version]) |
| |
| 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 Libtool has been broken for decades, incorrectly passing 'cru' to 'ar' |
| AR_FLAGS=${AR_FLAGS:-cr} |
| 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. |
| Suppresses 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 |
| 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([]) |
| 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]) |
| PYTHON=none |
| fi |
| AC_SUBST(PYTHON) |
| |
| # 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_ARG_WITH(swig_perl, |
| [AS_HELP_STRING([[--with-swig-perl[=PATH|auto|no]|--without-swig-perl]], |
| [Specify path to SWIG bindings target Perl interpreter |
| [default=auto]. If the option value is 'auto' or it is not |
| specfied, search for the Perl program.] |
| m4_ifndef([SVN_RELEASE_MODE], |
| [[Implies --with-swig=yes if PATH is specfied or Perl |
| is found on 'auto' detection.]])) |
| ], |
| [], |
| [ |
| if test -n "$PERL"; then |
| if test "$PERL" = "no" -o "$PERL" = "none"; then |
| with_swig_perl=no |
| AC_MSG_WARN([Disabling the SWIG Perl bindings' build by setting the PERL]) |
| AC_MSG_WARN([environment variable to "none" is deprecated.]) |
| AC_MSG_WARN([]) |
| AC_MSG_WARN([Please use --without-swig-perl instead.]) |
| else |
| with_swig_perl=auto |
| AC_MSG_WARN([Specfying the Perl path for SWIG Perl bindings' build]) |
| AC_MSG_WARN([by setting the PERL environment variable is deprecated.]) |
| AC_MSG_WARN([]) |
| AC_MSG_WARN([Please use --with-swig-perl=PATH instead.]) |
| fi |
| else |
| with_swig_perl=auto |
| fi |
| ]) |
| case $with_swig_perl in |
| yes|auto|"") |
| # honor PERL variable only if it is set and is full path. |
| AC_PATH_PROG(PERL, perl, none) |
| SWIG_PL_PERL="$PERL" |
| ;; |
| no|none) |
| SWIG_PL_PERL=none |
| ;; |
| *) |
| SWIG_PL_PERL="$with_swig_perl" |
| ;; |
| esac |
| AC_SUBST(SWIG_PL_PERL) |
| |
| # Python: as a target of SWIG Python bindings |
| AC_ARG_WITH(swig_python, |
| [AS_HELP_STRING([[--with-swig-python[=PATH|auto|no]|--without-swig-python]], |
| [Specify path to SWIG bindings target Python interpreter |
| [default=auto]. If the option value is 'auto' or it is not |
| specfied, search for the Python program.] |
| m4_ifndef([SVN_RELEASE_MODE], |
| [[Implies --with-swig=yes if PATH is specfied or Python |
| is found on 'auto' detection.]])) |
| ], |
| [], |
| [ |
| with_swig_python=auto |
| ]) |
| case $with_swig_python in |
| yes|auto|"") |
| SWIG_PY_PYTHON="$PYTHON" |
| ;; |
| no|none) |
| SWIG_PY_PYTHON=none |
| ;; |
| *) |
| SWIG_PY_PYTHON="$with_swig_python" |
| ;; |
| esac |
| AC_SUBST(SWIG_PY_PYTHON) |
| |
| AC_ARG_WITH(swig_ruby, |
| [AS_HELP_STRING([[--with-swig-ruby[=PATH|auto|no]|--without-swig-ruby]], |
| [specify path to SWIG bindings target Ruby interpreter |
| [default=auto]. If the option value is 'auto' or it is not |
| specfied, search for the Ruby program.] |
| m4_ifndef([SVN_RELEASE_MODE], |
| [[Implies --with-swig=yes if PATH is specfied or Ruby |
| is found on 'auto' detection.]])) |
| ], |
| [], |
| [ |
| if test -n "$RUBY"; then |
| if test "$RUBY" = "no" -o "$RUBY" = "none"; then |
| with_swig_ruby=no |
| AC_MSG_WARN([Disabling the SWIG Ruby bindings' build by setting the RUBY]) |
| AC_MSG_WARN([environment variable to "none" is deprecated.]) |
| AC_MSG_WARN([]) |
| AC_MSG_WARN([Please use --without-swig-ruby instead.]) |
| else |
| with_swig_ruby="$RUBY" |
| AC_MSG_WARN([Specfying the Ruby path for SWIG Ruby bindings' build]) |
| AC_MSG_WARN([by setting the RUBY environment variable is deprecated.]) |
| AC_MSG_WARN([]) |
| AC_MSG_WARN([Please use --with-swig-ruby=PATH instead.]) |
| fi |
| else |
| with_swig_ruby=auto |
| fi |
| ]) |
| case $with_swig_ruby in |
| yes|auto|"") |
| # honor RUBY variable only if it is set and is full path. |
| 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) |
| SWIG_RB_RUBY="$RUBY" |
| ;; |
| no|none) |
| SWIG_RB_RUBY=none |
| ;; |
| *) |
| SWIG_RB_RUBY="$with_swig_ruby" |
| ;; |
| esac |
| AC_SUBST(SWIG_RB_RUBY) |
| if test "$SWIG_RB_RUBY" != "none"; then |
| AC_MSG_CHECKING([rb_hash_foreach]) |
| if "$SWIG_RB_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="`$SWIG_RB_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="`$SWIG_RB_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="`$SWIG_RB_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 |
| SWIG_RB_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]) |
| SWIG_RB_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/tests/cmdline/svneditor.sh) |
| 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 |
| https://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 |