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