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