/[Apache-SVN]/subversion/trunk/configure.ac
ViewVC logotype

Contents of /subversion/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1878379 - (show annotations) (download)
Tue Jun 2 03:08:35 2020 UTC (4 years, 1 month ago) by futatuki
File size: 59935 byte(s)
configure: Add new option to specify path to swig bindings targets

Before this commit, it was not possible to use distinct Python
installations for the build system and test suite on the one hand,
and for building language bindings against on the other hand.

So we introduce new variable "SWIG_PY_PYTHON" for a target of
the SWIG Python bindings and a configure option to specify it. 
Also, for the symmetry we introduce "SWIG_PL_PERL" and
"SWIG_RB_RUBY" for the Perl and Ruby SWIG bindings, and options
to specify them.

* configure.ac ():
  - Use variables "SWIG_PL_PERL", "SWIG_PY_PYTHON", "SWIG_RB_RUBY" for
    targets of the SWIG Perl, Python, Ruby bindings instead of "PERL",
    "PYTHON", "RUBY".
  - Introduce --with-swig-perl, --with-swig-python, --with-swig-ruby
    options for setting variables "SWIG_PL_PERL", "SWIG_PY_PYTHON",
    "SWIG_RB_RUBY".

* Makefile.in, build/ac-macros/swig.m4 ():
  Use variables "SWIG_PL_PERL", "SWIG_PY_PYTHON", "SWIG_RB_RUBY" for
  targets of the SWIG Perl, Python, Ruby bindings instead of "PERL",
  "PYTHON", "RUBY".

* subversion/bindings/swig/INSTALL
  (BUILDING SWIG BINDINGS FOR SVN ON UNIX step 2):
  - Describe how to specify the path to the target language interpreters
    with the new options, instead of using environment variables.
  - Fix the name of glue libraries.

Review by: danielsh

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 version])
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 Suppresses 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
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([])
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 PYTHON=none
1286 fi
1287 AC_SUBST(PYTHON)
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_ARG_WITH(swig_perl,
1295 [AS_HELP_STRING([[--with-swig-perl[=PATH|auto|no]|--without-swig-perl]],
1296 [specify path to SWIG bindings target Perl interpreter [default=auto]])],
1297 [],
1298 [
1299 if test "$PERL" = "no" -o "$PERL" = "none"; then
1300 with_swig_perl=no
1301 AC_MSG_WARN([Disabling the SWIG Perl bindings' build by setting the PERL])
1302 AC_MSG_WARN([environment variable to "none" is deprecated.])
1303 AC_MSG_WARN([])
1304 AC_MSG_WARN([Please use --without-swig-perl instead.])
1305 else
1306 with_swig_perl=auto
1307 fi
1308 ])
1309 case $with_swig_perl in
1310 yes|auto|"")
1311 AC_PATH_PROG(PERL, perl, none)
1312 SWIG_PL_PERL="$PERL"
1313 ;;
1314 no|none)
1315 SWIG_PL_PERL=none
1316 ;;
1317 *)
1318 SWIG_PL_PERL="$with_swig_perl"
1319 ;;
1320 esac
1321 AC_SUBST(SWIG_PL_PERL)
1322
1323 # Python: as a target of SWIG Python bindings
1324 AC_ARG_WITH(swig_python,
1325 [AS_HELP_STRING([[--with-swig-python[=PATH|auto|no]|--without-swig-python]],
1326 [specify path to SWIG bindings target Python interpreter [default=auto]])],
1327 [],
1328 [
1329 if test "$PYTHON" = "no" -o "$PYTHON" = "none"; then
1330 with_swig_python=no
1331 else
1332 with_swig_python=auto
1333 fi
1334 ])
1335 case $with_swig_python in
1336 yes|auto|"")
1337 SWIG_PY_PYTHON="$PYTHON"
1338 ;;
1339 no|none)
1340 SWIG_PY_PYTHON=none
1341 ;;
1342 *)
1343 SWIG_PY_PYTHON="$with_swig_python"
1344 ;;
1345 esac
1346 AC_SUBST(SWIG_PY_PYTHON)
1347
1348 AC_ARG_WITH(swig_ruby,
1349 [AS_HELP_STRING([[--with-swig-ruby[=PATH|auto|no]|--without-swig-ruby]],
1350 [specify path to SWIG bindings target Ruby interpreter [default=auto]])],
1351 [],
1352 [
1353 if test "$RUBY" = "no" -o "$RUBY" = "none"; then
1354 with_swig_ruby=no
1355 AC_MSG_WARN([Disabling the SWIG Ruby bindings' build by setting the RUBY])
1356 AC_MSG_WARN([environment variable to "none" is deprecated.])
1357 AC_MSG_WARN([])
1358 AC_MSG_WARN([Please use --without-swig-ruby instead.])
1359 else
1360 with_swig_ruby=auto
1361 fi
1362 ])
1363 case $with_swig_ruby in
1364 yes|auto|"")
1365 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)
1366 SWIG_RB_RUBY="$RUBY"
1367 ;;
1368 no|none)
1369 SWIG_RB_RUBY=none
1370 ;;
1371 *)
1372 SWIG_RB_RUBY="$with_swig_ruby"
1373 ;;
1374 esac
1375 AC_SUBST(SWIG_RB_RUBY)
1376 if test "$SWIG_RB_RUBY" != "none"; then
1377 AC_MSG_CHECKING([rb_hash_foreach])
1378 if "$SWIG_RB_RUBY" -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)' >/dev/null; then
1379 AC_MSG_RESULT([yes])
1380 if test -n "$RDOC"; then
1381 AC_PATH_PROG(RDOC, "$RDOC", none)
1382 else
1383 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)
1384 fi
1385 AC_CACHE_CHECK([for Ruby major version], [svn_cv_ruby_major],[
1386 svn_cv_ruby_major="`$SWIG_RB_RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MAJOR))'`"
1387 ])
1388 RUBY_MAJOR="$svn_cv_ruby_major"
1389
1390 AC_CACHE_CHECK([for Ruby minor version], [svn_cv_ruby_minor],[
1391 svn_cv_ruby_minor="`$SWIG_RB_RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MINOR))'`"
1392 ])
1393 RUBY_MINOR="$svn_cv_ruby_minor"
1394
1395 AC_CACHE_CHECK([for Ruby teeny version], [svn_cv_ruby_teeny],[
1396 svn_cv_ruby_teeny="`$SWIG_RB_RUBY -rrbconfig -e 'major, minor, teeny = RUBY_VERSION.split("."); print teeny;'`"
1397 ])
1398 RUBY_TEENY="$svn_cv_ruby_teeny"
1399
1400 AC_SUBST(RUBY_MAJOR)
1401 AC_SUBST(RUBY_MINOR)
1402 AC_SUBST(RUBY_TEENY)
1403 if test \( "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -gt "8" -a "$RUBY_TEENY" -lt "3" \); then
1404 # Disallow Ruby between 1.8.7 and 1.9.3
1405 SWIG_RB_RUBY="none"
1406 AC_MSG_WARN([The detected Ruby is between 1.9 and 1.9.3])
1407 AC_MSG_WARN([Only 1.8.x and 1.9.3 or later are supported at this time])
1408 fi
1409 else
1410 AC_MSG_RESULT([no])
1411 SWIG_RB_RUBY="none"
1412 AC_MSG_WARN([The detected Ruby is too old for Subversion to use])
1413 AC_MSG_WARN([A Ruby which has rb_hash_foreach is required to use the])
1414 AC_MSG_WARN([Subversion Ruby bindings])
1415 AC_MSG_WARN([Upgrade to the official 1.8.2 release, or later])
1416 fi
1417 fi
1418
1419 SVN_CHECK_SWIG
1420 AC_ARG_VAR(SWIG_FEATURES, [SWIG feature flags common to all bindings])
1421 AC_ARG_VAR(SWIG_RB_FEATURES, [SWIG feature flags specific to Ruby bindings])
1422 AC_ARG_VAR(SWIG_PL_FEATURES, [SWIG feature flags specific to Perl bindings])
1423 AC_ARG_VAR(SWIG_PY_FEATURES, [SWIG feature flags specific to Python bindings])
1424
1425 SVN_CHECK_CTYPESGEN
1426
1427 dnl decide whether we want to link against the RA/FS libraries
1428 AC_ARG_ENABLE(runtime-module-search,
1429 AS_HELP_STRING([--enable-runtime-module-search],
1430 [Turn on dynamic loading of RA/FS libraries including
1431 third-party FS libraries]),
1432 [
1433 if test "$enableval" = "yes"; then
1434 use_dso=yes
1435 if test "$svn_enable_shared" = "no"; then
1436 AC_MSG_ERROR([--enable-runtime-module-search conflicts with --disable-shared])
1437 fi
1438 AC_DEFINE(SVN_USE_DSO, 1,
1439 [Defined if svn should try to load DSOs])
1440
1441 dnl Mac OS X uses libname.MAJOR.SOVERSION.dylib
1442 dnl Most other unixes use libname.MAJOR.so.SOVERSION
1443 case "$host" in
1444 *-*-darwin*)
1445 AC_DEFINE(SVN_DSO_SUFFIX_FMT, ["%d.%d.dylib"],
1446 [Shared library file name suffix format])
1447 ;;
1448 *)
1449 AC_DEFINE(SVN_DSO_SUFFIX_FMT, ["%d.so.%d"],
1450 [Shared library file name suffix format])
1451 ;;
1452 esac
1453 fi
1454 ])
1455
1456 if test "$svn_enable_shared" = "no" || test "$use_dso" != "yes"; then
1457 AC_DEFINE(SVN_LIBSVN_RA_LINKS_RA_LOCAL, 1,
1458 [Defined if libsvn_ra should link against libsvn_ra_local])
1459 svn_ra_lib_deps="\$(RA_LOCAL_DEPS)"
1460 svn_ra_lib_install_deps="install-ramod-lib"
1461 svn_ra_lib_link="\$(RA_LOCAL_LINK)"
1462
1463 AC_DEFINE(SVN_LIBSVN_RA_LINKS_RA_SVN, 1,
1464 [Defined if libsvn_ra should link against libsvn_ra_svn])
1465 svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SVN_DEPS)"
1466 svn_ra_lib_link="$svn_ra_lib_link \$(RA_SVN_LINK)"
1467
1468 if test "$svn_lib_serf" = "yes"; then
1469 AC_DEFINE(SVN_LIBSVN_RA_LINKS_RA_SERF, 1,
1470 [Defined if libsvn_ra should link against libsvn_ra_serf])
1471 svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SERF_DEPS)"
1472 svn_ra_lib_install_deps="$svn_ra_lib_install_deps install-serf-lib"
1473 svn_ra_lib_link="$svn_ra_lib_link \$(RA_SERF_LINK)"
1474 fi
1475
1476 SVN_RA_LIB_DEPS=$svn_ra_lib_deps
1477 SVN_RA_LIB_INSTALL_DEPS=$svn_ra_lib_install_deps
1478 SVN_RA_LIB_LINK=$svn_ra_lib_link
1479
1480 AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_FS, 1,
1481 [Defined if libsvn_fs should link against libsvn_fs_fs])
1482 svn_fs_lib_deps="\$(FS_FS_DEPS)"
1483 svn_fs_lib_install_deps="install-fsmod-lib"
1484 svn_fs_lib_link="\$(FS_FS_LINK)"
1485
1486 AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_X, 1,
1487 [Defined if libsvn_fs should link against libsvn_fs_x])
1488 svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_X_DEPS)"
1489 svn_fs_lib_link="$svn_fs_lib_link \$(FS_X_LINK)"
1490 dnl FSFS already installs fsmod
1491 dnl svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-fsmod-lib"
1492
1493 if test "$svn_lib_berkeley_db" = "yes"; then
1494 AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_BASE, 1,
1495 [Defined if libsvn_fs should link against libsvn_fs_base])
1496 svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_BASE_DEPS)"
1497 svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-bdb-lib"
1498 svn_fs_lib_link="$svn_fs_lib_link \$(FS_BASE_LINK)"
1499 fi
1500
1501 SVN_FS_LIB_DEPS=$svn_fs_lib_deps
1502 SVN_FS_LIB_INSTALL_DEPS=$svn_fs_lib_install_deps
1503 SVN_FS_LIB_LINK=$svn_fs_lib_link
1504 fi
1505
1506 AC_SUBST(SVN_RA_LIB_DEPS)
1507 AC_SUBST(SVN_RA_LIB_INSTALL_DEPS)
1508 AC_SUBST(SVN_RA_LIB_LINK)
1509 AC_SUBST(SVN_FS_LIB_DEPS)
1510 AC_SUBST(SVN_FS_LIB_INSTALL_DEPS)
1511 AC_SUBST(SVN_FS_LIB_LINK)
1512
1513 # ==== SVN++ =================================================================
1514
1515 dnl Possibly compile SVN++
1516 do_svnxx_build=no
1517 AC_ARG_ENABLE(svnxx,
1518 AS_HELP_STRING([--enable-svnxx],
1519 [Enable compilation of the C++ bindings (requires C++)]),
1520 [ if test "$enableval" = "yes" ; then
1521 AC_MSG_NOTICE([Enabling the C++ bindings])
1522 do_svnxx_build=yes
1523 fi
1524 ])
1525
1526 dnl Possibly compile SVN++ tests
1527 do_svnxx_test_build=no
1528 AC_ARG_ENABLE(svnxx-tests,
1529 AS_HELP_STRING([--enable-svnxx-tests],
1530 [Enable compilation of tests for the C++ bindings
1531 (implies --enable-svnxx, requires Boost and Boost.Test)]),
1532 [ if test "$enableval" = "yes" ; then
1533 AC_MSG_NOTICE([Enabling tests for the C++ bindings])
1534 do_svnxx_test_build=yes
1535 fi
1536 ])
1537
1538 AX_BOOST_BASE([1.58],
1539 [
1540 if test "$do_svnxx_test_build" = "yes"; then
1541 AX_BOOST_UNIT_TEST_FRAMEWORK
1542 fi
1543 ],
1544 [
1545 if test "$do_svnxx_test_build" = "yes"; then
1546 AC_MSG_WARN([Tests for the C++ bindings require Boost and Boost.Test])
1547 do_svnxx_test_build=no
1548 fi
1549 ])
1550
1551 if test "$do_svnxx_test_build" = "yes"; then
1552 if test "$want_boost" != "yes"; then
1553 AC_MSG_WARN([Tests for the C++ bindings require Boost and Boost.Test])
1554 do_svnxx_test_build=no
1555 SVN_BUILD_SVNXX_TESTS=false
1556 else
1557 if test "$do_svnxx_build" != "yes"; then
1558 AC_MSG_WARN([Enabling the C++ bindings because their tests are enabled])
1559 do_svnxx_build=yes
1560 fi
1561 SVN_BUILD_SVNXX_TESTS=true
1562 fi
1563 else
1564 SVN_BUILD_SVNXX_TESTS=false
1565 fi
1566
1567 if test "$do_svnxx_build" = "yes"; then
1568 SVN_BUILD_SVNXX=true
1569 else
1570 SVN_BUILD_SVNXX=false
1571 fi
1572
1573 AC_SUBST(SVN_BUILD_SVNXX)
1574 AC_SUBST(SVN_BUILD_SVNXX_TESTS)
1575
1576 # ==== JavaHL ================================================================
1577
1578 dnl Possibly compile JavaHL
1579 do_javahl_build=no
1580 AC_ARG_ENABLE(javahl,
1581 AS_HELP_STRING([--enable-javahl],
1582 [Enable compilation of Java high-level bindings (requires C++)]),
1583 [ if test "$enableval" = "yes" ; then
1584 do_javahl_build="yes"
1585 fi
1586 ])
1587
1588 JAVAHL_OBJDIR=""
1589 INSTALL_EXTRA_JAVAHL_LIB=""
1590 FIX_JAVAHL_LIB=""
1591 JAVAHL_TESTS_TARGET=""
1592 JAVAHL_COMPAT_TESTS_TARGET=""
1593 LT_CXX_LIBADD=""
1594 if test "$do_javahl_build" = "yes"; then
1595 dnl Check for suitable JDK
1596 if test "$JDK_SUITABLE" = "no"; then
1597 AC_MSG_ERROR([Cannot compile JavaHL without a suitable JDK.
1598 Please specify a suitable JDK using the --with-jdk option.])
1599 fi
1600
1601 dnl The temporary directory where libtool compiles libsvnjavahl.
1602 JAVAHL_OBJDIR='$(libsvnjavahl_PATH)/.libs'
1603
1604 os_arch=`uname`
1605 if test "$os_arch" = "Darwin"; then
1606 dnl On Darwin, JNI libs must be installed as .jnilib
1607 INSTALL_EXTRA_JAVAHL_LIB='ln -sf $(libdir)/libsvnjavahl-1.dylib $(libdir)/libsvnjavahl-1.jnilib'
1608 FIX_JAVAHL_LIB="ln -sf libsvnjavahl-1.dylib $JAVAHL_OBJDIR/libsvnjavahl-1.jnilib"
1609 fi
1610 # This segment (and the rest of r10800) is very likely unnecessary
1611 # with libtool 1.5, which automatically adds libstdc++ as a
1612 # dependency to the C++ libraries it builds. So at some future time
1613 # when autogen.sh requires libtool 1.5 or higher, we can get rid of
1614 # it.
1615 AC_MSG_CHECKING([for additional flags to link C++ libraries])
1616 if test "x$ac_compiler_gnu" = "xyes"; then
1617 case "$host" in
1618 *freebsd10*)
1619 AC_MSG_RESULT([none needed])
1620 ;;
1621 *)
1622 LT_CXX_LIBADD="-lstdc++"
1623 AC_MSG_RESULT([$LT_CXX_LIBADD])
1624 ;;
1625 esac
1626 else
1627 AC_MSG_RESULT([none needed])
1628 fi
1629 fi
1630 AC_SUBST(INSTALL_EXTRA_JAVAHL_LIB)
1631 AC_SUBST(JAVAHL_OBJDIR)
1632 AC_SUBST(FIX_JAVAHL_LIB)
1633 AC_SUBST(LT_CXX_LIBADD)
1634
1635 AC_ARG_WITH(junit,
1636 AS_HELP_STRING([--with-junit=PATH],
1637 [Specify a path to the junit JAR file.]),
1638 [
1639 if test "$withval" != "no"; then
1640 if test -n "$JAVA_CLASSPATH"; then
1641 JAVA_CLASSPATH="$withval:$JAVA_CLASSPATH"
1642 else
1643 JAVA_CLASSPATH="$withval"
1644 fi
1645 JAVAHL_TESTS_TARGET="javahl-tests"
1646 JAVAHL_COMPAT_TESTS_TARGET="javahl-compat-tests"
1647 fi
1648 ])
1649 AC_SUBST(JAVA_CLASSPATH)
1650 AC_SUBST(JAVAHL_TESTS_TARGET)
1651 AC_SUBST(JAVAHL_COMPAT_TESTS_TARGET)
1652
1653 # ==== Miscellaneous bits ====================================================
1654
1655 AC_CHECK_HEADERS([stdbool.h stdint.h])
1656
1657 # Strip '-no-cpp-precomp' from CPPFLAGS for the clang compiler
1658 ### I think we get this flag from APR, so the fix probably belongs there
1659 if test "$CC" = "clang"; then
1660 SVN_STRIP_FLAG(CPPFLAGS, [-no-cpp-precomp ])
1661 fi
1662
1663 dnl Since this is used only on Unix-y systems, define the path separator as '/'
1664 AC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/',
1665 [Defined to be the path separator used on your local filesystem])
1666
1667 AC_DEFINE_UNQUOTED(SVN_NULL_DEVICE_NAME, "/dev/null",
1668 [Defined to be the null device for the system])
1669
1670 DEFAULT_FS_TYPE="fsfs"
1671 AC_DEFINE_UNQUOTED(DEFAULT_FS_TYPE, "$DEFAULT_FS_TYPE",
1672 [The fs type to use by default])
1673
1674 DEFAULT_HTTP_LIBRARY="serf"
1675 AC_DEFINE_UNQUOTED(DEFAULT_HTTP_LIBRARY, "$DEFAULT_HTTP_LIBRARY",
1676 [The http library to use by default])
1677
1678 # BSD/OS (BSDi) needs to use a different include syntax in Makefile
1679 INCLUDE_OUTPUTS="include \$(top_srcdir)/build-outputs.mk"
1680 case "$host" in
1681 *bsdi*)
1682 # Check whether they've installed GNU make
1683 if ! make --version > /dev/null 2>&1; then
1684 # BSDi make
1685 INCLUDE_OUTPUTS=".include \"\$(top_srcdir)/build-outputs.mk\""
1686 fi
1687 ;;
1688 esac
1689 AC_SUBST(INCLUDE_OUTPUTS)
1690
1691 # ==== Detection complete - output and run config.status =====================
1692
1693 AC_CONFIG_HEADERS(subversion/svn_private_config.h.tmp:subversion/svn_private_config.h.in)
1694 AC_CONFIG_COMMANDS([svn_private_config.h.tmp],
1695 [svn_cf=subversion/svn_private_config.h;
1696 $SED -e "s/@SVN_DB_HEADER@/$SVN_DB_HEADER/" $svn_cf.tmp > $svn_cf.tmp.new
1697 cmp -s $svn_cf.tmp.new $svn_cf || mv -f $svn_cf.tmp.new $svn_cf
1698 rm -f $svn_cf.tmp.new $svn_cf.tmp],
1699 [SED="$SED"
1700 SVN_DB_HEADER="$SVN_DB_HEADER"])
1701 AC_CONFIG_FILES([Makefile])
1702
1703 # Create pkg-config .pc files from .pc.in files
1704 for pc_in_file in "${abs_srcdir}"/subversion/libsvn_*/*.pc.in; do
1705 pc_file=${pc_in_file#${abs_srcdir}/}
1706 pc_file=${pc_file%.in}
1707 AC_CONFIG_FILES([${pc_file}])
1708 done
1709
1710 SVN_CONFIG_SCRIPT(tools/backup/hot-backup.py)
1711 SVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl)
1712 SVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL)
1713 if test -e packages/solaris/pkginfo.in; then
1714 SVN_CONFIG_SCRIPT(packages/solaris/pkginfo)
1715 fi
1716 AC_SUBST(SVN_CONFIG_SCRIPT_FILES)
1717
1718 # Ensure that SWIG is checked after reconfiguration.
1719 rm -f .swig_checked .swig_pl_checked .swig_py_checked .swig_rb_checked
1720
1721 dnl Provide ${host} for use in compiled code (for svn --version)
1722 AC_DEFINE_UNQUOTED([SVN_BUILD_HOST], "${host}",
1723 [Defined to the config.guess name of the build system])
1724
1725 dnl Provide ${target} for use in compiled code (for user-agent string)
1726 AC_DEFINE_UNQUOTED([SVN_BUILD_TARGET], "${target}",
1727 [Defined to the config.guess name of the build target])
1728
1729 AC_OUTPUT
1730
1731 # ==== Print final messages to user ==========================================
1732
1733 dnl Configure is long - users tend to miss warnings printed during it.
1734 dnl Hence, print a warnings about what we did and didn't configure at the
1735 dnl end, where people will actually see them.
1736
1737 if test "$svn_have_berkeley_db" = "no6" && test "$enable_bdb6" != "no"; then
1738 AC_MSG_WARN([We have configured without BDB filesystem support
1739
1740
1741 Berkeley DB 6 was found, but not used. Please re-run configure (see
1742 ./config.nice) with the '--enable-bdb6' flag to use it,
1743 or explicitly specify '--disable-bdb6' or '--without-berkeley-db'
1744 to silence this warning.
1745
1746 Please note that some versions of Berkeley DB 6+ are under the GNU Affero
1747 General Public License, version 3:
1748 https://oss.oracle.com/pipermail/bdb/2013-June/000056.html
1749
1750 The AGPL-3.0 licence may impose special requirements for making available
1751 source code of server-side software. The text of the licence is:
1752 https://www.gnu.org/licenses/agpl-3.0.html
1753 http://opensource.org/licenses/AGPL-3.0
1754
1755 The Berkeley DB backend to Subversion is deprecated; see
1756 http://subversion.apache.org/docs/release-notes/1.8#bdb-deprecated
1757
1758 The Subversion developers have not tested Subversion with Berkeley DB 6 for
1759 technical problems or bugs.
1760 ])
1761 fi

Properties

Name Value
svn:eol-style native

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26