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