]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/subversion/configure.ac
Backport security fix for absolute path traversal vulnerability in bsdcpio.
[FreeBSD/stable/10.git] / contrib / subversion / configure.ac
1 dnl     Licensed to the Apache Software Foundation (ASF) under one
2 dnl     or more contributor license agreements.  See the NOTICE file
3 dnl     distributed with this work for additional information
4 dnl     regarding copyright ownership.  The ASF licenses this file
5 dnl     to you under the Apache License, Version 2.0 (the
6 dnl     "License"); you may not use this file except in compliance
7 dnl     with the License.  You may obtain a copy of the License at
8 dnl    
9 dnl       http://www.apache.org/licenses/LICENSE-2.0
10 dnl    
11 dnl     Unless required by applicable law or agreed to in writing,
12 dnl     software distributed under the License is distributed on an
13 dnl     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 dnl     KIND, either express or implied.  See the License for the
15 dnl     specific language governing permissions and limitations
16 dnl     under the License.
17
18 dnl configure.ac: Autoconfiscation for Subversion
19 dnl Process this file with autoconf to produce a configure script.
20
21 AC_PREREQ(2.59)
22
23 dnl Get the version of Subversion, using m4's esyscmd() command to do this
24 dnl at m4-time, since AC_INIT() requires it then.
25 AC_INIT([subversion],
26      [esyscmd(python build/getversion.py SVN subversion/include/svn_version.h)],
27      [http://subversion.apache.org/])
28
29 AC_CONFIG_SRCDIR(subversion/include/svn_types.h)
30 AC_CONFIG_AUX_DIR([build])
31
32 AC_MSG_NOTICE([Configuring Subversion ]AC_PACKAGE_VERSION)
33
34 AC_SUBST([abs_srcdir], ["`cd $srcdir && pwd`"])
35 AC_SUBST([abs_builddir], ["`pwd`"])
36 if test "$abs_srcdir" = "$abs_builddir"; then
37   canonicalized_srcdir=""
38 else
39   canonicalized_srcdir="$srcdir/"
40 fi
41 AC_SUBST([canonicalized_srcdir])
42
43 SWIG_LDFLAGS="$LDFLAGS"
44 AC_SUBST([SWIG_LDFLAGS])
45
46 # Generate config.nice early (before the arguments are munged)
47 SVN_CONFIG_NICE(config.nice)
48
49 # ==== Check for programs ====================================================
50
51 # Look for a C compiler (before anything can set CFLAGS)
52 CUSERFLAGS="$CFLAGS"
53 AC_PROG_CC
54 SVN_CC_MODE_SETUP
55
56 # Look for a C++ compiler (before anything can set CXXFLAGS)
57 CXXUSERFLAGS="$CXXFLAGS"
58 AC_PROG_CXX
59 SVN_CXX_MODE_SETUP
60
61 # Look for a C pre-processor
62 AC_PROG_CPP
63
64 # Look for a good sed
65 # AC_PROG_SED was introduced in Autoconf 2.59b
66 m4_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
69 AC_CANONICAL_TARGET
70
71 # Look for an extended grep
72 AC_PROG_EGREP
73
74 AC_PROG_LN_S
75
76 AC_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.
80 if test "$INSTALL" = "build/install-sh -c"; then
81   INSTALL="$abs_srcdir/$INSTALL"
82 fi
83
84 if test -z "$MKDIR"; then
85   MKDIR="$INSTALL -d"
86 fi
87 AC_SUBST([MKDIR])
88
89 # ==== Libraries, for which we may have source to build ======================
90
91 dnl verify apr version and set apr flags
92 dnl These regular expressions should not contain "\(" and "\)".
93
94 APR_VER_REGEXES=["1\.[3-9]\. 2\."]
95
96 SVN_LIB_APR($APR_VER_REGEXES)
97
98 if 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
108 else
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
113 fi
114 AC_SUBST(SVN_APR_MAJOR_VERSION)
115 SVN_LT_SOVERSION="-version-info $svn_lib_ver"
116 AC_SUBST(SVN_LT_SOVERSION)
117 AC_DEFINE_UNQUOTED(SVN_SOVERSION, $svn_lib_ver,
118                    [Subversion library major verson])
119
120 dnl Search for pkg-config
121 AC_PATH_PROG(PKG_CONFIG, pkg-config)
122
123 dnl Search for serf
124 SVN_LIB_SERF(1,3,4)
125
126 if test "$svn_lib_serf" = "yes"; then
127   AC_DEFINE([SVN_HAVE_SERF], 1,
128             [Defined if support for Serf is enabled])
129 fi
130
131 dnl Search for apr_memcache (only affects fs_fs)
132 SVN_LIB_APR_MEMCACHE
133
134 if 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])
137 fi
138
139
140 dnl Find Apache with a recent-enough magic module number
141 SVN_FIND_APACHE(20051115)
142
143 dnl Search for SQLite.  If you change SQLITE_URL from a .zip to
144 dnl something else also update build/ac-macros/sqlite.m4 to reflect
145 dnl the correct command to unpack the downloaded file.
146 SQLITE_MINIMUM_VER="3.7.12"
147 SQLITE_RECOMMENDED_VER="3.7.15.1"
148 SQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-$(printf %d%02d%02d%02d $(echo ${SQLITE_RECOMMENDED_VER} | sed -e 's/\./ /g')).zip"
149
150 SVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER},
151                ${SQLITE_URL})
152
153 AC_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
158 if 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"
163 fi
164
165 SVN_CHECK_FOR_ATOMIC_BUILTINS
166 if test "$svn_cv_atomic_builtins" = "yes"; then
167     AC_DEFINE(SVN_HAS_ATOMIC_BUILTINS, 1, [Define if compiler provides atomic builtins])
168 fi
169
170 dnl Set up a number of directories ---------------------
171
172 dnl Create SVN_BINDIR for proper substitution
173 if 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
183 else
184         SVN_BINDIR="${bindir}"
185 fi
186
187 dnl fully evaluate this value. when we substitute it into our tool scripts,
188 dnl they will not have things such as ${bindir} available
189 SVN_BINDIR="`eval echo ${SVN_BINDIR}`"
190 AC_SUBST(SVN_BINDIR)
191
192 dnl provide ${bindir} in svn_private_config.h for use in compiled code
193 AC_DEFINE_UNQUOTED(SVN_BINDIR, "${SVN_BINDIR}",
194         [Defined to be the path to the installed binaries])
195
196 dnl This purposely does *not* allow for multiple parallel installs.
197 dnl However, it is compatible with most gettext usages.
198 localedir='${datadir}/locale'
199 AC_SUBST(localedir)
200
201 dnl For SVN_LOCALE_DIR, we have to expand it to something.  See SVN_BINDIR.
202 if test "${datadir}" = '${prefix}/share' && test "${prefix}" = "NONE"; then
203   exp_localedir='${ac_default_prefix}/share/locale'
204 else
205   exp_localedir=$localedir
206 fi
207 SVN_EXPAND_VAR(svn_localedir, "${exp_localedir}")
208 AC_DEFINE_UNQUOTED(SVN_LOCALE_DIR, "${svn_localedir}",
209                    [Defined to be the path to the installed locale dirs])
210
211 dnl Check for libtool -- we'll definitely need it for all our shared libs!
212 AC_MSG_NOTICE([configuring libtool now])
213 ifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL])
214 AC_ARG_ENABLE(experimental-libtool,
215   AS_HELP_STRING([--enable-experimental-libtool],[Use APR's libtool]),
216   [experimental_libtool=$enableval],[experimental_libtool=no])
217
218 if 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"
223 else
224   sh_libtool="$abs_builddir/libtool"
225   SVN_LIBTOOL="\$(SHELL) \"$sh_libtool\""
226 fi
227 AC_SUBST(SVN_LIBTOOL)
228
229 dnl Determine the libtool version
230 changequote(, )dnl
231 lt_pversion=`$LIBTOOL --version 2>/dev/null|$SED -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'`
232 lt_version=`echo $lt_pversion|$SED -e 's/\([a-z]*\)$/.\1/'`
233 lt_major_version=`echo $lt_version | cut -d'.' -f 1`
234 changequote([, ])dnl
235
236 dnl set the default parameters
237 svn_enable_static=yes
238 svn_enable_shared=yes
239
240 dnl check for --enable-static option
241 AC_ARG_ENABLE(static,
242   AS_HELP_STRING([--enable-static],
243                  [Build static libraries]),
244   [svn_enable_static="$enableval"], [svn_enable_static="yes"])
245
246 dnl check for --enable-shared option
247 AC_ARG_ENABLE(shared,
248   AS_HELP_STRING([--enable-shared],
249                  [Build shared libraries]),
250   [svn_enable_shared="$enableval"], [svn_enable_shared="yes"])
251
252 if test "$svn_enable_static" = "yes" && test "$svn_enable_shared" = "yes" ; then
253   AC_MSG_NOTICE([building both shared and static libraries])
254 elif 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"
258 elif 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"
266 else
267   AC_MSG_ERROR([cannot disable both shared and static libraries])
268 fi
269
270 dnl Check for --enable-all-static option
271 AC_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
282 AC_SUBST(LT_CFLAGS)
283 AC_SUBST(LT_LDFLAGS)
284
285 AC_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 ])
304 AC_SUBST(TRANSFORM_LIBTOOL_SCRIPTS)
305
306 dnl Check if -no-undefined is needed for the platform.
307 dnl It should always work but with libtool 1.4.3 on OS X it breaks the build.
308 dnl So we only turn it on for platforms where we know we really need it.
309 AC_MSG_CHECKING([whether libtool needs -no-undefined])
310 case $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     ;;
319 esac
320 AC_SUBST(LT_NO_UNDEFINED)
321
322 dnl Check for trang.
323 trang=yes
324 AC_ARG_WITH(trang,
325 AS_HELP_STRING([--with-trang=PATH],
326                [Specify the command to run the trang schema converter]),
327 [
328     trang="$withval"
329 ])
330 if test "$trang" = "yes"; then
331     AC_PATH_PROG(TRANG, trang, none)
332 else
333     TRANG="$trang"
334     AC_SUBST(TRANG)
335 fi
336
337 dnl Check for doxygen
338 doxygen=yes
339 AC_ARG_WITH(doxygen,
340 AC_HELP_STRING([--with-doxygen=PATH],
341                [Specify the command to run doxygen]),
342 [
343     doxygen="$withval"
344 ])
345 if test "$doxygen" = "yes"; then
346     AC_PATH_PROG(DOXYGEN, doxygen, none)
347 else
348     DOXYGEN="$doxygen"
349     AC_SUBST(DOXYGEN)
350 fi
351
352
353 dnl Check for libraries --------------------
354
355 dnl Expat -------------------
356
357 AC_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.
366 test "_$svn_lib_expat" = "_builtin" && svn_lib_expat="::expat"
367
368 AC_MSG_CHECKING([for Expat])
369 if 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>
388 int 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>
402 int 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"
413 else
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
422 fi
423 AC_SUBST(SVN_XML_INCLUDES)
424 AC_SUBST(SVN_XML_LIBS)
425
426 dnl Berkeley DB -------------------
427
428 # Berkeley DB on SCO OpenServer needs -lsocket
429 AC_CHECK_LIB(socket, socket)
430
431 # Build the BDB filesystem library only if we have an appropriate
432 # version of Berkeley DB.
433 case "$host" in
434 powerpc-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     ;;
445 esac
446 db_alt_version="5.x"
447 # Look for libdb4.so first:
448 SVN_LIB_BERKELEY_DB($SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MINOR,
449                     $SVN_FS_WANT_DB_PATCH, [db4 db])
450
451 AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MAJOR,
452                    [The desired major version for the Berkeley DB])
453 AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MINOR, $SVN_FS_WANT_DB_MINOR,
454                    [The desired minor version for the Berkeley DB])
455 AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_PATCH, $SVN_FS_WANT_DB_PATCH,
456                    [The desired patch version for the Berkeley DB])
457
458 AC_SUBST(SVN_DB_INCLUDES)
459 AC_SUBST(SVN_DB_LIBS)
460
461 SVN_LIB_SASL
462
463 if test "$svn_lib_sasl" = "yes"; then
464   AC_DEFINE(SVN_HAVE_SASL, 1,
465             [Defined if Cyrus SASL v2 is present on the system])
466 fi
467
468 dnl Mac OS specific features -------------------
469
470 SVN_LIB_MACHO_ITERATE
471 SVN_LIB_MACOS_PLIST
472 SVN_LIB_MACOS_KEYCHAIN
473
474 dnl APR_HAS_DSO -------------------
475
476 AC_MSG_CHECKING([whether APR has support for DSOs])
477 old_CPPFLAGS="$CPPFLAGS"
478 CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
479 AC_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]))
488 CPPFLAGS="$old_CPPFLAGS"
489
490
491 dnl D-Bus (required for support for KWallet) -------------------
492
493 if 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>
513 int 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
525 fi
526
527 dnl GPG Agent -------------------
528
529 AC_ARG_WITH(gpg_agent,
530 AS_HELP_STRING([--without-gpg-agent], 
531                [Disable support for GPG-Agent]),
532                [], [with_gpg_agent=yes])
533 AC_MSG_CHECKING([whether to support GPG-Agent])
534 if 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?])
538 else
539   AC_MSG_RESULT([no])
540 fi
541
542 AC_SUBST(SVN_HAVE_GPG_AGENT)
543
544 dnl GNOME Keyring -------------------
545
546 AC_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
552 found_gnome_keyring=no
553 AC_MSG_CHECKING([whether to look for GNOME Keyring])
554 if 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
619 else
620   AC_MSG_RESULT([no])
621 fi
622 AC_SUBST(SVN_GNOME_KEYRING_INCLUDES)
623 AC_SUBST(SVN_GNOME_KEYRING_LIBS)
624
625 dnl Googlemock -----------------
626 AC_ARG_ENABLE([gmock],
627   AS_HELP_STRING([--disable-gmock],
628                  [Do not use the Googlemock testing framework]),
629   [],
630   [enable_gmock=yes])
631
632 AC_SUBST([GMOCK_SRCDIR], [$abs_srcdir/gmock-fused])
633 AC_MSG_CHECKING([whether use Googlemock])
634 if 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
642 else
643   AC_MSG_RESULT([no])
644   SVN_USE_GMOCK_SOURCES=false
645 fi
646 AC_SUBST([SVN_USE_GMOCK])
647
648 dnl Ev2 experimental features ----------------------
649 dnl Note: The Ev2 implementations will be built unconditionally, but by
650 dnl providing this flag, users can choose to use the currently-shimmed Ev2
651 dnl editor implementations for various operations.  This will probably
652 dnl negatively impact performance, but is useful for testing.
653 AC_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])
657 if test "$enable_ev2_impl" = "yes"; then
658   AC_DEFINE(ENABLE_EV2_IMPL, 1,
659             [Define to 1 if Ev2 implementations should be used.])
660 fi
661
662
663 dnl I18n -------------------
664
665 AC_ARG_ENABLE(nls,
666   AS_HELP_STRING([--disable-nls],[Disable gettext functionality]),
667   [enable_nls=$enableval],[enable_nls=yes])
668
669 USE_NLS="no"
670 SVN_INTL_LIBS=""
671 if 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
717 fi
718
719 AC_SUBST(SVN_INTL_LIBS)
720
721 AH_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
771 dnl Used to simulate makefile conditionals.
772 GETTEXT_CODESET=\#
773 NO_GETTEXT_CODESET=\#
774 if test $USE_NLS = "yes"; then
775    AC_CHECK_FUNCS(bind_textdomain_codeset,
776                   [ GETTEXT_CODESET="" ],
777                   [ NO_GETTEXT_CODESET="" ])
778 fi
779 AC_SUBST(GETTEXT_CODESET)
780 AC_SUBST(NO_GETTEXT_CODESET)
781
782 # Check if we are using GNU gettext.
783 GNU_GETTEXT=no
784 MSGFMTFLAGS=''
785 if 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)
792 fi
793 AC_SUBST(MSGFMTFLAGS)
794
795 dnl libmagic -------------------
796
797 libmagic_found=no
798
799 AC_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
829 if test "$libmagic_found" != "no"; then
830   AC_DEFINE([SVN_HAVE_LIBMAGIC], [1], [Defined if libmagic support is enabled])
831   SVN_MAGIC_LIBS="-lmagic"
832 fi
833
834 if 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)`"
837 fi
838
839 AC_SUBST(SVN_MAGIC_INCLUDES)
840 AC_SUBST(SVN_MAGIC_LIBS)
841
842 dnl KWallet -------------------
843 SVN_LIB_KWALLET
844
845 if test "$svn_lib_kwallet" = "yes"; then
846   AC_DEFINE([SVN_HAVE_KWALLET], 1,
847             [Defined if KWallet support is enabled])
848 fi
849
850 dnl plaintext passwords -------------------
851 AC_ARG_ENABLE(plaintext-password-storage,
852 AS_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
865 dnl Build and install rules -------------------
866
867 INSTALL_STATIC_RULES="install-bin install-docs"
868 INSTALL_RULES="install-fsmod-lib install-ramod-lib install-lib install-include install-static"
869 INSTALL_RULES="$INSTALL_RULES $INSTALL_APACHE_RULE"
870 BUILD_RULES="fsmod-lib ramod-lib lib bin test sub-test $BUILD_APACHE_RULE tools"
871
872 if 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)"
878 fi
879
880 if 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"
884 fi
885
886 if 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"
890 fi
891
892 if 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"
896 fi
897
898 if test "$USE_NLS" = "yes"; then
899   BUILD_RULES="$BUILD_RULES locale"
900   INSTALL_RULES="$INSTALL_RULES install-locale"
901 fi
902
903 AC_SUBST(BUILD_RULES)
904 AC_SUBST(INSTALL_STATIC_RULES)
905 AC_SUBST(INSTALL_RULES)
906 AC_SUBST(BDB_TEST_DEPS)
907 AC_SUBST(BDB_TEST_PROGRAMS)
908
909 dnl Check for header files ----------------
910
911 dnl Standard C headers
912 AC_HEADER_STDC
913
914 dnl Check for typedefs, structures, and compiler characteristics ----------
915
916 dnl if compiler doesn't understand `const', then define it empty
917 AC_C_CONST
918
919 dnl if non-existent, define size_t to be `unsigned'
920 AC_TYPE_SIZE_T
921
922
923 dnl Check for library functions ----------
924
925 AC_FUNC_MEMCMP
926
927 dnl svn_error's default warning handler uses vfprintf()
928 AC_FUNC_VPRINTF
929
930 dnl check for functions needed in special file handling
931 AC_CHECK_FUNCS(symlink readlink)
932
933 dnl check for uname
934 AC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], [])
935
936 dnl check for termios
937 AC_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
943 dnl Process some configuration options ----------
944
945 AC_ARG_ENABLE(debug,
946 AS_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
960 AC_ARG_ENABLE(optimize,
961 AS_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
975 dnl Use -Wl,--no-undefined during linking of some libraries
976 AC_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])])
979 if test "$enable_disallowing_of_undefined_references" != "yes" && test "`uname`" != "Linux"; then
980   enable_disallowing_of_undefined_references="no"
981 fi
982 if 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
999 fi
1000 AC_SUBST([libsvn_auth_gnome_keyring_LDFLAGS])
1001 AC_SUBST([libsvn_auth_kwallet_LDFLAGS])
1002 AC_SUBST([libsvn_client_LDFLAGS])
1003 AC_SUBST([libsvn_delta_LDFLAGS])
1004 AC_SUBST([libsvn_diff_LDFLAGS])
1005 AC_SUBST([libsvn_fs_LDFLAGS])
1006 AC_SUBST([libsvn_fs_base_LDFLAGS])
1007 AC_SUBST([libsvn_fs_fs_LDFLAGS])
1008 AC_SUBST([libsvn_fs_util_LDFLAGS])
1009 AC_SUBST([libsvn_ra_LDFLAGS])
1010 AC_SUBST([libsvn_ra_local_LDFLAGS])
1011 AC_SUBST([libsvn_ra_serf_LDFLAGS])
1012 AC_SUBST([libsvn_ra_svn_LDFLAGS])
1013 AC_SUBST([libsvn_repos_LDFLAGS])
1014 AC_SUBST([libsvn_subr_LDFLAGS])
1015 AC_SUBST([libsvn_wc_LDFLAGS])
1016
1017
1018 AC_ARG_ENABLE(maintainer-mode,
1019 AS_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
1080 if 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"
1111 elif 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
1120 fi
1121
1122 if 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
1156 elif 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
1163 fi
1164
1165 dnl Dump the current compiler options
1166 AC_MSG_NOTICE([C compiler flags: $CFLAGS])
1167 AC_MSG_NOTICE([    user-defined: $CUSERFLAGS])
1168 AC_MSG_NOTICE([ maintainer-mode: $CMAINTAINERFLAGS])
1169 AC_MSG_NOTICE([C++ compiler flags: $CXXFLAGS])
1170 AC_MSG_NOTICE([      user-defined: $CXXUSERFLAGS])
1171 AC_MSG_NOTICE([   maintainer-mode: $CXXMAINTAINERFLAGS])
1172
1173 AC_ARG_ENABLE(full-version-match,
1174 AS_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
1185 AC_ARG_WITH(editor,
1186 AS_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
1201 SVN_LIB_Z
1202
1203 MOD_ACTIVATION=""
1204 AC_ARG_ENABLE(mod-activation,
1205 AS_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 ])
1215 AC_SUBST(MOD_ACTIVATION)
1216
1217
1218
1219 AC_ARG_ENABLE(gcov,
1220 AC_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
1243 AC_ARG_ENABLE(gprof,
1244 AS_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
1274 PYTHON="`$abs_srcdir/build/find_python.sh`"
1275 if 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])
1282 fi
1283 AC_PATH_PROGS(PYTHON, "$PYTHON", none)
1284
1285 # The minimum version for the JVM runtime for our Java bytecode.
1286 JAVA_OLDEST_WORKING_VER='1.6'
1287 # SVN_CHECK_JDK sets $JAVA_CLASSPATH
1288 SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
1289
1290 AC_PATH_PROG(PERL, perl, none)
1291
1292 if test -n "$RUBY"; then
1293   AC_PATH_PROG(RUBY, "$RUBY", none)
1294 else
1295   AC_PATH_PROGS(RUBY, ruby ruby1.8 ruby18 ruby1.9 ruby1 ruby1.9.3 ruby193 ruby2.0 ruby2.1, none)
1296 fi
1297 if 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
1338 fi
1339
1340 SVN_CHECK_SWIG
1341
1342 SVN_CHECK_CTYPESGEN
1343
1344 dnl decide whether we want to link against the RA/FS libraries
1345 AC_ARG_ENABLE(runtime-module-search,
1346 AS_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
1360 if 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)"
1394 dnl  FSFS already installs fsmod
1395 dnl  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
1408 fi
1409
1410 AC_SUBST(SVN_RA_LIB_DEPS)
1411 AC_SUBST(SVN_RA_LIB_INSTALL_DEPS)
1412 AC_SUBST(SVN_RA_LIB_LINK)
1413 AC_SUBST(SVN_FS_LIB_DEPS)
1414 AC_SUBST(SVN_FS_LIB_INSTALL_DEPS)
1415 AC_SUBST(SVN_FS_LIB_LINK)
1416
1417 # ==== JavaHL ================================================================
1418
1419 dnl Possibly compile JavaHL
1420 do_javahl_build=no
1421 AC_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
1429 JAVAHL_OBJDIR=""
1430 INSTALL_EXTRA_JAVAHL_LIB=""
1431 FIX_JAVAHL_LIB=""
1432 JAVAHL_TESTS_TARGET=""
1433 JAVAHL_COMPAT_TESTS_TARGET=""
1434 LT_CXX_LIBADD=""
1435 if 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
1470 fi
1471 AC_SUBST(INSTALL_EXTRA_JAVAHL_LIB)
1472 AC_SUBST(JAVAHL_OBJDIR)
1473 AC_SUBST(FIX_JAVAHL_LIB)
1474 AC_SUBST(LT_CXX_LIBADD)
1475
1476 AC_ARG_WITH(junit,
1477 AS_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 ])
1490 AC_SUBST(JAVA_CLASSPATH)
1491 AC_SUBST(JAVAHL_TESTS_TARGET)
1492 AC_SUBST(JAVAHL_COMPAT_TESTS_TARGET)
1493
1494 # ==== Miscellaneous bits ====================================================
1495
1496 AC_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
1500 if test "$CC" = "clang"; then
1501   SVN_STRIP_FLAG(CPPFLAGS, [-no-cpp-precomp ])
1502 fi
1503
1504 # Need to strip '-no-cpp-precomp' from CPPFLAGS for SWIG as well.
1505 SWIG_CPPFLAGS="$CPPFLAGS"
1506 SVN_STRIP_FLAG(SWIG_CPPFLAGS, [-no-cpp-precomp ])
1507 AC_SUBST([SWIG_CPPFLAGS])
1508
1509 dnl Since this is used only on Unix-y systems, define the path separator as '/'
1510 AC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/',
1511         [Defined to be the path separator used on your local filesystem])
1512
1513 AC_DEFINE_UNQUOTED(SVN_NULL_DEVICE_NAME, "/dev/null",
1514         [Defined to be the null device for the system])
1515
1516 DEFAULT_FS_TYPE="fsfs"
1517 AC_DEFINE_UNQUOTED(DEFAULT_FS_TYPE, "$DEFAULT_FS_TYPE",
1518                    [The fs type to use by default])
1519
1520 DEFAULT_HTTP_LIBRARY="serf"
1521 AC_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
1525 INCLUDE_OUTPUTS="include \$(top_srcdir)/build-outputs.mk"
1526 case "$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     ;;
1534 esac
1535 AC_SUBST(INCLUDE_OUTPUTS)
1536
1537 # ==== Detection complete - output and run config.status =====================
1538
1539 AC_CONFIG_HEADERS(subversion/svn_private_config.h.tmp:subversion/svn_private_config.h.in)
1540 AC_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"])
1547 AC_CONFIG_FILES([Makefile])
1548
1549 # Create pkg-config .pc files from .pc.in files
1550 for 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}])
1554 done
1555
1556 SVN_CONFIG_SCRIPT(tools/backup/hot-backup.py)
1557 SVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl)
1558 SVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL)
1559 if test -e packages/solaris/pkginfo.in; then
1560   SVN_CONFIG_SCRIPT(packages/solaris/pkginfo)
1561 fi
1562 AC_SUBST(SVN_CONFIG_SCRIPT_FILES)
1563
1564 # Ensure that SWIG is checked after reconfiguration.
1565 rm -f .swig_checked
1566
1567 dnl Provide ${host} for use in compiled code (for svn --version)
1568 AC_DEFINE_UNQUOTED([SVN_BUILD_HOST], "${host}",
1569                    [Defined to the config.guess name of the build system])
1570
1571 dnl Provide ${target} for use in compiled code (for user-agent string)
1572 AC_DEFINE_UNQUOTED([SVN_BUILD_TARGET], "${target}",
1573                    [Defined to the config.guess name of the build target])
1574
1575 AC_OUTPUT
1576
1577 # ==== Print final messages to user ==========================================
1578
1579 dnl Configure is long - users tend to miss warnings printed during it.
1580 dnl Hence, print a warnings about what we did and didn't configure at the 
1581 dnl end, where people will actually see them.
1582
1583 if test "$svn_have_berkeley_db" = "no6" && test "$enable_bdb6" != "no"; then
1584   AC_MSG_WARN([We have configured without BDB filesystem support
1585
1586
1587 Berkeley DB 6 was found, but not used.  Please re-run configure (see
1588 ./config.nice) with the '--enable-bdb6' flag to use it,
1589 or explicitly specify '--disable-bdb6' or '--without-berkeley-db'
1590 to silence this warning.
1591
1592 Please note that some versions of Berkeley DB 6+ are under the GNU Affero
1593 General Public License, version 3:
1594 https://oss.oracle.com/pipermail/bdb/2013-June/000056.html
1595
1596 The AGPL-3.0 licence may impose special requirements for making available
1597 source code of server-side software.  The text of the licence is:
1598 https://www.gnu.org/licenses/agpl-3.0.html
1599 http://opensource.org/licenses/AGPL-3.0
1600
1601 The Berkeley DB backend to Subversion is deprecated; see
1602 http://subversion.apache.org/docs/release-notes/1.8#bdb-deprecated
1603
1604 The Subversion developers have not tested Subversion with Berkeley DB 6 for
1605 technical problems or bugs.
1606 ])
1607 fi