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