configure.ac revision 253734
1dnl     Licensed to the Apache Software Foundation (ASF) under one
2dnl     or more contributor license agreements.  See the NOTICE file
3dnl     distributed with this work for additional information
4dnl     regarding copyright ownership.  The ASF licenses this file
5dnl     to you under the Apache License, Version 2.0 (the
6dnl     "License"); you may not use this file except in compliance
7dnl     with the License.  You may obtain a copy of the License at
8dnl    
9dnl       http://www.apache.org/licenses/LICENSE-2.0
10dnl    
11dnl     Unless required by applicable law or agreed to in writing,
12dnl     software distributed under the License is distributed on an
13dnl     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14dnl     KIND, either express or implied.  See the License for the
15dnl     specific language governing permissions and limitations
16dnl     under the License.
17
18dnl configure.ac: Autoconfiscation for Subversion
19dnl Process this file with autoconf to produce a configure script.
20
21AC_PREREQ(2.59)
22
23dnl Get the version of Subversion, using m4's esyscmd() command to do this
24dnl at m4-time, since AC_INIT() requires it then.
25AC_INIT([subversion],
26     [esyscmd(python build/getversion.py SVN subversion/include/svn_version.h)],
27     [http://subversion.apache.org/])
28
29AC_CONFIG_SRCDIR(subversion/include/svn_types.h)
30AC_CONFIG_AUX_DIR([build])
31
32AC_MSG_NOTICE([Configuring Subversion ]AC_PACKAGE_VERSION)
33
34AC_SUBST([abs_srcdir], ["`cd $srcdir && pwd`"])
35AC_SUBST([abs_builddir], ["`pwd`"])
36if test "$abs_srcdir" = "$abs_builddir"; then
37  canonicalized_srcdir=""
38else
39  canonicalized_srcdir="$srcdir/"
40fi
41AC_SUBST([canonicalized_srcdir])
42
43SWIG_LDFLAGS="$LDFLAGS"
44AC_SUBST([SWIG_LDFLAGS])
45
46# Generate config.nice early (before the arguments are munged)
47SVN_CONFIG_NICE(config.nice)
48
49# ==== Check for programs ====================================================
50
51# Look for a C compiler (before anything can set CFLAGS)
52CMAINTAINERFLAGS="$CUSERFLAGS"
53CUSERFLAGS="$CFLAGS"
54AC_PROG_CC
55SVN_CC_MODE_SETUP
56
57# Look for a C++ compiler (before anything can set CXXFLAGS)
58CXXMAINTAINERFLAGS="$CXXUSERFLAGS"
59CXXUSERFLAGS="$CXXFLAGS"
60AC_PROG_CXX
61SVN_CXX_MODE_SETUP
62
63# Look for a C pre-processor
64AC_PROG_CPP
65
66# Look for a good sed
67# AC_PROG_SED was introduced in Autoconf 2.59b
68m4_ifdef([AC_PROG_SED], [AC_PROG_SED], [SED="${SED:-sed}"])
69
70# Grab target_cpu, so we can use it in the Solaris pkginfo file
71AC_CANONICAL_TARGET
72
73# Look for an extended grep
74AC_PROG_EGREP
75
76AC_PROG_LN_S
77
78AC_PROG_INSTALL
79# If $INSTALL is relative path to our fallback install-sh, then convert
80# to an absolute path, as in some cases (e.g. Solaris VPATH build), libtool
81# may try to use it from a changed working directory.
82if test "$INSTALL" = "build/install-sh -c"; then
83  INSTALL="$abs_srcdir/$INSTALL"
84fi
85
86if test -z "$MKDIR"; then
87  MKDIR="$INSTALL -d"
88fi
89AC_SUBST([MKDIR])
90
91# ==== Libraries, for which we may have source to build ======================
92
93dnl verify apr version and set apr flags
94dnl These regular expressions should not contain "\(" and "\)".
95dnl The specific reason we require APR 0.9.7 is:
96dnl   It contains fixes to its file writing routines
97dnl   now generating errors instead of silently ignoring
98dnl   them.  Only .7 and later can guarantee repository
99dnl   integrity with FSFS.
100
101APR_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\. 2\."]
102
103SVN_LIB_APR($APR_VER_REGEXES)
104
105if test `expr $apr_version : 2` -ne 0; then
106  dnl Bump the library so-version to 2 if using APR-2
107  dnl (Debian uses so-version 1 for APR-1-with-largefile)
108  svn_lib_ver=2
109  dnl APR-2 provides APRUTIL
110  apu_config=$apr_config
111  AC_SUBST(SVN_APRUTIL_INCLUDES)
112  AC_SUBST(SVN_APRUTIL_CONFIG, ["$apu_config"])
113  AC_SUBST(SVN_APRUTIL_LIBS)
114else
115  svn_lib_ver=0
116  APU_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\."]
117  SVN_LIB_APRUTIL($APU_VER_REGEXES)
118fi
119SVN_LT_SOVERSION="-version-info $svn_lib_ver"
120AC_SUBST(SVN_LT_SOVERSION)
121AC_DEFINE_UNQUOTED(SVN_SOVERSION, $svn_lib_ver,
122                   [Subversion library major verson])
123
124dnl Search for pkg-config
125AC_PATH_PROG(PKG_CONFIG, pkg-config)
126
127dnl Search for serf
128SVN_LIB_SERF(1,2,1)
129
130if test "$svn_lib_serf" = "yes"; then
131  AC_DEFINE([SVN_HAVE_SERF], 1,
132            [Defined if support for Serf is enabled])
133fi
134
135dnl Search for apr_memcache (only affects fs_fs)
136SVN_LIB_APR_MEMCACHE
137
138if test "$svn_lib_apr_memcache" = "yes"; then
139  AC_DEFINE(SVN_HAVE_MEMCACHE, 1,
140            [Defined if apr_memcache (standalone or in apr-util) is present])
141fi
142
143
144dnl Find Apache with a recent-enough magic module number
145SVN_FIND_APACHE(20020903)
146
147dnl Search for SQLite.  If you change SQLITE_URL from a .zip to
148dnl something else also update build/ac-macros/sqlite.m4 to reflect
149dnl the correct command to unpack the downloaded file.
150SQLITE_MINIMUM_VER="3.7.12"
151SQLITE_RECOMMENDED_VER="3.7.15.1"
152SQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-$(printf %d%02d%02d%02d $(echo ${SQLITE_RECOMMENDED_VER} | sed -e 's/\./ /g')).zip"
153
154SVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER},
155               ${SQLITE_URL})
156
157AC_ARG_ENABLE(sqlite-compatibility-version,
158  AS_HELP_STRING([--enable-sqlite-compatibility-version=X.Y.Z],
159                 [Allow binary to run against SQLite as old as ARG]),
160  [sqlite_compat_ver=$enableval],[sqlite_compat_ver=no])
161
162if test -n "$sqlite_compat_ver" && test "$sqlite_compat_ver" != no; then
163  SVN_SQLITE_VERNUM_PARSE([$sqlite_compat_ver],
164                          [sqlite_compat_ver_num])
165  CFLAGS="-DSVN_SQLITE_MIN_VERSION='\"$sqlite_compat_ver\"' $CFLAGS"
166  CFLAGS="-DSVN_SQLITE_MIN_VERSION_NUMBER=$sqlite_compat_ver_num $CFLAGS"
167fi
168
169SVN_CHECK_FOR_ATOMIC_BUILTINS
170
171if test "$svn_cv_atomic_builtins" = "yes"; then
172    AC_DEFINE(SVN_HAS_ATOMIC_BUILTINS, 1, [Define if compiler provides atomic builtins])
173fi
174
175dnl Set up a number of directories ---------------------
176
177dnl Create SVN_BINDIR for proper substitution
178if test "${bindir}" = '${exec_prefix}/bin'; then
179        if test "${exec_prefix}" = "NONE"; then
180                if test "${prefix}" = "NONE"; then
181                        SVN_BINDIR="${ac_default_prefix}/bin"
182                else
183                        SVN_BINDIR="${prefix}/bin"
184                fi
185        else
186                SVN_BINDIR="${exec_prefix}/bin"
187        fi
188else
189        SVN_BINDIR="${bindir}"
190fi
191
192dnl fully evaluate this value. when we substitute it into our tool scripts,
193dnl they will not have things such as ${bindir} available
194SVN_BINDIR="`eval echo ${SVN_BINDIR}`"
195AC_SUBST(SVN_BINDIR)
196
197dnl provide ${bindir} in svn_private_config.h for use in compiled code
198AC_DEFINE_UNQUOTED(SVN_BINDIR, "${SVN_BINDIR}",
199        [Defined to be the path to the installed binaries])
200
201dnl This purposely does *not* allow for multiple parallel installs.
202dnl However, it is compatible with most gettext usages.
203localedir='${datadir}/locale'
204AC_SUBST(localedir)
205
206dnl For SVN_LOCALE_DIR, we have to expand it to something.  See SVN_BINDIR.
207if test "${datadir}" = '${prefix}/share' && test "${prefix}" = "NONE"; then
208  exp_localedir='${ac_default_prefix}/share/locale'
209else
210  exp_localedir=$localedir
211fi
212SVN_EXPAND_VAR(svn_localedir, "${exp_localedir}")
213AC_DEFINE_UNQUOTED(SVN_LOCALE_DIR, "${svn_localedir}",
214                   [Defined to be the path to the installed locale dirs])
215
216dnl Check for libtool -- we'll definitely need it for all our shared libs!
217AC_MSG_NOTICE([configuring libtool now])
218ifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL])
219AC_ARG_ENABLE(experimental-libtool,
220  AS_HELP_STRING([--enable-experimental-libtool],[Use APR's libtool]),
221  [experimental_libtool=$enableval],[experimental_libtool=no])
222
223if test "$experimental_libtool" = "yes"; then
224  echo "using APR's libtool"
225  sh_libtool="`$apr_config --apr-libtool`"
226  LIBTOOL="$sh_libtool"
227  SVN_LIBTOOL="$sh_libtool"
228else
229  sh_libtool="$abs_builddir/libtool"
230  SVN_LIBTOOL="\$(SHELL) $sh_libtool"
231fi
232AC_SUBST(SVN_LIBTOOL)
233
234dnl Determine the libtool version
235changequote(, )dnl
236lt_pversion=`$LIBTOOL --version 2>/dev/null|$SED -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'`
237lt_version=`echo $lt_pversion|$SED -e 's/\([a-z]*\)$/.\1/'`
238lt_major_version=`echo $lt_version | cut -d'.' -f 1`
239changequote([, ])dnl
240
241dnl set the default parameters
242svn_enable_static=yes
243svn_enable_shared=yes
244
245dnl check for --enable-static option
246AC_ARG_ENABLE(static,
247  AS_HELP_STRING([--enable-static],
248                 [Build static libraries]),
249  [svn_enable_static="$enableval"], [svn_enable_static="yes"])
250
251dnl check for --enable-shared option
252AC_ARG_ENABLE(shared,
253  AS_HELP_STRING([--enable-shared],
254                 [Build shared libraries]),
255  [svn_enable_shared="$enableval"], [svn_enable_shared="yes"])
256
257if test "$svn_enable_static" = "yes" && test "$svn_enable_shared" = "yes" ; then
258  AC_MSG_NOTICE([building both shared and static libraries])
259elif test "$svn_enable_static" = "yes" ; then
260  AC_MSG_NOTICE([building static libraries only])
261  LT_CFLAGS="-static $LT_CFLAGS"
262  LT_LDFLAGS="-static $LT_LDFLAGS"
263elif test "$svn_enable_shared" = "yes" ; then
264  AC_MSG_NOTICE([building shared libraries only])
265  if test "$lt_major_version" = "1" ; then
266    LT_CFLAGS="-prefer-pic $LT_CFLAGS"
267  elif test "$lt_major_version" = "2" ; then
268    LT_CFLAGS="-shared $LT_CFLAGS"
269  fi
270  LT_LDFLAGS="-shared $LT_LDFLAGS"
271else
272  AC_MSG_ERROR([cannot disable both shared and static libraries])
273fi
274
275dnl Check for --enable-all-static option
276AC_ARG_ENABLE(all-static,
277  AS_HELP_STRING([--enable-all-static],
278                 [Build completely static (standalone) binaries.]),
279  [
280    if test "$enableval" = "yes" ; then
281      LT_LDFLAGS="-all-static $LT_LDFLAGS"
282    elif test "$enableval" != "no" ; then
283      AC_MSG_ERROR([--enable-all-static doesn't accept argument])
284    fi
285])
286
287AC_SUBST(LT_CFLAGS)
288AC_SUBST(LT_LDFLAGS)
289
290AC_ARG_ENABLE(local-library-preloading,
291  AS_HELP_STRING([--enable-local-library-preloading], 
292                 [Enable preloading of locally built libraries in locally
293                  built executables.  This may be necessary for testing
294                  prior to installation on some platforms.  It does not
295                  work on some platforms (Darwin, OpenBSD, ...).]),
296  [
297  if test "$enableval" != "no"; then
298    if test "$svn_enable_shared" = "yes"; then
299      TRANSFORM_LIBTOOL_SCRIPTS="transform-libtool-scripts"
300    else
301      AC_MSG_ERROR([--enable-local-library-preloading conflicts with --disable-shared])
302    fi
303  else
304    TRANSFORM_LIBTOOL_SCRIPTS=""
305  fi
306  ], [
307  TRANSFORM_LIBTOOL_SCRIPTS=""
308])
309AC_SUBST(TRANSFORM_LIBTOOL_SCRIPTS)
310
311dnl Check if -no-undefined is needed for the platform.
312dnl It should always work but with libtool 1.4.3 on OS X it breaks the build.
313dnl So we only turn it on for platforms where we know we really need it.
314AC_MSG_CHECKING([whether libtool needs -no-undefined])
315case $host in
316  *-*-cygwin*)
317    AC_MSG_RESULT([yes])
318    LT_NO_UNDEFINED="-no-undefined"
319    ;;
320  *)
321    AC_MSG_RESULT([no])
322    LT_NO_UNDEFINED=""
323    ;;
324esac
325AC_SUBST(LT_NO_UNDEFINED)
326
327AC_MSG_CHECKING([whether to avoid circular linkage at all costs])
328case $host in
329  *-*-cygwin*)
330    AC_MSG_RESULT([yes])
331    AC_DEFINE([SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK], 1,
332              [Define if circular linkage is not possible on this platform.])
333    ;;
334  *)
335    AC_MSG_RESULT([no])
336    ;;
337esac
338
339dnl Check for trang.
340trang=yes
341AC_ARG_WITH(trang,
342AS_HELP_STRING([--with-trang=PATH],
343               [Specify the command to run the trang schema converter]),
344[
345    trang="$withval"
346])
347if test "$trang" = "yes"; then
348    AC_PATH_PROG(TRANG, trang, none)
349else
350    TRANG="$trang"
351    AC_SUBST(TRANG)
352fi
353
354dnl Check for doxygen
355doxygen=yes
356AC_ARG_WITH(doxygen,
357AC_HELP_STRING([--with-doxygen=PATH],
358               [Specify the command to run doxygen]),
359[
360    doxygen="$withval"
361])
362if test "$doxygen" = "yes"; then
363    AC_PATH_PROG(DOXYGEN, doxygen, none)
364else
365    DOXYGEN="$doxygen"
366    AC_SUBST(DOXYGEN)
367fi
368
369
370dnl Check for libraries --------------------
371
372dnl Expat -------------------
373
374AC_ARG_WITH(expat,
375  AS_HELP_STRING([--with-expat=INCLUDES:LIB_SEARCH_DIRS:LIBS], 
376                 [Specify location of Expat]),
377                 [svn_lib_expat="$withval"],
378                 [svn_lib_expat="::expat"])
379
380# APR-util accepts "builtin" as an argument to this option so if the user
381# passed "builtin" pretend the user didn't specify the --with-expat option
382# at all. Expat will (hopefully) be found in apr-util.
383test "_$svn_lib_expat" = "_builtin" && svn_lib_expat="::expat"
384
385AC_MSG_CHECKING([for Expat])
386if test -n "`echo "$svn_lib_expat" | $EGREP ":.*:"`"; then
387  SVN_XML_INCLUDES=""
388  for i in [`echo "$svn_lib_expat" | $SED -e "s/\([^:]*\):.*/\1/"`]; do
389    SVN_XML_INCLUDES="$SVN_XML_INCLUDES -I$i"
390  done
391  SVN_XML_INCLUDES="${SVN_XML_INCLUDES## }"
392  for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\):.*/\1/"`]; do
393    LDFLAGS="$LDFLAGS -L$l"
394  done
395  for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\)/\1/"`]; do
396    SVN_XML_LIBS="$SVN_XML_LIBS -l$l"
397  done
398  SVN_XML_LIBS="${SVN_XML_LIBS## }"
399  old_CPPFLAGS="$CPPFLAGS"
400  old_LIBS="$LIBS"
401  CPPFLAGS="$CPPFLAGS $SVN_XML_INCLUDES"
402  LIBS="$LIBS $SVN_XML_LIBS"
403  AC_LINK_IFELSE([AC_LANG_SOURCE([[
404#include <expat.h>
405int main()
406{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no")
407  LIBS="$old_LIBS"
408  if test "$svn_lib_expat" = "yes"; then
409    AC_MSG_RESULT([yes])
410  else
411    SVN_XML_INCLUDES=""
412    SVN_XML_LIBS=""
413    CPPFLAGS="$CPPFLAGS $SVN_APRUTIL_INCLUDES"
414    if test "$enable_all_static" != "yes"; then
415      SVN_APRUTIL_LIBS="$SVN_APRUTIL_LIBS `$apu_config --libs`"
416    fi
417    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
418#include <expat.h>
419int main()
420{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no")
421    if test "$svn_lib_expat" = "yes"; then
422      AC_MSG_RESULT([yes])
423      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.])
424    else
425      AC_MSG_RESULT([no])
426      AC_MSG_ERROR([Expat not found])
427    fi
428  fi
429  CPPFLAGS="$old_CPPFLAGS"
430else
431  AC_MSG_RESULT([no])
432  if test "$svn_lib_expat" = "yes"; then
433    AC_MSG_ERROR([--with-expat option requires argument])
434  elif test "$svn_lib_expat" = "no"; then
435    AC_MSG_ERROR([Expat is required])
436  else
437    AC_MSG_ERROR([Invalid syntax of argument of --with-expat option])
438  fi
439fi
440AC_SUBST(SVN_XML_INCLUDES)
441AC_SUBST(SVN_XML_LIBS)
442
443dnl Berkeley DB -------------------
444
445# Berkeley DB on SCO OpenServer needs -lsocket
446AC_CHECK_LIB(socket, socket)
447
448# Build the BDB filesystem library only if we have an appropriate
449# version of Berkeley DB.
450case "$host" in
451powerpc-apple-darwin*)
452    # Berkeley DB 4.0 does not work on OS X.
453    SVN_FS_WANT_DB_MAJOR=4
454    SVN_FS_WANT_DB_MINOR=1
455    SVN_FS_WANT_DB_PATCH=25
456    ;;
457*)
458    SVN_FS_WANT_DB_MAJOR=4
459    SVN_FS_WANT_DB_MINOR=0
460    SVN_FS_WANT_DB_PATCH=14
461    ;;
462esac
463db_alt_version="5.x"
464# Look for libdb4.so first:
465SVN_LIB_BERKELEY_DB($SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MINOR,
466                    $SVN_FS_WANT_DB_PATCH, [db4 db])
467
468AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MAJOR,
469                   [The desired major version for the Berkeley DB])
470AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MINOR, $SVN_FS_WANT_DB_MINOR,
471                   [The desired minor version for the Berkeley DB])
472AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_PATCH, $SVN_FS_WANT_DB_PATCH,
473                   [The desired patch version for the Berkeley DB])
474
475AC_SUBST(SVN_DB_INCLUDES)
476AC_SUBST(SVN_DB_LIBS)
477
478SVN_LIB_SASL
479
480if test "$svn_lib_sasl" = "yes"; then
481  AC_DEFINE(SVN_HAVE_SASL, 1,
482            [Defined if Cyrus SASL v2 is present on the system])
483fi
484
485dnl Mac OS specific features -------------------
486
487SVN_LIB_MACHO_ITERATE
488SVN_LIB_MACOS_PLIST
489SVN_LIB_MACOS_KEYCHAIN
490
491dnl APR_HAS_DSO -------------------
492
493AC_MSG_CHECKING([whether APR has support for DSOs])
494old_CPPFLAGS="$CPPFLAGS"
495CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
496AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
497#include <apr.h>
498#if !APR_HAS_DSO
499#error
500#endif]])],
501  APR_HAS_DSO="yes"
502  AC_MSG_RESULT([yes]),
503  APR_HAS_DSO="no"
504  AC_MSG_RESULT([no]))
505CPPFLAGS="$old_CPPFLAGS"
506
507
508dnl D-Bus (required for support for KWallet) -------------------
509
510if test -n "$PKG_CONFIG"; then
511  AC_MSG_CHECKING([for D-Bus .pc file])
512  if $PKG_CONFIG --exists dbus-1; then
513    AC_MSG_RESULT([yes])
514    old_CPPFLAGS="$CPPFLAGS"
515    old_LIBS="$LIBS"
516    DBUS_CPPFLAGS="`$PKG_CONFIG --cflags dbus-1`"
517    AC_MSG_CHECKING([D-Bus version])
518    DBUS_VERSION="`$PKG_CONFIG --modversion dbus-1`"
519    AC_MSG_RESULT([$DBUS_VERSION])
520    # D-Bus 0.* requires DBUS_API_SUBJECT_TO_CHANGE
521    if test -n ["`echo "$DBUS_VERSION" | $EGREP '^0\.[[:digit:]]+'`"]; then
522      DBUS_CPPFLAGS="$DBUS_CPPFLAGS -DDBUS_API_SUBJECT_TO_CHANGE"
523    fi
524    DBUS_LIBS="`$PKG_CONFIG --libs dbus-1`"
525    CPPFLAGS="$CPPFLAGS $DBUS_CPPFLAGS"
526    LIBS="$LIBS $DBUS_LIBS"
527    AC_MSG_CHECKING([for D-Bus])
528    AC_LINK_IFELSE([AC_LANG_SOURCE([[
529#include <dbus/dbus.h>
530int main()
531{dbus_bus_get(DBUS_BUS_SESSION, NULL);}]])], HAVE_DBUS="yes", HAVE_DBUS="no")
532    if test "$HAVE_DBUS" = "yes"; then
533      AC_MSG_RESULT([yes])
534    else
535      AC_MSG_RESULT([no])
536    fi
537    CPPFLAGS="$old_CPPFLAGS"
538    LIBS="$old_LIBS"
539  else
540    AC_MSG_RESULT([no])
541  fi
542fi
543
544dnl GPG Agent -------------------
545
546AC_ARG_WITH(gpg_agent,
547AS_HELP_STRING([--without-gpg-agent], 
548               [Disable support for GPG-Agent]),
549               [], [with_gpg_agent=yes])
550AC_MSG_CHECKING([whether to support GPG-Agent])
551if test "$with_gpg_agent" = "yes"; then
552  AC_MSG_RESULT([yes])
553  AC_DEFINE([SVN_HAVE_GPG_AGENT], [1], 
554            [Is GPG Agent support enabled?])
555else
556  AC_MSG_RESULT([no])
557fi
558
559AC_SUBST(SVN_HAVE_GPG_AGENT)
560
561dnl GNOME Keyring -------------------
562
563AC_ARG_WITH(gnome_keyring,
564  AS_HELP_STRING([--with-gnome-keyring], 
565                 [Enable use of GNOME Keyring for auth credentials (enabled by default if found)]),
566                 [with_gnome_keyring="$withval"],
567                 [with_gnome_keyring=auto])
568
569found_gnome_keyring=no
570AC_MSG_CHECKING([whether to look for GNOME Keyring])
571if test "$with_gnome_keyring" != "no"; then
572  AC_MSG_RESULT([yes])
573  if test "$svn_enable_shared" = "yes"; then
574    if test "$APR_HAS_DSO" = "yes"; then
575      if test -n "$PKG_CONFIG"; then
576        AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files])
577        if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then
578          AC_MSG_RESULT([yes])
579          old_CPPFLAGS="$CPPFLAGS"
580          SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`"
581          CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES"
582          AC_CHECK_HEADER(gnome-keyring.h, found_gnome_keyring=yes, found_gnome_keyring=no)
583          AC_MSG_CHECKING([for GNOME Keyring])
584          if test "$found_gnome_keyring" = "yes"; then
585            AC_MSG_RESULT([yes])
586            AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1], 
587                      [Is GNOME Keyring support enabled?])
588            CPPFLAGS="$old_CPPFLAGS"
589            SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
590          else
591            AC_MSG_RESULT([no])
592            if test "$with_gnome_keyring" = "yes"; then
593              AC_MSG_ERROR([cannot find GNOME Keyring])
594            fi
595          fi
596        else
597          AC_MSG_RESULT([no])
598          if test "$with_gnome_keyring" = "yes"; then
599            AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files.])
600          else
601            with_gnome_keyring=no
602          fi
603        fi
604      else
605        if test "$with_gnome_keyring" = "yes"; then
606          AC_MSG_ERROR([cannot find pkg-config. GNOME Keyring requires this.])
607        else
608          with_gnome_keyring=no
609        fi
610      fi
611    else
612      if test "$with_gnome_keyring" = "yes"; then
613        AC_MSG_ERROR([APR does not have support for DSOs. GNOME Keyring requires this.])
614      else
615        with_gnome_keyring=no
616      fi
617    fi
618  else
619    if test "$with_gnome_keyring" = "yes"; then
620      AC_MSG_ERROR([--with-gnome-keyring conflicts with --disable-shared])
621    else
622      with_gnome_keyring=no
623    fi
624  fi
625else
626  AC_MSG_RESULT([no])
627fi
628AC_SUBST(SVN_GNOME_KEYRING_INCLUDES)
629AC_SUBST(SVN_GNOME_KEYRING_LIBS)
630
631
632dnl Ev2 experimental features ----------------------
633dnl Note: The Ev2 implementations will be built unconditionally, but by
634dnl providing this flag, users can choose to use the currently-shimmed Ev2
635dnl editor implementations for various operations.  This will probably
636dnl negatively impact performance, but is useful for testing.
637AC_ARG_ENABLE(ev2-impl,
638  AS_HELP_STRING([--enable-ev2-impl],
639                 [Use Ev2 implementations, where available [EXPERIMENTAL]]),
640  [enable_ev2_impl=$enableval],[enable_ev2_impl=no])
641if test "$enable_ev2_impl" = "yes"; then
642  AC_DEFINE(ENABLE_EV2_IMPL, 1,
643            [Define to 1 if Ev2 implementations should be used.])
644fi
645
646
647dnl I18n -------------------
648
649AC_ARG_ENABLE(nls,
650  AS_HELP_STRING([--disable-nls],[Disable gettext functionality]),
651  [enable_nls=$enableval],[enable_nls=yes])
652
653USE_NLS="no"
654if test "$enable_nls" = "yes"; then
655  dnl First, check to see if there is a working msgfmt.
656  AC_PATH_PROG(MSGFMT, msgfmt, none)
657  AC_PATH_PROG(MSGMERGE, msgmerge, none)
658  AC_PATH_PROG(XGETTEXT, xgettext, none)
659  if test "$MSGFMT" != "none"; then
660    AC_SEARCH_LIBS(bindtextdomain, [intl], [],
661                   [
662                    enable_nls="no"
663                   ])
664    if test "$enable_nls" = "no"; then
665      # Destroy the cached result so we can test again
666      unset ac_cv_search_bindtextdomain
667      # On some systems, libintl needs libiconv to link properly,
668      # so try again with -liconv.
669      AC_SEARCH_LIBS(bindtextdomain, [intl],
670                     [
671                      enable_nls="yes"
672                      # This is here so that -liconv ends up in LIBS
673                      # if it worked with -liconv.
674                      AC_CHECK_LIB(iconv, libiconv_open)
675                     ], 
676                     [
677                      AC_MSG_WARN([bindtextdomain() not found.  Disabling NLS.])
678                      enable_nls="no"
679                     ], -liconv)
680    fi
681    if test "$enable_nls" = "yes"; then
682      AC_DEFINE(ENABLE_NLS, 1,
683                [Define to 1 if translation of program messages to the user's
684                 native language is requested.])
685      USE_NLS="yes"
686    fi
687  fi
688fi
689
690AH_BOTTOM([
691/* Indicate to translators that string X should be translated.  Do not look
692   up the translation at run time; just expand to X.  This macro is suitable
693   for use where a constant string is required at compile time. */
694#define N_(x) x
695/* Indicate to translators that we have decided the string X should not be
696   translated.  Expand to X. */
697#define U_(x) x
698#ifdef ENABLE_NLS
699#include <locale.h>
700#include <libintl.h>
701/* Indicate to translators that string X should be translated.  At run time,
702   look up and return the translation of X. */
703#define _(x) dgettext(PACKAGE_NAME, x)
704/* Indicate to translators that strings X1 and X2 are singular and plural
705   forms of the same message, and should be translated.  At run time, return
706   an appropriate translation depending on the number N. */
707#define Q_(x1, x2, n) dngettext(PACKAGE_NAME, x1, x2, n)
708#else
709#define _(x) (x)
710#define Q_(x1, x2, n) (((n) == 1) ? x1 : x2)
711#define gettext(x) (x)
712#define dgettext(domain, x) (x)
713#endif
714])
715
716dnl Used to simulate makefile conditionals.
717GETTEXT_CODESET=\#
718NO_GETTEXT_CODESET=\#
719if test $USE_NLS = "yes"; then
720   AC_CHECK_FUNCS(bind_textdomain_codeset,
721                  [ GETTEXT_CODESET="" ],
722                  [ NO_GETTEXT_CODESET="" ])
723fi
724AC_SUBST(GETTEXT_CODESET)
725AC_SUBST(NO_GETTEXT_CODESET)
726
727# Check if we are using GNU gettext.
728GNU_GETTEXT=no
729MSGFMTFLAGS=''
730if test $USE_NLS = "yes"; then
731   AC_MSG_CHECKING(if we are using GNU gettext)
732   if $MSGFMT --version 2>&1 | $EGREP GNU > /dev/null; then
733      GNU_GETTEXT=yes
734      MSGFMTFLAGS='-c'
735   fi
736   AC_MSG_RESULT($GNU_GETTEXT)
737fi
738AC_SUBST(MSGFMTFLAGS)
739
740dnl libmagic -------------------
741
742libmagic_found=no
743
744AC_ARG_WITH(libmagic,AS_HELP_STRING([--with-libmagic=PREFIX],
745                                [libmagic filetype detection library]),
746[
747  if test "$withval" = "yes" ; then
748    AC_CHECK_HEADER(magic.h, [
749      AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"])
750    ])
751    libmagic_prefix="the default locations"
752  elif test "$withval" != "no"; then
753    libmagic_prefix=$withval
754    save_cppflags="$CPPFLAGS"
755    CPPFLAGS="$CPPFLAGS -I$libmagic_prefix/include"
756    AC_CHECK_HEADERS(magic.h,[
757      save_ldflags="$LDFLAGS"
758      LDFLAGS="-L$libmagic_prefix/lib"
759      AC_CHECK_LIB(magic, magic_open, [libmagic_found="yes"])
760      LDFLAGS="$save_ldflags"
761    ])
762    CPPFLAGS="$save_cppflags"
763  fi
764  if test "$withval" != "no" && test "$libmagic_found" = "no"; then
765    AC_MSG_ERROR([[--with-libmagic requested, but libmagic not found at $libmagic_prefix]])
766  fi
767],
768[
769  AC_CHECK_HEADER(magic.h, [
770    AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"])
771  ])
772])
773
774if test "$libmagic_found" != "no"; then
775  AC_DEFINE([SVN_HAVE_LIBMAGIC], [1], [Defined if libmagic support is enabled])
776  SVN_MAGIC_LIBS="-lmagic"
777fi
778
779if test "$libmagic_found" = "yes"; then
780  SVN_MAGIC_INCLUDES="-I$libmagic_prefix/include"
781  LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$libmagic_prefix/lib)`"
782fi
783
784AC_SUBST(SVN_MAGIC_INCLUDES)
785AC_SUBST(SVN_MAGIC_LIBS)
786
787dnl KWallet -------------------
788SVN_LIB_KWALLET
789
790if test "$svn_lib_kwallet" = "yes"; then
791  AC_DEFINE([SVN_HAVE_KWALLET], 1,
792            [Defined if KWallet support is enabled])
793fi
794
795dnl plaintext passwords -------------------
796AC_ARG_ENABLE(plaintext-password-storage,
797AS_HELP_STRING([--disable-plaintext-password-storage],
798               [Disable on-disk caching of plaintext passwords and passphrases.
799                (Leaving this functionality enabled will not force Subversion
800                to store passwords in plaintext, but does permit users to
801                explicitly allow that behavior via runtime configuration.)]),
802[
803   if test "$enableval" = "no"; then
804      AC_MSG_NOTICE([Disabling plaintext password/passphrase storage])
805      AC_DEFINE(SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE, 1,
806                [Defined if plaintext password/passphrase storage is disabled])
807   fi
808])
809
810dnl Build and install rules -------------------
811
812INSTALL_STATIC_RULES="install-bin install-docs"
813INSTALL_RULES="install-fsmod-lib install-ramod-lib install-lib install-include install-static"
814INSTALL_RULES="$INSTALL_RULES $INSTALL_APACHE_RULE"
815BUILD_RULES="fsmod-lib ramod-lib lib bin test sub-test $BUILD_APACHE_RULE tools"
816
817if test "$svn_lib_berkeley_db" = "yes"; then
818  BUILD_RULES="$BUILD_RULES bdb-lib bdb-test"
819  INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-fsmod-lib/install-fsmod-lib install-bdb-lib/'`"
820  INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-bdb-lib"
821  BDB_TEST_DEPS="\$(BDB_TEST_DEPS)"
822  BDB_TEST_PROGRAMS="\$(BDB_TEST_PROGRAMS)"
823fi
824
825if test "$svn_lib_serf" = "yes"; then
826  BUILD_RULES="$BUILD_RULES serf-lib"
827  INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-ramod-lib/install-ramod-lib install-serf-lib/'`"
828  INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-serf-lib"
829fi
830
831if test "$svn_lib_kwallet" = "yes"; then
832  BUILD_RULES="$BUILD_RULES kwallet-lib"
833  INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-kwallet-lib/'`"
834  INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-kwallet-lib"
835fi
836
837if test "$found_gnome_keyring" = "yes"; then
838  BUILD_RULES="$BUILD_RULES gnome-keyring-lib"
839  INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-gnome-keyring-lib/'`"
840  INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-gnome-keyring-lib"
841fi
842
843if test "$USE_NLS" = "yes"; then
844  BUILD_RULES="$BUILD_RULES locale"
845  INSTALL_RULES="$INSTALL_RULES install-locale"
846fi
847
848AC_SUBST(BUILD_RULES)
849AC_SUBST(INSTALL_STATIC_RULES)
850AC_SUBST(INSTALL_RULES)
851AC_SUBST(BDB_TEST_DEPS)
852AC_SUBST(BDB_TEST_PROGRAMS)
853
854dnl Check for header files ----------------
855
856dnl Standard C headers
857AC_HEADER_STDC
858
859dnl Check for typedefs, structures, and compiler characteristics ----------
860
861dnl if compiler doesn't understand `const', then define it empty
862AC_C_CONST
863
864dnl if non-existent, define size_t to be `unsigned'
865AC_TYPE_SIZE_T
866
867
868dnl Check for library functions ----------
869
870AC_FUNC_MEMCMP
871
872dnl svn_error's default warning handler uses vfprintf()
873AC_FUNC_VPRINTF
874
875dnl check for functions needed in special file handling
876AC_CHECK_FUNCS(symlink readlink)
877
878dnl check for uname
879AC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], [])
880
881dnl check for termios
882AC_CHECK_HEADER(termios.h,[
883  AC_CHECK_FUNCS(tcgetattr tcsetattr,[
884    AC_DEFINE(HAVE_TERMIOS_H,1,[Defined if we have a usable termios library.])
885  ])
886])
887
888dnl Process some configuration options ----------
889
890AC_ARG_WITH(openssl,
891AS_HELP_STRING([--with-openssl],
892               [This option does NOT affect the Subversion build process in any
893                way. It tells an integrated Serf HTTP client library build
894                process where to locate the OpenSSL library when (and only when)
895                building Serf as an integrated part of the Subversion build
896                process. When linking to a previously installed version of Serf
897                instead, you do not need to use this option.]),
898[])
899
900AC_ARG_ENABLE(debug,
901AS_HELP_STRING([--enable-debug],
902               [Turn on debugging]),
903[
904    if test "$enableval" = "yes" ; then
905      enable_debugging="yes"
906    else
907      enable_debugging="no"
908    fi
909],
910[
911    # Neither --enable-debug nor --disable-debug was passed.
912    enable_debugging="maybe"
913])
914
915AC_ARG_ENABLE(optimize,
916AS_HELP_STRING([--enable-optimize],
917               [Turn on optimizations]),
918[
919    if test "$enableval" = "yes" ; then
920      enable_optimization="yes"
921    else
922      enable_optimization="no"
923    fi
924],
925[
926    # Neither --enable-optimize nor --disable-optimize was passed.
927    enable_optimization="maybe"
928])
929
930dnl Use -Wl,--no-undefined during linking of some libraries
931AC_ARG_ENABLE(disallowing-of-undefined-references,
932  [AS_HELP_STRING([--enable-disallowing-of-undefined-references],
933                  [Use -Wl,--no-undefined flag during linking of some libraries to disallow undefined references])])
934if test "$enable_disallowing_of_undefined_references" != "yes" && test "`uname`" != "Linux"; then
935  enable_disallowing_of_undefined_references="no"
936fi
937if test "$enable_disallowing_of_undefined_references" != "no"; then
938  AC_MSG_CHECKING([for -Wl,--no-undefined])
939  old_LDFLAGS="$LDFLAGS"
940  LDFLAGS="$LDFLAGS -Wl,--no-undefined"
941  AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(){;}]])], [svn_wl_no_undefined="yes"], [svn_wl_no_undefined="no"])
942  LDFLAGS="$old_LDFLAGS"
943  if test "$svn_wl_no_undefined" = "yes"; then
944    AC_MSG_RESULT([yes])
945    for library_dir in "$abs_srcdir/subversion/libsvn_"*; do
946      eval "`basename $library_dir`_LDFLAGS=-Wl,--no-undefined"
947    done
948  else
949    AC_MSG_RESULT([no])
950    if test "$enable_disallowing_of_undefined_references" = "yes"; then
951      AC_MSG_ERROR([--enable-disallowing-of-undefined-references explicitly requested, but -Wl,--no-undefined not supported])
952    fi
953  fi
954fi
955AC_SUBST([libsvn_auth_gnome_keyring_LDFLAGS])
956AC_SUBST([libsvn_auth_kwallet_LDFLAGS])
957AC_SUBST([libsvn_client_LDFLAGS])
958AC_SUBST([libsvn_delta_LDFLAGS])
959AC_SUBST([libsvn_diff_LDFLAGS])
960AC_SUBST([libsvn_fs_LDFLAGS])
961AC_SUBST([libsvn_fs_base_LDFLAGS])
962AC_SUBST([libsvn_fs_fs_LDFLAGS])
963AC_SUBST([libsvn_fs_util_LDFLAGS])
964AC_SUBST([libsvn_ra_LDFLAGS])
965AC_SUBST([libsvn_ra_local_LDFLAGS])
966AC_SUBST([libsvn_ra_serf_LDFLAGS])
967AC_SUBST([libsvn_ra_svn_LDFLAGS])
968AC_SUBST([libsvn_repos_LDFLAGS])
969AC_SUBST([libsvn_subr_LDFLAGS])
970AC_SUBST([libsvn_wc_LDFLAGS])
971
972
973AC_ARG_ENABLE(maintainer-mode,
974AS_HELP_STRING([--enable-maintainer-mode],
975               [Turn on debugging and very strict compile-time warnings]),
976[
977    if test "$enableval" = "yes" ; then
978      if test "$enable_debugging" = "no" ; then
979        AC_MSG_ERROR([Can't have --disable-debug and --enable-maintainer-mode])
980      fi
981      enable_debugging=yes
982
983      dnl Enable some extra warnings. Put these before the user's flags
984      dnl so the user can specify flags that override these.
985      if test "$GCC" = "yes"; then
986        AC_MSG_NOTICE([maintainer-mode: adding GCC warning flags])
987
988        dnl some additional flags that can be handy for an occasional review,
989        dnl but throw too many warnings in svn code, of too little importance,
990        dnl to keep these enabled. Remove the "dnl" to do a run with these
991        dnl switches enabled.
992        dnl ./configure CUSERFLAGS="-Wswitch-enum -Wswitch-default"
993
994        dnl Add each of the following flags only if the C compiler accepts it.
995        CFLAGS_KEEP="$CFLAGS"
996        CFLAGS=""
997
998        SVN_CFLAGS_ADD_IFELSE([-Werror=implicit-function-declaration])
999        SVN_CFLAGS_ADD_IFELSE([-Werror=declaration-after-statement])
1000        SVN_CFLAGS_ADD_IFELSE([-Wextra-tokens])
1001        SVN_CFLAGS_ADD_IFELSE([-Wnewline-eof])
1002        SVN_CFLAGS_ADD_IFELSE([-Wshorten-64-to-32])
1003        SVN_CFLAGS_ADD_IFELSE([-Wold-style-definition])
1004        SVN_CFLAGS_ADD_IFELSE([-Wno-system-headers])
1005        SVN_CFLAGS_ADD_IFELSE([-Wno-format-nonliteral])
1006
1007        CMAINTAINERFLAGS="$CFLAGS $CMAINTAINERFLAGS"
1008        CFLAGS="$CFLAGS_KEEP"
1009
1010        dnl Add flags that all versions of GCC (should) support
1011        CMAINTAINERFLAGS="-Wall -Wpointer-arith -Wwrite-strings -Wshadow -Wformat=2 -Wunused -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wno-multichar -Wredundant-decls -Wnested-externs -Winline -Wno-long-long $CMAINTAINERFLAGS"
1012      fi
1013      if test "$GXX" = "yes"; then
1014        AC_MSG_NOTICE([maintainer-mode: adding G++ warning flags])
1015
1016        dnl Add each of the following flags only if the C++ compiler accepts it.
1017        CXXFLAGS_KEEP="$CXXFLAGS"
1018        CXXFLAGS=""
1019
1020        SVN_CXXFLAGS_ADD_IFELSE([-Wextra-tokens])
1021        SVN_CXXFLAGS_ADD_IFELSE([-Wnewline-eof])
1022        SVN_CXXFLAGS_ADD_IFELSE([-Wshorten-64-to-32])
1023        SVN_CXXFLAGS_ADD_IFELSE([-Wno-system-headers])
1024
1025        CXXMAINTAINERFLAGS="$CXXFLAGS $CXXMAINTAINERFLAGS"
1026        CXXFLAGS="$CXXFLAGS_KEEP"
1027
1028        dnl Add flags that all versions of G++ (should) support
1029        CXXMAINTAINERFLAGS="-Wall -Wpointer-arith -Wwrite-strings -Wshadow -Wunused -Wunreachable-code $CXXMAINTAINERFLAGS"
1030      fi
1031    fi
1032])
1033
1034if test "$enable_debugging" = "yes" ; then
1035  dnl At the moment, we don't want optimization, because we're
1036  dnl debugging. Unless optiization was explicitly enabled.
1037  if test "$enable_optimization" != "yes"; then
1038    AC_MSG_NOTICE([Disabling optimizations for debugging])
1039    CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1040    CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1041  fi
1042  dnl Add debugging flags, unless they were set by the user
1043  if test -z ["`echo $CUSERFLAGS' ' | $EGREP -- '-g[0-9]? '`"]; then
1044    AC_MSG_NOTICE([Enabling debugging for C])
1045    CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"]
1046    SVN_CFLAGS_ADD_IFELSE([-fno-inline])
1047    SVN_CFLAGS_ADD_IFELSE([-fno-omit-frame-pointer])
1048    SVN_CFLAGS_ADD_IFELSE([-g3],[],[
1049      SVN_CFLAGS_ADD_IFELSE([-g2],[],[
1050        SVN_CFLAGS_ADD_IFELSE([-g])])])
1051  fi
1052  if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-g[0-9]? '`"]; then
1053    AC_MSG_NOTICE([Enabling debugging for C++])
1054    CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"]
1055    SVN_CXXFLAGS_ADD_IFELSE([-fno-inline])
1056    SVN_CXXFLAGS_ADD_IFELSE([-fno-omit-frame-pointer])
1057    SVN_CXXFLAGS_ADD_IFELSE([-g3],[],[
1058      SVN_CXXFLAGS_ADD_IFELSE([-g2],[],[
1059        SVN_CXXFLAGS_ADD_IFELSE([-g])])])
1060  fi
1061  dnl SVN_DEBUG enables specific features for developer builds
1062  dnl AP_DEBUG enables specific (Apache) features for developer builds
1063  CFLAGS="$CFLAGS -DSVN_DEBUG -DAP_DEBUG"
1064  CXXFLAGS="$CXXFLAGS -DSVN_DEBUG -DAP_DEBUG"
1065elif test "$enable_debugging" = "no" ; then
1066  AC_MSG_NOTICE([Disabling debugging])
1067  CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"]
1068  CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"]
1069  dnl Compile with NDEBUG to get rid of assertions
1070  CFLAGS="$CFLAGS -DNDEBUG"
1071  CXXFLAGS="$CXXFLAGS -DNDEBUG"
1072# elif test "$enable_debugging" = "maybe" ; then
1073#   # do nothing
1074fi
1075
1076if test "$enable_optimization" = "yes"; then
1077  dnl Add optimization flags, unless they were set by the user
1078  if test -z ["`echo $CUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then
1079    CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1080    if test "$enable_debugging" = "yes"; then
1081      AC_MSG_NOTICE([Enabling optimizations for C (with debugging enabled)])
1082      SVN_CFLAGS_ADD_IFELSE([-O1],[],[
1083        SVN_CFLAGS_ADD_IFELSE([-O])])
1084    else
1085      AC_MSG_NOTICE([Enabling optimizations for C])
1086      SVN_CFLAGS_ADD_IFELSE([-O3],[],[
1087        SVN_CFLAGS_ADD_IFELSE([-O2],[],[
1088          SVN_CFLAGS_ADD_IFELSE([-O1],[],[
1089            SVN_CFLAGS_ADD_IFELSE([-O])])])])
1090      SVN_CFLAGS_ADD_IFELSE([-Wno-clobbered])
1091      SVN_CFLAGS_ADD_IFELSE([-flto])
1092      SVN_CFLAGS_ADD_IFELSE([-fwhole-program])
1093    fi
1094  fi
1095  if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then
1096    CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1097    if test "$enable_debugging" = "yes"; then
1098      AC_MSG_NOTICE([Enabling optimizations for C++ (with debugging enabled)])
1099      SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[
1100        SVN_CXXFLAGS_ADD_IFELSE([-O])])
1101    else
1102      AC_MSG_NOTICE([Enabling optimizations for C++])
1103      SVN_CXXFLAGS_ADD_IFELSE([-O3],[],[
1104        SVN_CXXFLAGS_ADD_IFELSE([-O2],[],[
1105          SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[
1106            SVN_CXXFLAGS_ADD_IFELSE([-O])])])])
1107      SVN_CXXFLAGS_ADD_IFELSE([-Wno-clobbered])
1108      SVN_CXXFLAGS_ADD_IFELSE([-flto])
1109      SVN_CXXFLAGS_ADD_IFELSE([-fwhole-program])
1110    fi
1111  fi
1112elif test "$enable_optimization" = "no"; then
1113  dnl Remove all optimization flags
1114  AC_MSG_NOTICE([Disabling optimizations])
1115  CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1116  CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1117# elif test "$enable_optimization" = "maybe" ; then
1118#   # do nothing
1119fi
1120
1121dnl Dump the current compiler options
1122AC_MSG_NOTICE([C compiler flags: $CFLAGS])
1123AC_MSG_NOTICE([    user-defined: $CUSERFLAGS])
1124AC_MSG_NOTICE([ maintainer-mode: $CMAINTAINERFLAGS])
1125AC_MSG_NOTICE([C++ compiler flags: $CXXFLAGS])
1126AC_MSG_NOTICE([      user-defined: $CXXUSERFLAGS])
1127AC_MSG_NOTICE([   maintainer-mode: $CXXMAINTAINERFLAGS])
1128
1129AC_ARG_ENABLE(full-version-match,
1130AS_HELP_STRING([--disable-full-version-match],
1131               [Disable the full version match rules when checking
1132                Subversion library compatibility.]),
1133[
1134    if test "$enableval" = "no" ; then
1135      AC_MSG_NOTICE([Disabling svn full version matching])
1136      AC_DEFINE(SVN_DISABLE_FULL_VERSION_MATCH, 1,
1137                [Defined if the full version matching rules are disabled])
1138    fi
1139])
1140
1141AC_ARG_WITH(editor,
1142AS_HELP_STRING([--with-editor=PATH],
1143               [Specify a default editor for the subversion client.]),
1144[
1145
1146    if test "$withval" = "yes" ; then
1147      AC_MSG_ERROR([--with-editor requires an argument.])
1148    else
1149      SVN_CLIENT_EDITOR=$withval
1150      AC_DEFINE_UNQUOTED(SVN_CLIENT_EDITOR, "$SVN_CLIENT_EDITOR",
1151                         [The path of a default editor for the client.])
1152
1153    fi
1154
1155])
1156
1157SVN_LIB_Z
1158
1159MOD_ACTIVATION=""
1160AC_ARG_ENABLE(mod-activation,
1161AS_HELP_STRING([--enable-mod-activation],
1162               [Enable mod_dav_svn in httpd.conf]),
1163[
1164    if test "$enableval" = "yes" ; then
1165      MOD_ACTIVATION="-a"
1166      AC_MSG_NOTICE([Enabling apache module activation])
1167    else
1168      AC_MSG_NOTICE([Disabling apache module activation])
1169    fi
1170])
1171AC_SUBST(MOD_ACTIVATION)
1172
1173
1174
1175AC_ARG_ENABLE(gcov,
1176AC_HELP_STRING([--enable-gcov],
1177               [Turn on gcov coverage testing (GCC only).]),
1178[
1179    if test "$enableval" = "yes" ; then
1180      dnl Probably other compilers support something similar;
1181      dnl feel free to extend this to include them.
1182      if test "$GCC" = "yes"; then
1183        if test "$svn_enable_shared" = "yes" ; then
1184          AC_MSG_ERROR([Can't have --enable-gcov without --disable-shared (we
1185                        recommend also using --enable-all-static).])
1186        fi
1187        if test ! "$enable_all_static" = "yes" ; then
1188          AC_MSG_WARN(We recommend --enable-all-static with --enable-gcov.)
1189        fi
1190        AC_MSG_NOTICE([Enabling gcov coverage testing.])
1191        CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
1192        CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage"
1193      else
1194        AC_MSG_ERROR([We only support --enable-gcov with GCC right now.])
1195      fi
1196    fi
1197])
1198
1199AC_ARG_ENABLE(gprof,
1200AS_HELP_STRING([--enable-gprof],
1201               [Produce gprof profiling data in 'gmon.out' (GCC only).]),
1202[
1203    if test "$enableval" = "yes" ; then
1204      dnl Probably other compilers support -pg or something similar;
1205      dnl feel free to extend this to include them.
1206      if test "$GCC" = "yes"; then
1207        if test "$svn_enable_shared" = "yes" ; then
1208          AC_MSG_ERROR([Can't have --enable-gprof without --disable-shared (we
1209                        recommend also using --enable-all-static).])
1210        fi
1211        if test ! "$enable_all_static" = "yes" ; then
1212          AC_MSG_WARN(We recommend --enable-all-static with --enable-gprof.)
1213        fi
1214        AC_MSG_NOTICE([Enabling gprof profiling data (to gmon.out).])
1215        CFLAGS="$CFLAGS -pg"
1216        CXXFLAGS="$CXXFLAGS -pg"
1217        LT_LDFLAGS="$LT_LDFLAGS -pg"
1218      else
1219        AC_MSG_ERROR([We only support --enable-gprof with GCC right now.])
1220      fi
1221    fi
1222])
1223
1224
1225# Scripting and Bindings languages
1226
1227# Python: Used for testsuite, and bindings
1228
1229
1230PYTHON="`$abs_srcdir/build/find_python.sh`"
1231if test -z "$PYTHON"; then
1232  AC_MSG_WARN([Python 2.5 or later is required to run the testsuite])
1233  AC_MSG_WARN([or to use the Subversion Python bindings])
1234  AC_MSG_WARN([])
1235  AC_MSG_WARN([If you have a suitable Python installed, but not on the])
1236  AC_MSG_WARN([PATH, set the environment variable PYTHON to the full path])
1237  AC_MSG_WARN([to the Python executable, and re-run configure])
1238fi
1239AC_PATH_PROGS(PYTHON, "$PYTHON", none)
1240
1241# The minimum version for the JVM runtime for our Java bytecode.
1242JAVA_OLDEST_WORKING_VER='1.5'
1243# SVN_CHECK_JDK sets $JAVA_CLASSPATH
1244SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
1245
1246AC_PATH_PROG(PERL, perl, none)
1247
1248if test -n "$RUBY"; then
1249  AC_PATH_PROG(RUBY, "$RUBY", none)
1250else
1251  AC_PATH_PROGS(RUBY, ruby ruby1.8 ruby18 ruby1.9 ruby1 ruby1.9.3 ruby193, none)
1252fi
1253if test "$RUBY" != "none"; then
1254  AC_MSG_CHECKING([rb_hash_foreach])
1255  if "$RUBY" -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)' >/dev/null; then
1256    AC_MSG_RESULT([yes])
1257    if test -n "$RDOC"; then
1258      AC_PATH_PROG(RDOC, "$RDOC", none)
1259    else
1260      AC_PATH_PROGS(RDOC, rdoc rdoc1.8 rdoc18 rdoc1.9 rdoc19 rdoc1.9.3 rdoc193, none)
1261    fi
1262    AC_CACHE_CHECK([for Ruby major version], [svn_cv_ruby_major],[
1263    svn_cv_ruby_major="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MAJOR))'`"
1264    ])
1265    RUBY_MAJOR="$svn_cv_ruby_major"
1266
1267    AC_CACHE_CHECK([for Ruby minor version], [svn_cv_ruby_minor],[
1268    svn_cv_ruby_minor="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MINOR))'`"
1269    ])
1270    RUBY_MINOR="$svn_cv_ruby_minor"
1271
1272    AC_CACHE_CHECK([for Ruby teeny version], [svn_cv_ruby_teeny],[
1273    svn_cv_ruby_teeny="`$RUBY -rrbconfig -e 'major, minor, teeny = RUBY_VERSION.split("."); print teeny;'`"
1274    ])
1275    RUBY_TEENY="$svn_cv_ruby_teeny"
1276    
1277    AC_SUBST(RUBY_MAJOR)
1278    AC_SUBST(RUBY_MINOR)
1279    AC_SUBST(RUBY_TEENY)
1280    if test \( "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -gt "8" -a "$RUBY_TEENY" -lt "3" \); then
1281      # Disallow Ruby between 1.8.7 and 1.9.3
1282      RUBY="none"
1283      AC_MSG_WARN([The detected Ruby is between 1.9 and 1.9.3])
1284      AC_MSG_WARN([Only 1.8.x and 1.9.3 releases are supported at this time])
1285    elif test \(  "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -eq "9" -a "$RUBY_TEENY" -eq "3" \); then
1286      #Warn about 1.9.3 support
1287      AC_MSG_WARN([WARNING: The detected Ruby is 1.9.3])
1288      AC_MSG_WARN([WARNING: Only 1.8.x releases are fully supported, 1.9.3 support is new])
1289    fi
1290  else
1291    AC_MSG_RESULT([no])
1292    RUBY="none"
1293    AC_MSG_WARN([The detected Ruby is too old for Subversion to use])
1294    AC_MSG_WARN([A Ruby which has rb_hash_foreach is required to use the])
1295    AC_MSG_WARN([Subversion Ruby bindings])
1296    AC_MSG_WARN([Upgrade to the official 1.8.2 release, or later])
1297  fi
1298fi
1299
1300SVN_CHECK_SWIG
1301
1302SVN_CHECK_CTYPESGEN
1303
1304dnl decide whether we want to link against the RA/FS libraries
1305AC_ARG_ENABLE(runtime-module-search,
1306AS_HELP_STRING([--enable-runtime-module-search],
1307               [Turn on dynamic loading of RA/FS libraries including
1308                third-party FS libraries]),
1309[
1310    if test "$enableval" = "yes"; then
1311      use_dso=yes
1312      if test "$svn_enable_shared" = "no"; then
1313        AC_MSG_ERROR([--enable-runtime-module-search conflicts with --disable-shared])
1314      fi
1315      AC_DEFINE(SVN_USE_DSO, 1,
1316                [Defined if svn should try to load DSOs])
1317    fi
1318])
1319
1320if test "$svn_enable_shared" = "no" || test "$use_dso" != "yes"; then
1321  AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL, 1,
1322      [Defined if libsvn_client should link against libsvn_ra_local])
1323  svn_ra_lib_deps="\$(RA_LOCAL_DEPS)"
1324  svn_ra_lib_install_deps="install-ramod-lib"
1325  svn_ra_lib_link="\$(RA_LOCAL_LINK)"
1326
1327  AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_SVN, 1,
1328      [Defined if libsvn_client should link against libsvn_ra_svn])
1329  svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SVN_DEPS)"
1330  svn_ra_lib_link="$svn_ra_lib_link \$(RA_SVN_LINK)"
1331
1332  if test "$svn_lib_serf" = "yes"; then
1333    AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_SERF, 1,
1334          [Defined if libsvn_client should link against libsvn_ra_serf])
1335    svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SERF_DEPS)"
1336    svn_ra_lib_install_deps="$svn_ra_lib_install_deps install-serf-lib"
1337    svn_ra_lib_link="$svn_ra_lib_link \$(RA_SERF_LINK)"
1338  fi
1339
1340  SVN_RA_LIB_DEPS=$svn_ra_lib_deps
1341  SVN_RA_LIB_INSTALL_DEPS=$svn_ra_lib_install_deps
1342  SVN_RA_LIB_LINK=$svn_ra_lib_link
1343
1344  AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_FS, 1,
1345      [Defined if libsvn_fs should link against libsvn_fs_fs])
1346  svn_fs_lib_deps="\$(FS_FS_DEPS)"
1347  svn_fs_lib_install_deps="install-fsmod-lib"
1348  svn_fs_lib_link="\$(FS_FS_LINK)"
1349
1350  if test "$svn_lib_berkeley_db" = "yes"; then
1351  AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_BASE, 1,
1352      [Defined if libsvn_fs should link against libsvn_fs_base])
1353    svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_BASE_DEPS)"
1354    svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-bdb-lib"
1355    svn_fs_lib_link="$svn_fs_lib_link \$(FS_BASE_LINK)"
1356  fi
1357
1358  SVN_FS_LIB_DEPS=$svn_fs_lib_deps
1359  SVN_FS_LIB_INSTALL_DEPS=$svn_fs_lib_install_deps
1360  SVN_FS_LIB_LINK=$svn_fs_lib_link
1361fi
1362
1363AC_SUBST(SVN_RA_LIB_DEPS)
1364AC_SUBST(SVN_RA_LIB_INSTALL_DEPS)
1365AC_SUBST(SVN_RA_LIB_LINK)
1366AC_SUBST(SVN_FS_LIB_DEPS)
1367AC_SUBST(SVN_FS_LIB_INSTALL_DEPS)
1368AC_SUBST(SVN_FS_LIB_LINK)
1369
1370# ==== JavaHL ================================================================
1371
1372dnl Possibly compile JavaHL
1373do_javahl_build=no
1374AC_ARG_ENABLE(javahl,
1375  AS_HELP_STRING([--enable-javahl],
1376             [Enable compilation of Java high-level bindings (requires C++)]),
1377  [ if test "$enableval" = "yes" ; then
1378        do_javahl_build="yes"
1379    fi
1380  ])
1381
1382JAVAHL_OBJDIR=""
1383INSTALL_EXTRA_JAVAHL_LIB=""
1384FIX_JAVAHL_LIB=""
1385JAVAHL_TESTS_TARGET=""
1386JAVAHL_COMPAT_TESTS_TARGET=""
1387LT_CXX_LIBADD=""
1388if test "$do_javahl_build" = "yes"; then
1389  dnl Check for suitable JDK
1390  if test "$JDK_SUITABLE" = "no"; then
1391    AC_MSG_ERROR([Cannot compile JavaHL without a suitable JDK. 
1392                  Please specify a suitable JDK using the --with-jdk option.])
1393  fi
1394  
1395  dnl The temporary directory where libtool compiles libsvnjavahl.
1396  JAVAHL_OBJDIR='$(libsvnjavahl_PATH)/.libs'
1397  
1398  os_arch=`uname`
1399  if test "$os_arch" = "Darwin"; then
1400    dnl On Darwin, JNI libs must be installed as .jnilib
1401    INSTALL_EXTRA_JAVAHL_LIB='ln -sf $(libdir)/libsvnjavahl-1.dylib $(libdir)/libsvnjavahl-1.jnilib'
1402    FIX_JAVAHL_LIB="ln -sf libsvnjavahl-1.dylib $JAVAHL_OBJDIR/libsvnjavahl-1.jnilib"
1403  fi
1404  # This segment (and the rest of r10800) is very likely unnecessary
1405  # with libtool 1.5, which automatically adds libstdc++ as a
1406  # dependency to the C++ libraries it builds.  So at some future time
1407  # when autogen.sh requires libtool 1.5 or higher, we can get rid of
1408  # it.
1409  AC_MSG_CHECKING([for additional flags to link C++ libraries])
1410  if test "x$ac_compiler_gnu" = "xyes"; then
1411    LT_CXX_LIBADD="-lstdc++"
1412    AC_MSG_RESULT([$LT_CXX_LIBADD])
1413  else
1414    AC_MSG_RESULT([none needed])
1415  fi
1416fi
1417AC_SUBST(INSTALL_EXTRA_JAVAHL_LIB)
1418AC_SUBST(JAVAHL_OBJDIR)
1419AC_SUBST(FIX_JAVAHL_LIB)
1420AC_SUBST(LT_CXX_LIBADD)
1421
1422AC_ARG_WITH(junit,
1423AS_HELP_STRING([--with-junit=PATH],
1424               [Specify a path to the junit JAR file.]),
1425[
1426    if test "$withval" != "no"; then
1427      if test -n "$JAVA_CLASSPATH"; then
1428        JAVA_CLASSPATH="$withval:$JAVA_CLASSPATH"
1429      else
1430        JAVA_CLASSPATH="$withval"
1431      fi
1432      JAVAHL_TESTS_TARGET="javahl-tests"
1433      JAVAHL_COMPAT_TESTS_TARGET="javahl-compat-tests"
1434    fi
1435])
1436AC_SUBST(JAVA_CLASSPATH)
1437AC_SUBST(JAVAHL_TESTS_TARGET)
1438AC_SUBST(JAVAHL_COMPAT_TESTS_TARGET)
1439
1440# ==== Miscellaneous bits ====================================================
1441
1442# Strip '-no-cpp-precomp' from CPPFLAGS for the clang compiler
1443### I think we get this flag from APR, so the fix probably belongs there
1444if test "$CC" = "clang"; then
1445  SVN_STRIP_FLAG(CPPFLAGS, [-no-cpp-precomp ])
1446fi
1447
1448dnl Since this is used only on Unix-y systems, define the path separator as '/'
1449AC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/',
1450        [Defined to be the path separator used on your local filesystem])
1451
1452AC_DEFINE_UNQUOTED(SVN_NULL_DEVICE_NAME, "/dev/null",
1453        [Defined to be the null device for the system])
1454
1455DEFAULT_FS_TYPE="fsfs"
1456AC_DEFINE_UNQUOTED(DEFAULT_FS_TYPE, "$DEFAULT_FS_TYPE",
1457                   [The fs type to use by default])
1458
1459DEFAULT_HTTP_LIBRARY="serf"
1460AC_DEFINE_UNQUOTED(DEFAULT_HTTP_LIBRARY, "$DEFAULT_HTTP_LIBRARY",
1461                   [The http library to use by default])
1462
1463# BSD/OS (BSDi) needs to use a different include syntax in Makefile
1464INCLUDE_OUTPUTS="include \$(top_srcdir)/build-outputs.mk"
1465case "$host" in
1466  *bsdi*)
1467    # Check whether they've installed GNU make
1468    if ! make --version > /dev/null 2>&1; then 
1469      # BSDi make
1470      INCLUDE_OUTPUTS=".include \"\$(top_srcdir)/build-outputs.mk\""
1471    fi
1472    ;;
1473esac
1474AC_SUBST(INCLUDE_OUTPUTS)
1475
1476# ==== Detection complete - output and run config.status =====================
1477
1478AC_CONFIG_HEADERS(subversion/svn_private_config.h.tmp:subversion/svn_private_config.h.in)
1479AC_CONFIG_COMMANDS([svn_private_config.h.tmp],
1480                   [svn_cf=subversion/svn_private_config.h;
1481                    $SED -e "s/@SVN_DB_HEADER@/$SVN_DB_HEADER/" $svn_cf.tmp > $svn_cf.tmp.new
1482                    cmp -s $svn_cf.tmp.new $svn_cf || mv -f $svn_cf.tmp.new $svn_cf
1483                    rm -f $svn_cf.tmp.new $svn_cf.tmp],
1484                   [SED="$SED"
1485                    SVN_DB_HEADER="$SVN_DB_HEADER"])
1486AC_CONFIG_FILES([Makefile])
1487
1488SVN_CONFIG_SCRIPT(tools/backup/hot-backup.py)
1489SVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl)
1490SVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL)
1491if test -e packages/solaris/pkginfo.in; then
1492  SVN_CONFIG_SCRIPT(packages/solaris/pkginfo)
1493fi
1494AC_SUBST(SVN_CONFIG_SCRIPT_FILES)
1495
1496# Ensure that SWIG is checked after reconfiguration.
1497rm -f .swig_checked
1498
1499dnl Provide ${host} for use in compiled code (for svn --version)
1500AC_DEFINE_UNQUOTED([SVN_BUILD_HOST], "${host}",
1501                   [Defined to the config.guess name of the build system])
1502
1503dnl Provide ${target} for use in compiled code (for user-agent string)
1504AC_DEFINE_UNQUOTED([SVN_BUILD_TARGET], "${target}",
1505                   [Defined to the config.guess name of the build target])
1506
1507AC_OUTPUT
1508
1509# ==== Print final messages to user ==========================================
1510
1511dnl Configure is long - users tend to miss warnings printed during it.
1512dnl Hence, print a warnings about what we did and didn't configure at the 
1513dnl end, where people will actually see them.
1514
1515if test "$svn_have_berkeley_db" = "no6" && test "$enable_bdb6" != "no"; then
1516  AC_MSG_WARN([We have configured without BDB filesystem support
1517
1518
1519Berkeley DB 6 was found, but not used.  Please re-run configure (see
1520./config.nice) with the '--enable-bdb6' flag to use it,
1521or explicitly specify '--disable-bdb6' or '--without-berkeley-db'
1522to silence this warning.
1523
1524Please note that some versions of Berkeley DB 6+ are under the GNU Affero
1525General Public License, version 3:
1526https://oss.oracle.com/pipermail/bdb/2013-June/000056.html
1527
1528The AGPL-3.0 licence may impose special requirements for making available
1529source code of server-side software.  The text of the licence is:
1530https://www.gnu.org/licenses/agpl-3.0.html
1531http://opensource.org/licenses/AGPL-3.0
1532
1533The Berkeley DB backend to Subversion is deprecated; see
1534http://subversion.apache.org/docs/release-notes/1.8#bdb-deprecated
1535
1536The Subversion developers have not tested Subversion with Berkeley DB 6 for
1537technical problems or bugs.
1538])
1539fi
1540