1251881Speterdnl     Licensed to the Apache Software Foundation (ASF) under one
2251881Speterdnl     or more contributor license agreements.  See the NOTICE file
3251881Speterdnl     distributed with this work for additional information
4251881Speterdnl     regarding copyright ownership.  The ASF licenses this file
5251881Speterdnl     to you under the Apache License, Version 2.0 (the
6251881Speterdnl     "License"); you may not use this file except in compliance
7251881Speterdnl     with the License.  You may obtain a copy of the License at
8251881Speterdnl    
9251881Speterdnl       http://www.apache.org/licenses/LICENSE-2.0
10251881Speterdnl    
11251881Speterdnl     Unless required by applicable law or agreed to in writing,
12251881Speterdnl     software distributed under the License is distributed on an
13251881Speterdnl     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14251881Speterdnl     KIND, either express or implied.  See the License for the
15251881Speterdnl     specific language governing permissions and limitations
16251881Speterdnl     under the License.
17251881Speter
18251881Speterdnl configure.ac: Autoconfiscation for Subversion
19251881Speterdnl Process this file with autoconf to produce a configure script.
20251881Speter
21251881SpeterAC_PREREQ(2.59)
22251881Speter
23251881Speterdnl Get the version of Subversion, using m4's esyscmd() command to do this
24251881Speterdnl at m4-time, since AC_INIT() requires it then.
25251881SpeterAC_INIT([subversion],
26362181Sdim     [esyscmd($PYTHON build/getversion.py SVN subversion/include/svn_version.h)],
27251881Speter     [http://subversion.apache.org/])
28251881Speter
29251881SpeterAC_CONFIG_SRCDIR(subversion/include/svn_types.h)
30251881SpeterAC_CONFIG_AUX_DIR([build])
31251881Speter
32251881SpeterAC_MSG_NOTICE([Configuring Subversion ]AC_PACKAGE_VERSION)
33251881Speter
34251881SpeterAC_SUBST([abs_srcdir], ["`cd $srcdir && pwd`"])
35251881SpeterAC_SUBST([abs_builddir], ["`pwd`"])
36251881Speterif test "$abs_srcdir" = "$abs_builddir"; then
37251881Speter  canonicalized_srcdir=""
38251881Speterelse
39251881Speter  canonicalized_srcdir="$srcdir/"
40251881Speterfi
41251881SpeterAC_SUBST([canonicalized_srcdir])
42251881Speter
43251881SpeterSWIG_LDFLAGS="$LDFLAGS"
44251881SpeterAC_SUBST([SWIG_LDFLAGS])
45251881Speter
46251881Speter# Generate config.nice early (before the arguments are munged)
47251881SpeterSVN_CONFIG_NICE(config.nice)
48251881Speter
49251881Speter# ==== Check for programs ====================================================
50251881Speter
51251881Speter# Look for a C compiler (before anything can set CFLAGS)
52251881SpeterCUSERFLAGS="$CFLAGS"
53251881SpeterAC_PROG_CC
54251881SpeterSVN_CC_MODE_SETUP
55251881Speter
56251881Speter# Look for a C++ compiler (before anything can set CXXFLAGS)
57251881SpeterCXXUSERFLAGS="$CXXFLAGS"
58251881SpeterAC_PROG_CXX
59251881SpeterSVN_CXX_MODE_SETUP
60251881Speter
61251881Speter# Look for a C pre-processor
62251881SpeterAC_PROG_CPP
63251881Speter
64251881Speter# Look for a good sed
65251881Speter# AC_PROG_SED was introduced in Autoconf 2.59b
66251881Speterm4_ifdef([AC_PROG_SED], [AC_PROG_SED], [SED="${SED:-sed}"])
67251881Speter
68251881Speter# Grab target_cpu, so we can use it in the Solaris pkginfo file
69251881SpeterAC_CANONICAL_TARGET
70251881Speter
71251881Speter# Look for an extended grep
72251881SpeterAC_PROG_EGREP
73251881Speter
74251881SpeterAC_PROG_LN_S
75251881Speter
76251881SpeterAC_PROG_INSTALL
77251881Speter# If $INSTALL is relative path to our fallback install-sh, then convert
78251881Speter# to an absolute path, as in some cases (e.g. Solaris VPATH build), libtool
79251881Speter# may try to use it from a changed working directory.
80251881Speterif test "$INSTALL" = "build/install-sh -c"; then
81251881Speter  INSTALL="$abs_srcdir/$INSTALL"
82251881Speterfi
83251881Speter
84251881Speterif test -z "$MKDIR"; then
85251881Speter  MKDIR="$INSTALL -d"
86251881Speterfi
87251881SpeterAC_SUBST([MKDIR])
88251881Speter
89251881Speter# ==== Libraries, for which we may have source to build ======================
90251881Speter
91251881Speterdnl verify apr version and set apr flags
92251881Speterdnl These regular expressions should not contain "\(" and "\)".
93251881Speter
94369302SdimAPR_VER_REGEXES=["1\.[4-9]\. 2\."]
95251881Speter
96251881SpeterSVN_LIB_APR($APR_VER_REGEXES)
97251881Speter
98251881Speterif test `expr $apr_version : 2` -ne 0; then
99251881Speter  dnl Bump the library so-version to 2 if using APR-2
100251881Speter  dnl (Debian uses so-version 1 for APR-1-with-largefile)
101251881Speter  svn_lib_ver=2
102251881Speter  dnl APR-2 provides APRUTIL
103251881Speter  apu_config=$apr_config
104251881Speter  AC_SUBST(SVN_APRUTIL_INCLUDES)
105251881Speter  AC_SUBST(SVN_APRUTIL_CONFIG, ["$apu_config"])
106251881Speter  AC_SUBST(SVN_APRUTIL_LIBS)
107289180Speter  SVN_APR_MAJOR_VERSION=2
108251881Speterelse
109251881Speter  svn_lib_ver=0
110289180Speter  APU_VER_REGEXES=["1\.[3-9]\."]
111251881Speter  SVN_LIB_APRUTIL($APU_VER_REGEXES)
112289180Speter  SVN_APR_MAJOR_VERSION=1
113251881Speterfi
114289180SpeterAC_SUBST(SVN_APR_MAJOR_VERSION)
115251881SpeterSVN_LT_SOVERSION="-version-info $svn_lib_ver"
116251881SpeterAC_SUBST(SVN_LT_SOVERSION)
117251881SpeterAC_DEFINE_UNQUOTED(SVN_SOVERSION, $svn_lib_ver,
118251881Speter                   [Subversion library major verson])
119251881Speter
120251881Speterdnl Search for pkg-config
121251881SpeterAC_PATH_PROG(PKG_CONFIG, pkg-config)
122251881Speter
123251881Speterdnl Search for serf
124289180SpeterSVN_LIB_SERF(1,3,4)
125251881Speter
126251881Speterif test "$svn_lib_serf" = "yes"; then
127251881Speter  AC_DEFINE([SVN_HAVE_SERF], 1,
128251881Speter            [Defined if support for Serf is enabled])
129251881Speterfi
130251881Speter
131251881Speterdnl Search for apr_memcache (only affects fs_fs)
132251881SpeterSVN_LIB_APR_MEMCACHE
133251881Speter
134251881Speterif test "$svn_lib_apr_memcache" = "yes"; then
135251881Speter  AC_DEFINE(SVN_HAVE_MEMCACHE, 1,
136251881Speter            [Defined if apr_memcache (standalone or in apr-util) is present])
137251881Speterfi
138251881Speter
139362181SdimAC_ARG_ENABLE(apache-whitelist,
140362181Sdim  AS_HELP_STRING([--enable-apache-whitelist=VER],
141362181Sdim                 [Whitelist a particular Apache version number,
142362181Sdim                  typically used to enable the use of a old version
143362181Sdim                  patched by a distribution.]),
144362181Sdim                 [apache_whitelist_ver=$enableval],
145362181Sdim                 [apache_whitelist_ver=no])
146362181SdimHTTPD_WHITELIST="$apache_whitelist_ver"
147362181SdimAC_SUBST(HTTPD_WHITELIST)
148251881Speter
149251881Speterdnl Find Apache with a recent-enough magic module number
150362181SdimSVN_FIND_APACHE(20051115, $apache_whitelist_ver)
151251881Speter
152251881Speterdnl Search for SQLite.  If you change SQLITE_URL from a .zip to
153251881Speterdnl something else also update build/ac-macros/sqlite.m4 to reflect
154251881Speterdnl the correct command to unpack the downloaded file.
155362181SdimSQLITE_MINIMUM_VER="3.8.2"
156362181SdimSQLITE_RECOMMENDED_VER="3.8.11.1"
157362181Sdimdnl Used to construct the SQLite download URL.
158362181SdimSQLITE_RECOMMENDED_VER_REL_YEAR="2015"
159362181SdimSQLITE_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"
160251881Speter
161251881SpeterSVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER},
162251881Speter               ${SQLITE_URL})
163251881Speter
164251881SpeterAC_ARG_ENABLE(sqlite-compatibility-version,
165251881Speter  AS_HELP_STRING([--enable-sqlite-compatibility-version=X.Y.Z],
166251881Speter                 [Allow binary to run against SQLite as old as ARG]),
167251881Speter  [sqlite_compat_ver=$enableval],[sqlite_compat_ver=no])
168251881Speter
169251881Speterif test -n "$sqlite_compat_ver" && test "$sqlite_compat_ver" != no; then
170251881Speter  SVN_SQLITE_VERNUM_PARSE([$sqlite_compat_ver],
171251881Speter                          [sqlite_compat_ver_num])
172251881Speter  CFLAGS="-DSVN_SQLITE_MIN_VERSION='\"$sqlite_compat_ver\"' $CFLAGS"
173251881Speter  CFLAGS="-DSVN_SQLITE_MIN_VERSION_NUMBER=$sqlite_compat_ver_num $CFLAGS"
174251881Speterfi
175251881Speter
176251881SpeterSVN_CHECK_FOR_ATOMIC_BUILTINS
177251881Speterif test "$svn_cv_atomic_builtins" = "yes"; then
178251881Speter    AC_DEFINE(SVN_HAS_ATOMIC_BUILTINS, 1, [Define if compiler provides atomic builtins])
179251881Speterfi
180251881Speter
181251881Speterdnl Set up a number of directories ---------------------
182251881Speter
183251881Speterdnl Create SVN_BINDIR for proper substitution
184251881Speterif test "${bindir}" = '${exec_prefix}/bin'; then
185251881Speter        if test "${exec_prefix}" = "NONE"; then
186251881Speter                if test "${prefix}" = "NONE"; then
187251881Speter                        SVN_BINDIR="${ac_default_prefix}/bin"
188251881Speter                else
189251881Speter                        SVN_BINDIR="${prefix}/bin"
190251881Speter                fi
191251881Speter        else
192251881Speter                SVN_BINDIR="${exec_prefix}/bin"
193251881Speter        fi
194251881Speterelse
195251881Speter        SVN_BINDIR="${bindir}"
196251881Speterfi
197251881Speter
198251881Speterdnl fully evaluate this value. when we substitute it into our tool scripts,
199251881Speterdnl they will not have things such as ${bindir} available
200251881SpeterSVN_BINDIR="`eval echo ${SVN_BINDIR}`"
201251881SpeterAC_SUBST(SVN_BINDIR)
202251881Speter
203251881Speterdnl provide ${bindir} in svn_private_config.h for use in compiled code
204251881SpeterAC_DEFINE_UNQUOTED(SVN_BINDIR, "${SVN_BINDIR}",
205251881Speter        [Defined to be the path to the installed binaries])
206251881Speter
207251881Speterdnl This purposely does *not* allow for multiple parallel installs.
208251881Speterdnl However, it is compatible with most gettext usages.
209251881Speterlocaledir='${datadir}/locale'
210251881SpeterAC_SUBST(localedir)
211251881Speter
212251881Speterdnl For SVN_LOCALE_DIR, we have to expand it to something.  See SVN_BINDIR.
213309511Speterif test "${prefix}" = "NONE" \
214309511Speter  && ( test "${datadir}" = '${prefix}/share' \
215309511Speter       || ( test "${datadir}" = '${datarootdir}' \
216309511Speter            && test "${datarootdir}" = '${prefix}/share' ) ); then
217251881Speter  exp_localedir='${ac_default_prefix}/share/locale'
218251881Speterelse
219251881Speter  exp_localedir=$localedir
220251881Speterfi
221251881SpeterSVN_EXPAND_VAR(svn_localedir, "${exp_localedir}")
222251881SpeterAC_DEFINE_UNQUOTED(SVN_LOCALE_DIR, "${svn_localedir}",
223251881Speter                   [Defined to be the path to the installed locale dirs])
224251881Speter
225251881Speterdnl Check for libtool -- we'll definitely need it for all our shared libs!
226251881SpeterAC_MSG_NOTICE([configuring libtool now])
227251881Speterifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL])
228251881SpeterAC_ARG_ENABLE(experimental-libtool,
229251881Speter  AS_HELP_STRING([--enable-experimental-libtool],[Use APR's libtool]),
230251881Speter  [experimental_libtool=$enableval],[experimental_libtool=no])
231251881Speter
232251881Speterif test "$experimental_libtool" = "yes"; then
233251881Speter  echo "using APR's libtool"
234251881Speter  sh_libtool="`$apr_config --apr-libtool`"
235251881Speter  LIBTOOL="$sh_libtool"
236251881Speter  SVN_LIBTOOL="$sh_libtool"
237251881Speterelse
238251881Speter  sh_libtool="$abs_builddir/libtool"
239289180Speter  SVN_LIBTOOL="\$(SHELL) \"$sh_libtool\""
240251881Speterfi
241251881SpeterAC_SUBST(SVN_LIBTOOL)
242251881Speter
243251881Speterdnl Determine the libtool version
244251881Speterchangequote(, )dnl
245251881Speterlt_pversion=`$LIBTOOL --version 2>/dev/null|$SED -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'`
246251881Speterlt_version=`echo $lt_pversion|$SED -e 's/\([a-z]*\)$/.\1/'`
247251881Speterlt_major_version=`echo $lt_version | cut -d'.' -f 1`
248251881Speterchangequote([, ])dnl
249251881Speter
250251881Speterdnl set the default parameters
251251881Spetersvn_enable_static=yes
252251881Spetersvn_enable_shared=yes
253251881Speter
254251881Speterdnl check for --enable-static option
255251881SpeterAC_ARG_ENABLE(static,
256251881Speter  AS_HELP_STRING([--enable-static],
257251881Speter                 [Build static libraries]),
258251881Speter  [svn_enable_static="$enableval"], [svn_enable_static="yes"])
259251881Speter
260251881Speterdnl check for --enable-shared option
261251881SpeterAC_ARG_ENABLE(shared,
262251881Speter  AS_HELP_STRING([--enable-shared],
263251881Speter                 [Build shared libraries]),
264251881Speter  [svn_enable_shared="$enableval"], [svn_enable_shared="yes"])
265251881Speter
266251881Speterif test "$svn_enable_static" = "yes" && test "$svn_enable_shared" = "yes" ; then
267251881Speter  AC_MSG_NOTICE([building both shared and static libraries])
268251881Speterelif test "$svn_enable_static" = "yes" ; then
269251881Speter  AC_MSG_NOTICE([building static libraries only])
270251881Speter  LT_CFLAGS="-static $LT_CFLAGS"
271251881Speter  LT_LDFLAGS="-static $LT_LDFLAGS"
272251881Speterelif test "$svn_enable_shared" = "yes" ; then
273251881Speter  AC_MSG_NOTICE([building shared libraries only])
274251881Speter  if test "$lt_major_version" = "1" ; then
275251881Speter    LT_CFLAGS="-prefer-pic $LT_CFLAGS"
276251881Speter  elif test "$lt_major_version" = "2" ; then
277251881Speter    LT_CFLAGS="-shared $LT_CFLAGS"
278251881Speter  fi
279251881Speter  LT_LDFLAGS="-shared $LT_LDFLAGS"
280251881Speterelse
281251881Speter  AC_MSG_ERROR([cannot disable both shared and static libraries])
282251881Speterfi
283251881Speter
284251881Speterdnl Check for --enable-all-static option
285251881SpeterAC_ARG_ENABLE(all-static,
286251881Speter  AS_HELP_STRING([--enable-all-static],
287251881Speter                 [Build completely static (standalone) binaries.]),
288251881Speter  [
289251881Speter    if test "$enableval" = "yes" ; then
290251881Speter      LT_LDFLAGS="-all-static $LT_LDFLAGS"
291251881Speter    elif test "$enableval" != "no" ; then
292251881Speter      AC_MSG_ERROR([--enable-all-static doesn't accept argument])
293251881Speter    fi
294251881Speter])
295251881Speter
296251881SpeterAC_SUBST(LT_CFLAGS)
297251881SpeterAC_SUBST(LT_LDFLAGS)
298251881Speter
299251881SpeterAC_ARG_ENABLE(local-library-preloading,
300251881Speter  AS_HELP_STRING([--enable-local-library-preloading], 
301251881Speter                 [Enable preloading of locally built libraries in locally
302251881Speter                  built executables.  This may be necessary for testing
303251881Speter                  prior to installation on some platforms.  It does not
304251881Speter                  work on some platforms (Darwin, OpenBSD, ...).]),
305251881Speter  [
306251881Speter  if test "$enableval" != "no"; then
307251881Speter    if test "$svn_enable_shared" = "yes"; then
308251881Speter      TRANSFORM_LIBTOOL_SCRIPTS="transform-libtool-scripts"
309251881Speter    else
310251881Speter      AC_MSG_ERROR([--enable-local-library-preloading conflicts with --disable-shared])
311251881Speter    fi
312251881Speter  else
313251881Speter    TRANSFORM_LIBTOOL_SCRIPTS=""
314251881Speter  fi
315251881Speter  ], [
316251881Speter  TRANSFORM_LIBTOOL_SCRIPTS=""
317251881Speter])
318251881SpeterAC_SUBST(TRANSFORM_LIBTOOL_SCRIPTS)
319251881Speter
320251881Speterdnl Check if -no-undefined is needed for the platform.
321251881Speterdnl It should always work but with libtool 1.4.3 on OS X it breaks the build.
322251881Speterdnl So we only turn it on for platforms where we know we really need it.
323251881SpeterAC_MSG_CHECKING([whether libtool needs -no-undefined])
324251881Spetercase $host in
325251881Speter  *-*-cygwin*)
326251881Speter    AC_MSG_RESULT([yes])
327251881Speter    LT_NO_UNDEFINED="-no-undefined"
328251881Speter    ;;
329251881Speter  *)
330251881Speter    AC_MSG_RESULT([no])
331251881Speter    LT_NO_UNDEFINED=""
332251881Speter    ;;
333251881Speteresac
334251881SpeterAC_SUBST(LT_NO_UNDEFINED)
335251881Speter
336251881Speterdnl Check for trang.
337251881Spetertrang=yes
338251881SpeterAC_ARG_WITH(trang,
339251881SpeterAS_HELP_STRING([--with-trang=PATH],
340251881Speter               [Specify the command to run the trang schema converter]),
341251881Speter[
342251881Speter    trang="$withval"
343251881Speter])
344251881Speterif test "$trang" = "yes"; then
345251881Speter    AC_PATH_PROG(TRANG, trang, none)
346251881Speterelse
347251881Speter    TRANG="$trang"
348251881Speter    AC_SUBST(TRANG)
349251881Speterfi
350251881Speter
351251881Speterdnl Check for doxygen
352251881Speterdoxygen=yes
353251881SpeterAC_ARG_WITH(doxygen,
354251881SpeterAC_HELP_STRING([--with-doxygen=PATH],
355251881Speter               [Specify the command to run doxygen]),
356251881Speter[
357251881Speter    doxygen="$withval"
358251881Speter])
359251881Speterif test "$doxygen" = "yes"; then
360251881Speter    AC_PATH_PROG(DOXYGEN, doxygen, none)
361251881Speterelse
362251881Speter    DOXYGEN="$doxygen"
363251881Speter    AC_SUBST(DOXYGEN)
364251881Speterfi
365251881Speter
366251881Speter
367251881Speterdnl Check for libraries --------------------
368251881Speter
369251881Speterdnl Expat -------------------
370251881Speter
371251881SpeterAC_ARG_WITH(expat,
372251881Speter  AS_HELP_STRING([--with-expat=INCLUDES:LIB_SEARCH_DIRS:LIBS], 
373251881Speter                 [Specify location of Expat]),
374251881Speter                 [svn_lib_expat="$withval"],
375251881Speter                 [svn_lib_expat="::expat"])
376251881Speter
377251881Speter# APR-util accepts "builtin" as an argument to this option so if the user
378251881Speter# passed "builtin" pretend the user didn't specify the --with-expat option
379251881Speter# at all. Expat will (hopefully) be found in apr-util.
380251881Spetertest "_$svn_lib_expat" = "_builtin" && svn_lib_expat="::expat"
381251881Speter
382251881SpeterAC_MSG_CHECKING([for Expat])
383251881Speterif test -n "`echo "$svn_lib_expat" | $EGREP ":.*:"`"; then
384251881Speter  SVN_XML_INCLUDES=""
385251881Speter  for i in [`echo "$svn_lib_expat" | $SED -e "s/\([^:]*\):.*/\1/"`]; do
386251881Speter    SVN_XML_INCLUDES="$SVN_XML_INCLUDES -I$i"
387251881Speter  done
388251881Speter  SVN_XML_INCLUDES="${SVN_XML_INCLUDES## }"
389251881Speter  for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\):.*/\1/"`]; do
390251881Speter    LDFLAGS="$LDFLAGS -L$l"
391251881Speter  done
392251881Speter  for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\)/\1/"`]; do
393251881Speter    SVN_XML_LIBS="$SVN_XML_LIBS -l$l"
394251881Speter  done
395251881Speter  SVN_XML_LIBS="${SVN_XML_LIBS## }"
396251881Speter  old_CPPFLAGS="$CPPFLAGS"
397251881Speter  old_LIBS="$LIBS"
398251881Speter  CPPFLAGS="$CPPFLAGS $SVN_XML_INCLUDES"
399251881Speter  LIBS="$LIBS $SVN_XML_LIBS"
400251881Speter  AC_LINK_IFELSE([AC_LANG_SOURCE([[
401251881Speter#include <expat.h>
402251881Speterint main()
403251881Speter{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no")
404251881Speter  LIBS="$old_LIBS"
405251881Speter  if test "$svn_lib_expat" = "yes"; then
406251881Speter    AC_MSG_RESULT([yes])
407251881Speter  else
408251881Speter    SVN_XML_INCLUDES=""
409251881Speter    SVN_XML_LIBS=""
410251881Speter    CPPFLAGS="$CPPFLAGS $SVN_APRUTIL_INCLUDES"
411251881Speter    if test "$enable_all_static" != "yes"; then
412251881Speter      SVN_APRUTIL_LIBS="$SVN_APRUTIL_LIBS `$apu_config --libs`"
413251881Speter    fi
414251881Speter    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
415251881Speter#include <expat.h>
416251881Speterint main()
417251881Speter{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no")
418251881Speter    if test "$svn_lib_expat" = "yes"; then
419251881Speter      AC_MSG_RESULT([yes])
420251881Speter      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.])
421251881Speter    else
422251881Speter      AC_MSG_RESULT([no])
423251881Speter      AC_MSG_ERROR([Expat not found])
424251881Speter    fi
425251881Speter  fi
426251881Speter  CPPFLAGS="$old_CPPFLAGS"
427251881Speterelse
428251881Speter  AC_MSG_RESULT([no])
429251881Speter  if test "$svn_lib_expat" = "yes"; then
430251881Speter    AC_MSG_ERROR([--with-expat option requires argument])
431251881Speter  elif test "$svn_lib_expat" = "no"; then
432251881Speter    AC_MSG_ERROR([Expat is required])
433251881Speter  else
434251881Speter    AC_MSG_ERROR([Invalid syntax of argument of --with-expat option])
435251881Speter  fi
436251881Speterfi
437251881SpeterAC_SUBST(SVN_XML_INCLUDES)
438251881SpeterAC_SUBST(SVN_XML_LIBS)
439251881Speter
440251881Speterdnl Berkeley DB -------------------
441251881Speter
442251881Speter# Berkeley DB on SCO OpenServer needs -lsocket
443251881SpeterAC_CHECK_LIB(socket, socket)
444251881Speter
445251881Speter# Build the BDB filesystem library only if we have an appropriate
446251881Speter# version of Berkeley DB.
447251881Spetercase "$host" in
448251881Speterpowerpc-apple-darwin*)
449251881Speter    # Berkeley DB 4.0 does not work on OS X.
450251881Speter    SVN_FS_WANT_DB_MAJOR=4
451251881Speter    SVN_FS_WANT_DB_MINOR=1
452251881Speter    SVN_FS_WANT_DB_PATCH=25
453251881Speter    ;;
454251881Speter*)
455251881Speter    SVN_FS_WANT_DB_MAJOR=4
456251881Speter    SVN_FS_WANT_DB_MINOR=0
457251881Speter    SVN_FS_WANT_DB_PATCH=14
458251881Speter    ;;
459251881Speteresac
460253734Speterdb_alt_version="5.x"
461251881Speter# Look for libdb4.so first:
462251881SpeterSVN_LIB_BERKELEY_DB($SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MINOR,
463251881Speter                    $SVN_FS_WANT_DB_PATCH, [db4 db])
464251881Speter
465251881SpeterAC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MAJOR,
466251881Speter                   [The desired major version for the Berkeley DB])
467251881SpeterAC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MINOR, $SVN_FS_WANT_DB_MINOR,
468251881Speter                   [The desired minor version for the Berkeley DB])
469251881SpeterAC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_PATCH, $SVN_FS_WANT_DB_PATCH,
470251881Speter                   [The desired patch version for the Berkeley DB])
471251881Speter
472251881SpeterAC_SUBST(SVN_DB_INCLUDES)
473251881SpeterAC_SUBST(SVN_DB_LIBS)
474251881Speter
475251881SpeterSVN_LIB_SASL
476251881Speter
477251881Speterif test "$svn_lib_sasl" = "yes"; then
478251881Speter  AC_DEFINE(SVN_HAVE_SASL, 1,
479251881Speter            [Defined if Cyrus SASL v2 is present on the system])
480251881Speterfi
481251881Speter
482251881Speterdnl Mac OS specific features -------------------
483251881Speter
484251881SpeterSVN_LIB_MACHO_ITERATE
485251881SpeterSVN_LIB_MACOS_PLIST
486251881SpeterSVN_LIB_MACOS_KEYCHAIN
487251881Speter
488251881Speterdnl APR_HAS_DSO -------------------
489251881Speter
490251881SpeterAC_MSG_CHECKING([whether APR has support for DSOs])
491251881Speterold_CPPFLAGS="$CPPFLAGS"
492251881SpeterCPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
493251881SpeterAC_PREPROC_IFELSE([AC_LANG_SOURCE([[
494251881Speter#include <apr.h>
495251881Speter#if !APR_HAS_DSO
496251881Speter#error
497251881Speter#endif]])],
498251881Speter  APR_HAS_DSO="yes"
499251881Speter  AC_MSG_RESULT([yes]),
500251881Speter  APR_HAS_DSO="no"
501251881Speter  AC_MSG_RESULT([no]))
502251881SpeterCPPFLAGS="$old_CPPFLAGS"
503251881Speter
504251881Speter
505251881Speterdnl D-Bus (required for support for KWallet) -------------------
506251881Speter
507251881Speterif test -n "$PKG_CONFIG"; then
508251881Speter  AC_MSG_CHECKING([for D-Bus .pc file])
509251881Speter  if $PKG_CONFIG --exists dbus-1; then
510251881Speter    AC_MSG_RESULT([yes])
511251881Speter    old_CPPFLAGS="$CPPFLAGS"
512251881Speter    old_LIBS="$LIBS"
513251881Speter    DBUS_CPPFLAGS="`$PKG_CONFIG --cflags dbus-1`"
514251881Speter    AC_MSG_CHECKING([D-Bus version])
515251881Speter    DBUS_VERSION="`$PKG_CONFIG --modversion dbus-1`"
516251881Speter    AC_MSG_RESULT([$DBUS_VERSION])
517251881Speter    # D-Bus 0.* requires DBUS_API_SUBJECT_TO_CHANGE
518251881Speter    if test -n ["`echo "$DBUS_VERSION" | $EGREP '^0\.[[:digit:]]+'`"]; then
519251881Speter      DBUS_CPPFLAGS="$DBUS_CPPFLAGS -DDBUS_API_SUBJECT_TO_CHANGE"
520251881Speter    fi
521251881Speter    DBUS_LIBS="`$PKG_CONFIG --libs dbus-1`"
522251881Speter    CPPFLAGS="$CPPFLAGS $DBUS_CPPFLAGS"
523251881Speter    LIBS="$LIBS $DBUS_LIBS"
524251881Speter    AC_MSG_CHECKING([for D-Bus])
525251881Speter    AC_LINK_IFELSE([AC_LANG_SOURCE([[
526251881Speter#include <dbus/dbus.h>
527251881Speterint main()
528251881Speter{dbus_bus_get(DBUS_BUS_SESSION, NULL);}]])], HAVE_DBUS="yes", HAVE_DBUS="no")
529251881Speter    if test "$HAVE_DBUS" = "yes"; then
530251881Speter      AC_MSG_RESULT([yes])
531251881Speter    else
532251881Speter      AC_MSG_RESULT([no])
533251881Speter    fi
534251881Speter    CPPFLAGS="$old_CPPFLAGS"
535251881Speter    LIBS="$old_LIBS"
536251881Speter  else
537251881Speter    AC_MSG_RESULT([no])
538251881Speter  fi
539251881Speterfi
540251881Speter
541251881Speterdnl GPG Agent -------------------
542251881Speter
543251881SpeterAC_ARG_WITH(gpg_agent,
544251881SpeterAS_HELP_STRING([--without-gpg-agent], 
545251881Speter               [Disable support for GPG-Agent]),
546251881Speter               [], [with_gpg_agent=yes])
547251881SpeterAC_MSG_CHECKING([whether to support GPG-Agent])
548251881Speterif test "$with_gpg_agent" = "yes"; then
549251881Speter  AC_MSG_RESULT([yes])
550251881Speter  AC_DEFINE([SVN_HAVE_GPG_AGENT], [1], 
551251881Speter            [Is GPG Agent support enabled?])
552251881Speterelse
553251881Speter  AC_MSG_RESULT([no])
554251881Speterfi
555251881Speter
556251881SpeterAC_SUBST(SVN_HAVE_GPG_AGENT)
557251881Speter
558251881Speterdnl GNOME Keyring -------------------
559251881Speter
560362181SdimAC_ARG_WITH(old_gnome_keyring,
561362181Sdim  AS_HELP_STRING([--with-old-gnome-keyring], 
562362181Sdim                 [Enable old GNOME Keyring for auth credentials (prefer --with-gnome-keyring)]),
563362181Sdim                 [with_old_gnome_keyring="$withval"],
564362181Sdim                 [with_old_gnome_keyring=no])
565251881Speter
566362181Sdimfound_old_gnome_keyring=no
567362181SdimAC_MSG_CHECKING([whether to look for old GNOME Keyring])
568362181Sdimif test "$with_old_gnome_keyring" != "no"; then
569251881Speter  AC_MSG_RESULT([yes])
570289180Speter  case "$host" in
571289180Speter  *-*-darwin*)
572362181Sdim    if test "$with_old_gnome_keyring" = "yes"; then
573362181Sdim      AC_MSG_ERROR([--with-old-gnome-keyring is not supported on Mac OS X.])
574289180Speter    else
575362181Sdim      with_old_gnome_keyring=no
576289180Speter    fi
577289180Speter    ;;
578289180Speter  *)
579289180Speter    if test "$svn_enable_shared" = "yes"; then
580289180Speter      if test "$APR_HAS_DSO" = "yes"; then
581289180Speter        if test -n "$PKG_CONFIG"; then
582289180Speter          AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files])
583289180Speter          if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then
584251881Speter            AC_MSG_RESULT([yes])
585289180Speter            old_CPPFLAGS="$CPPFLAGS"
586289180Speter            SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`"
587289180Speter            CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES"
588362181Sdim            AC_CHECK_HEADER(gnome-keyring.h, found_old_gnome_keyring=yes, found_old_gnome_keyring=no)
589289180Speter            AC_MSG_CHECKING([for GNOME Keyring])
590362181Sdim            if test "$found_old_gnome_keyring" = "yes"; then
591289180Speter              AC_MSG_RESULT([yes])
592289180Speter              AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1], 
593289180Speter                        [Is GNOME Keyring support enabled?])
594289180Speter              CPPFLAGS="$old_CPPFLAGS"
595289180Speter              SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
596362181Sdim              SVN_GNOME_KEYRING_PCLIBS="glib-2.0, gnome-keyring-1"
597289180Speter            else
598289180Speter              AC_MSG_RESULT([no])
599362181Sdim              if test "$with_old_gnome_keyring" = "yes"; then
600289180Speter                AC_MSG_ERROR([cannot find GNOME Keyring])
601289180Speter              fi
602289180Speter            fi
603251881Speter          else
604251881Speter            AC_MSG_RESULT([no])
605362181Sdim            if test "$with_old_gnome_keyring" = "yes"; then
606289180Speter              AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files.])
607289180Speter            else
608362181Sdim              with_old_gnome_keyring=no
609251881Speter            fi
610251881Speter          fi
611251881Speter        else
612362181Sdim          if test "$with_old_gnome_keyring" = "yes"; then
613289180Speter            AC_MSG_ERROR([cannot find pkg-config. GNOME Keyring requires this.])
614251881Speter          else
615362181Sdim            with_old_gnome_keyring=no
616251881Speter          fi
617251881Speter        fi
618251881Speter      else
619362181Sdim        if test "$with_old_gnome_keyring" = "yes"; then
620289180Speter          AC_MSG_ERROR([APR does not have support for DSOs. GNOME Keyring requires this.])
621251881Speter        else
622362181Sdim          with_old_gnome_keyring=no
623251881Speter        fi
624251881Speter      fi
625251881Speter    else
626362181Sdim      if test "$with_old_gnome_keyring" = "yes"; then
627362181Sdim        AC_MSG_ERROR([--with-old-gnome-keyring conflicts with --disable-shared])
628251881Speter      else
629362181Sdim        with_old_gnome_keyring=no
630251881Speter      fi
631251881Speter    fi
632289180Speter    ;;
633289180Speter  esac
634251881Speterelse
635251881Speter  AC_MSG_RESULT([no])
636251881Speterfi
637251881SpeterAC_SUBST(SVN_GNOME_KEYRING_INCLUDES)
638251881SpeterAC_SUBST(SVN_GNOME_KEYRING_LIBS)
639251881Speter
640362181Sdimdnl LibSecret -------------------
641362181SdimSVN_LIB_SECRET
642251881Speter
643251881Speterdnl Ev2 experimental features ----------------------
644251881Speterdnl Note: The Ev2 implementations will be built unconditionally, but by
645251881Speterdnl providing this flag, users can choose to use the currently-shimmed Ev2
646251881Speterdnl editor implementations for various operations.  This will probably
647251881Speterdnl negatively impact performance, but is useful for testing.
648251881SpeterAC_ARG_ENABLE(ev2-impl,
649251881Speter  AS_HELP_STRING([--enable-ev2-impl],
650251881Speter                 [Use Ev2 implementations, where available [EXPERIMENTAL]]),
651251881Speter  [enable_ev2_impl=$enableval],[enable_ev2_impl=no])
652251881Speterif test "$enable_ev2_impl" = "yes"; then
653251881Speter  AC_DEFINE(ENABLE_EV2_IMPL, 1,
654251881Speter            [Define to 1 if Ev2 implementations should be used.])
655251881Speterfi
656251881Speter
657251881Speter
658251881Speterdnl I18n -------------------
659251881Speter
660251881SpeterAC_ARG_ENABLE(nls,
661251881Speter  AS_HELP_STRING([--disable-nls],[Disable gettext functionality]),
662251881Speter  [enable_nls=$enableval],[enable_nls=yes])
663251881Speter
664251881SpeterUSE_NLS="no"
665289180SpeterSVN_INTL_LIBS=""
666251881Speterif test "$enable_nls" = "yes"; then
667251881Speter  dnl First, check to see if there is a working msgfmt.
668251881Speter  AC_PATH_PROG(MSGFMT, msgfmt, none)
669251881Speter  AC_PATH_PROG(MSGMERGE, msgmerge, none)
670251881Speter  AC_PATH_PROG(XGETTEXT, xgettext, none)
671251881Speter  if test "$MSGFMT" != "none"; then
672289180Speter    AC_SEARCH_LIBS(bindtextdomain, [intl],
673251881Speter                   [
674289180Speter                      # in case libintl needs to be linked explicitly,
675289180Speter                      # $ac_cv_search_bindtextdomain contains -l linker flags
676289180Speter                      if echo "$ac_cv_search_bindtextdomain" | grep '^-l' >/dev/null
677289180Speter                      then
678289180Speter                        SVN_INTL_LIBS="$ac_cv_search_bindtextdomain"
679289180Speter                      fi
680289180Speter                   ],
681289180Speter                   [
682251881Speter                    enable_nls="no"
683251881Speter                   ])
684251881Speter    if test "$enable_nls" = "no"; then
685251881Speter      # Destroy the cached result so we can test again
686251881Speter      unset ac_cv_search_bindtextdomain
687251881Speter      # On some systems, libintl needs libiconv to link properly,
688251881Speter      # so try again with -liconv.
689251881Speter      AC_SEARCH_LIBS(bindtextdomain, [intl],
690251881Speter                     [
691251881Speter                      enable_nls="yes"
692289180Speter                      if echo "$ac_cv_search_bindtextdomain" | grep '^-l' >/dev/null
693289180Speter                      then
694289180Speter                        SVN_INTL_LIBS="$ac_cv_search_bindtextdomain"
695289180Speter                      fi
696251881Speter                      # This is here so that -liconv ends up in LIBS
697251881Speter                      # if it worked with -liconv.
698251881Speter                      AC_CHECK_LIB(iconv, libiconv_open)
699251881Speter                     ], 
700251881Speter                     [
701251881Speter                      AC_MSG_WARN([bindtextdomain() not found.  Disabling NLS.])
702251881Speter                      enable_nls="no"
703251881Speter                     ], -liconv)
704251881Speter    fi
705251881Speter    if test "$enable_nls" = "yes"; then
706251881Speter      AC_DEFINE(ENABLE_NLS, 1,
707251881Speter                [Define to 1 if translation of program messages to the user's
708251881Speter                 native language is requested.])
709251881Speter      USE_NLS="yes"
710251881Speter    fi
711251881Speter  fi
712251881Speterfi
713251881Speter
714289180SpeterAC_SUBST(SVN_INTL_LIBS)
715289180Speter
716251881SpeterAH_BOTTOM([
717251881Speter/* Indicate to translators that string X should be translated.  Do not look
718251881Speter   up the translation at run time; just expand to X.  This macro is suitable
719251881Speter   for use where a constant string is required at compile time. */
720251881Speter#define N_(x) x
721251881Speter/* Indicate to translators that we have decided the string X should not be
722251881Speter   translated.  Expand to X. */
723251881Speter#define U_(x) x
724251881Speter#ifdef ENABLE_NLS
725251881Speter#include <locale.h>
726251881Speter#include <libintl.h>
727251881Speter/* Indicate to translators that string X should be translated.  At run time,
728251881Speter   look up and return the translation of X. */
729251881Speter#define _(x) dgettext(PACKAGE_NAME, x)
730251881Speter/* Indicate to translators that strings X1 and X2 are singular and plural
731251881Speter   forms of the same message, and should be translated.  At run time, return
732251881Speter   an appropriate translation depending on the number N. */
733251881Speter#define Q_(x1, x2, n) dngettext(PACKAGE_NAME, x1, x2, n)
734251881Speter#else
735251881Speter#define _(x) (x)
736251881Speter#define Q_(x1, x2, n) (((n) == 1) ? x1 : x2)
737251881Speter#define gettext(x) (x)
738251881Speter#define dgettext(domain, x) (x)
739251881Speter#endif
740289180Speter
741289180Speter/* compiler hints */
742289180Speter#if defined(__GNUC__) && (__GNUC__ >= 3)
743289180Speter# define SVN__PREDICT_FALSE(x) (__builtin_expect(x, 0))
744289180Speter# define SVN__PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))
745289180Speter#else
746289180Speter# define SVN__PREDICT_FALSE(x) (x)
747289180Speter# define SVN__PREDICT_TRUE(x) (x)
748289180Speter#endif
749289180Speter
750289180Speter#if defined(SVN_DEBUG)
751289180Speter# define SVN__FORCE_INLINE
752289180Speter# define SVN__PREVENT_INLINE
753289180Speter#elif defined(__GNUC__)
754289180Speter# define SVN__FORCE_INLINE APR_INLINE __attribute__ ((always_inline))
755289180Speter# define SVN__PREVENT_INLINE __attribute__ ((noinline))
756289180Speter#else
757289180Speter# define SVN__FORCE_INLINE APR_INLINE
758289180Speter# define SVN__PREVENT_INLINE
759289180Speter#endif
760289180Speter
761289180Speter/* Macro used to specify that a variable is intentionally left unused.
762289180Speter   Supresses compiler warnings about the variable being unused.  */
763289180Speter#define SVN_UNUSED(v) ( (void)(v) )
764251881Speter])
765251881Speter
766251881Speterdnl Used to simulate makefile conditionals.
767251881SpeterGETTEXT_CODESET=\#
768251881SpeterNO_GETTEXT_CODESET=\#
769251881Speterif test $USE_NLS = "yes"; then
770251881Speter   AC_CHECK_FUNCS(bind_textdomain_codeset,
771251881Speter                  [ GETTEXT_CODESET="" ],
772251881Speter                  [ NO_GETTEXT_CODESET="" ])
773251881Speterfi
774251881SpeterAC_SUBST(GETTEXT_CODESET)
775251881SpeterAC_SUBST(NO_GETTEXT_CODESET)
776251881Speter
777251881Speter# Check if we are using GNU gettext.
778251881SpeterGNU_GETTEXT=no
779251881SpeterMSGFMTFLAGS=''
780251881Speterif test $USE_NLS = "yes"; then
781251881Speter   AC_MSG_CHECKING(if we are using GNU gettext)
782251881Speter   if $MSGFMT --version 2>&1 | $EGREP GNU > /dev/null; then
783251881Speter      GNU_GETTEXT=yes
784251881Speter      MSGFMTFLAGS='-c'
785251881Speter   fi
786251881Speter   AC_MSG_RESULT($GNU_GETTEXT)
787251881Speterfi
788251881SpeterAC_SUBST(MSGFMTFLAGS)
789251881Speter
790251881Speterdnl libmagic -------------------
791251881Speter
792251881Speterlibmagic_found=no
793251881Speter
794251881SpeterAC_ARG_WITH(libmagic,AS_HELP_STRING([--with-libmagic=PREFIX],
795251881Speter                                [libmagic filetype detection library]),
796251881Speter[
797251881Speter  if test "$withval" = "yes" ; then
798251881Speter    AC_CHECK_HEADER(magic.h, [
799251881Speter      AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"])
800251881Speter    ])
801251881Speter    libmagic_prefix="the default locations"
802251881Speter  elif test "$withval" != "no"; then
803251881Speter    libmagic_prefix=$withval
804251881Speter    save_cppflags="$CPPFLAGS"
805251881Speter    CPPFLAGS="$CPPFLAGS -I$libmagic_prefix/include"
806251881Speter    AC_CHECK_HEADERS(magic.h,[
807251881Speter      save_ldflags="$LDFLAGS"
808266731Speter      LDFLAGS="-L$libmagic_prefix/lib $LDFLAGS"
809251881Speter      AC_CHECK_LIB(magic, magic_open, [libmagic_found="yes"])
810251881Speter      LDFLAGS="$save_ldflags"
811251881Speter    ])
812251881Speter    CPPFLAGS="$save_cppflags"
813251881Speter  fi
814251881Speter  if test "$withval" != "no" && test "$libmagic_found" = "no"; then
815251881Speter    AC_MSG_ERROR([[--with-libmagic requested, but libmagic not found at $libmagic_prefix]])
816251881Speter  fi
817251881Speter],
818251881Speter[
819251881Speter  AC_CHECK_HEADER(magic.h, [
820251881Speter    AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"])
821251881Speter  ])
822251881Speter])
823251881Speter
824251881Speterif test "$libmagic_found" != "no"; then
825251881Speter  AC_DEFINE([SVN_HAVE_LIBMAGIC], [1], [Defined if libmagic support is enabled])
826251881Speter  SVN_MAGIC_LIBS="-lmagic"
827251881Speterfi
828251881Speter
829251881Speterif test "$libmagic_found" = "yes"; then
830251881Speter  SVN_MAGIC_INCLUDES="-I$libmagic_prefix/include"
831251881Speter  LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$libmagic_prefix/lib)`"
832251881Speterfi
833251881Speter
834251881SpeterAC_SUBST(SVN_MAGIC_INCLUDES)
835251881SpeterAC_SUBST(SVN_MAGIC_LIBS)
836251881Speter
837251881Speterdnl KWallet -------------------
838251881SpeterSVN_LIB_KWALLET
839251881Speter
840251881Speterif test "$svn_lib_kwallet" = "yes"; then
841251881Speter  AC_DEFINE([SVN_HAVE_KWALLET], 1,
842251881Speter            [Defined if KWallet support is enabled])
843251881Speterfi
844251881Speter
845251881Speterdnl plaintext passwords -------------------
846251881SpeterAC_ARG_ENABLE(plaintext-password-storage,
847362181SdimAS_HELP_STRING([--enable-plaintext-password-storage],
848362181Sdim               [Enable on-disk caching of plaintext passwords and passphrases.
849362181Sdim                (Enabling this functionality will not force Subversion
850251881Speter                to store passwords in plaintext, but does permit users to
851251881Speter                explicitly allow that behavior via runtime configuration.)]),
852362181Sdim[plaintext_passwordd_storage="$enableval"],
853362181Sdim[plaintext_passwordd_storage="no"])
854251881Speter
855362181Sdimif test "$plaintext_passwordd_storage" = "yes"; then
856362181Sdim  AC_MSG_WARN([Enabling plaintext password/passphrase storage])
857362181Sdimelse
858362181Sdim  AC_MSG_NOTICE([Disabling plaintext password/passphrase storage])
859362181Sdim  AC_DEFINE(SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE, 1,
860362181Sdim            [Defined if plaintext password/passphrase storage is disabled])
861362181Sdimfi
862362181Sdim
863251881Speterdnl Build and install rules -------------------
864251881Speter
865251881SpeterINSTALL_STATIC_RULES="install-bin install-docs"
866251881SpeterINSTALL_RULES="install-fsmod-lib install-ramod-lib install-lib install-include install-static"
867251881SpeterINSTALL_RULES="$INSTALL_RULES $INSTALL_APACHE_RULE"
868251881SpeterBUILD_RULES="fsmod-lib ramod-lib lib bin test sub-test $BUILD_APACHE_RULE tools"
869251881Speter
870251881Speterif test "$svn_lib_berkeley_db" = "yes"; then
871251881Speter  BUILD_RULES="$BUILD_RULES bdb-lib bdb-test"
872251881Speter  INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-fsmod-lib/install-fsmod-lib install-bdb-lib/'`"
873251881Speter  INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-bdb-lib"
874251881Speter  BDB_TEST_DEPS="\$(BDB_TEST_DEPS)"
875251881Speter  BDB_TEST_PROGRAMS="\$(BDB_TEST_PROGRAMS)"
876251881Speterfi
877251881Speter
878251881Speterif test "$svn_lib_serf" = "yes"; then
879251881Speter  BUILD_RULES="$BUILD_RULES serf-lib"
880251881Speter  INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-ramod-lib/install-ramod-lib install-serf-lib/'`"
881251881Speter  INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-serf-lib"
882251881Speterfi
883251881Speter
884251881Speterif test "$svn_lib_kwallet" = "yes"; then
885251881Speter  BUILD_RULES="$BUILD_RULES kwallet-lib"
886251881Speter  INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-kwallet-lib/'`"
887251881Speter  INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-kwallet-lib"
888251881Speterfi
889251881Speter
890362181Sdimif test "$found_old_gnome_keyring" = "yes" || test "$found_gnome_keyring" = "yes"; then
891251881Speter  BUILD_RULES="$BUILD_RULES gnome-keyring-lib"
892251881Speter  INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-gnome-keyring-lib/'`"
893251881Speter  INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-gnome-keyring-lib"
894251881Speterfi
895251881Speter
896251881Speterif test "$USE_NLS" = "yes"; then
897251881Speter  BUILD_RULES="$BUILD_RULES locale"
898251881Speter  INSTALL_RULES="$INSTALL_RULES install-locale"
899251881Speterfi
900251881Speter
901251881SpeterAC_SUBST(BUILD_RULES)
902251881SpeterAC_SUBST(INSTALL_STATIC_RULES)
903251881SpeterAC_SUBST(INSTALL_RULES)
904251881SpeterAC_SUBST(BDB_TEST_DEPS)
905251881SpeterAC_SUBST(BDB_TEST_PROGRAMS)
906251881Speter
907251881Speterdnl Check for header files ----------------
908251881Speter
909251881Speterdnl Standard C headers
910251881SpeterAC_HEADER_STDC
911251881Speter
912251881Speterdnl Check for typedefs, structures, and compiler characteristics ----------
913251881Speter
914251881Speterdnl if compiler doesn't understand `const', then define it empty
915251881SpeterAC_C_CONST
916251881Speter
917251881Speterdnl if non-existent, define size_t to be `unsigned'
918251881SpeterAC_TYPE_SIZE_T
919251881Speter
920251881Speter
921251881Speterdnl Check for library functions ----------
922251881Speter
923251881SpeterAC_FUNC_MEMCMP
924251881Speter
925251881Speterdnl svn_error's default warning handler uses vfprintf()
926251881SpeterAC_FUNC_VPRINTF
927251881Speter
928251881Speterdnl check for functions needed in special file handling
929251881SpeterAC_CHECK_FUNCS(symlink readlink)
930251881Speter
931362181Sdimdnl check for uname and ELF headers
932251881SpeterAC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], [])
933362181SdimAC_CHECK_HEADERS(elf.h)
934251881Speter
935251881Speterdnl check for termios
936251881SpeterAC_CHECK_HEADER(termios.h,[
937251881Speter  AC_CHECK_FUNCS(tcgetattr tcsetattr,[
938251881Speter    AC_DEFINE(HAVE_TERMIOS_H,1,[Defined if we have a usable termios library.])
939251881Speter  ])
940251881Speter])
941251881Speter
942251881Speterdnl Process some configuration options ----------
943251881Speter
944251881SpeterAC_ARG_ENABLE(debug,
945251881SpeterAS_HELP_STRING([--enable-debug],
946251881Speter               [Turn on debugging]),
947251881Speter[
948251881Speter    if test "$enableval" = "yes" ; then
949251881Speter      enable_debugging="yes"
950251881Speter    else
951251881Speter      enable_debugging="no"
952251881Speter    fi
953251881Speter],
954251881Speter[
955251881Speter    # Neither --enable-debug nor --disable-debug was passed.
956251881Speter    enable_debugging="maybe"
957251881Speter])
958251881Speter
959251881SpeterAC_ARG_ENABLE(optimize,
960251881SpeterAS_HELP_STRING([--enable-optimize],
961251881Speter               [Turn on optimizations]),
962251881Speter[
963251881Speter    if test "$enableval" = "yes" ; then
964251881Speter      enable_optimization="yes"
965251881Speter    else
966251881Speter      enable_optimization="no"
967251881Speter    fi
968251881Speter],
969251881Speter[
970251881Speter    # Neither --enable-optimize nor --disable-optimize was passed.
971251881Speter    enable_optimization="maybe"
972251881Speter])
973251881Speter
974251881Speterdnl Use -Wl,--no-undefined during linking of some libraries
975251881SpeterAC_ARG_ENABLE(disallowing-of-undefined-references,
976251881Speter  [AS_HELP_STRING([--enable-disallowing-of-undefined-references],
977251881Speter                  [Use -Wl,--no-undefined flag during linking of some libraries to disallow undefined references])])
978251881Speterif test "$enable_disallowing_of_undefined_references" != "yes" && test "`uname`" != "Linux"; then
979251881Speter  enable_disallowing_of_undefined_references="no"
980251881Speterfi
981251881Speterif test "$enable_disallowing_of_undefined_references" != "no"; then
982251881Speter  AC_MSG_CHECKING([for -Wl,--no-undefined])
983251881Speter  old_LDFLAGS="$LDFLAGS"
984251881Speter  LDFLAGS="$LDFLAGS -Wl,--no-undefined"
985251881Speter  AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(){;}]])], [svn_wl_no_undefined="yes"], [svn_wl_no_undefined="no"])
986251881Speter  LDFLAGS="$old_LDFLAGS"
987251881Speter  if test "$svn_wl_no_undefined" = "yes"; then
988251881Speter    AC_MSG_RESULT([yes])
989251881Speter    for library_dir in "$abs_srcdir/subversion/libsvn_"*; do
990251881Speter      eval "`basename $library_dir`_LDFLAGS=-Wl,--no-undefined"
991251881Speter    done
992362181Sdim    shared_only_LDFLAGS="-Wl,--no-undefined"
993251881Speter  else
994251881Speter    AC_MSG_RESULT([no])
995251881Speter    if test "$enable_disallowing_of_undefined_references" = "yes"; then
996251881Speter      AC_MSG_ERROR([--enable-disallowing-of-undefined-references explicitly requested, but -Wl,--no-undefined not supported])
997251881Speter    fi
998251881Speter  fi
999251881Speterfi
1000251881SpeterAC_SUBST([libsvn_client_LDFLAGS])
1001251881SpeterAC_SUBST([libsvn_delta_LDFLAGS])
1002251881SpeterAC_SUBST([libsvn_diff_LDFLAGS])
1003251881SpeterAC_SUBST([libsvn_fs_LDFLAGS])
1004251881SpeterAC_SUBST([libsvn_fs_base_LDFLAGS])
1005251881SpeterAC_SUBST([libsvn_fs_fs_LDFLAGS])
1006251881SpeterAC_SUBST([libsvn_fs_util_LDFLAGS])
1007251881SpeterAC_SUBST([libsvn_ra_LDFLAGS])
1008251881SpeterAC_SUBST([libsvn_ra_local_LDFLAGS])
1009251881SpeterAC_SUBST([libsvn_ra_serf_LDFLAGS])
1010251881SpeterAC_SUBST([libsvn_ra_svn_LDFLAGS])
1011251881SpeterAC_SUBST([libsvn_repos_LDFLAGS])
1012251881SpeterAC_SUBST([libsvn_subr_LDFLAGS])
1013251881SpeterAC_SUBST([libsvn_wc_LDFLAGS])
1014362181SdimAC_SUBST([shared_only_LDFLAGS])
1015251881Speter
1016251881Speter
1017251881SpeterAC_ARG_ENABLE(maintainer-mode,
1018251881SpeterAS_HELP_STRING([--enable-maintainer-mode],
1019251881Speter               [Turn on debugging and very strict compile-time warnings]),
1020251881Speter[
1021251881Speter    if test "$enableval" = "yes" ; then
1022251881Speter      if test "$enable_debugging" = "no" ; then
1023251881Speter        AC_MSG_ERROR([Can't have --disable-debug and --enable-maintainer-mode])
1024251881Speter      fi
1025251881Speter      enable_debugging=yes
1026251881Speter
1027251881Speter      dnl Enable some extra warnings. Put these before the user's flags
1028251881Speter      dnl so the user can specify flags that override these.
1029251881Speter      if test "$GCC" = "yes"; then
1030251881Speter        AC_MSG_NOTICE([maintainer-mode: adding GCC warning flags])
1031251881Speter
1032251881Speter        dnl some additional flags that can be handy for an occasional review,
1033251881Speter        dnl but throw too many warnings in svn code, of too little importance,
1034251881Speter        dnl to keep these enabled. Remove the "dnl" to do a run with these
1035251881Speter        dnl switches enabled.
1036289180Speter        dnl ./configure CFLAGS="-Wswitch-enum -Wswitch-default"
1037251881Speter
1038251881Speter        dnl Add each of the following flags only if the C compiler accepts it.
1039251881Speter        CFLAGS_KEEP="$CFLAGS"
1040251881Speter        CFLAGS=""
1041251881Speter
1042251881Speter        SVN_CFLAGS_ADD_IFELSE([-Werror=implicit-function-declaration])
1043251881Speter        SVN_CFLAGS_ADD_IFELSE([-Werror=declaration-after-statement])
1044251881Speter        SVN_CFLAGS_ADD_IFELSE([-Wextra-tokens])
1045251881Speter        SVN_CFLAGS_ADD_IFELSE([-Wnewline-eof])
1046251881Speter        SVN_CFLAGS_ADD_IFELSE([-Wshorten-64-to-32])
1047251881Speter        SVN_CFLAGS_ADD_IFELSE([-Wold-style-definition])
1048251881Speter        SVN_CFLAGS_ADD_IFELSE([-Wno-system-headers])
1049251881Speter        SVN_CFLAGS_ADD_IFELSE([-Wno-format-nonliteral])
1050289180Speter        SVN_CFLAGS_ADD_IFELSE([-Wmissing-variable-declarations])
1051362181Sdim        SVN_CFLAGS_ADD_IFELSE([-Wno-unused-const-variable])
1052251881Speter
1053289180Speter        CMAINTAINERFLAGS="$CFLAGS"
1054251881Speter        CFLAGS="$CFLAGS_KEEP"
1055251881Speter
1056251881Speter        dnl Add flags that all versions of GCC (should) support
1057362181Sdim        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"
1058251881Speter      fi
1059251881Speter      if test "$GXX" = "yes"; then
1060251881Speter        AC_MSG_NOTICE([maintainer-mode: adding G++ warning flags])
1061251881Speter
1062251881Speter        dnl Add each of the following flags only if the C++ compiler accepts it.
1063251881Speter        CXXFLAGS_KEEP="$CXXFLAGS"
1064251881Speter        CXXFLAGS=""
1065251881Speter
1066251881Speter        SVN_CXXFLAGS_ADD_IFELSE([-Wextra-tokens])
1067251881Speter        SVN_CXXFLAGS_ADD_IFELSE([-Wnewline-eof])
1068251881Speter        SVN_CXXFLAGS_ADD_IFELSE([-Wshorten-64-to-32])
1069251881Speter        SVN_CXXFLAGS_ADD_IFELSE([-Wno-system-headers])
1070251881Speter
1071289180Speter        CXXMAINTAINERFLAGS="$CXXFLAGS"
1072251881Speter        CXXFLAGS="$CXXFLAGS_KEEP"
1073251881Speter
1074251881Speter        dnl Add flags that all versions of G++ (should) support
1075251881Speter        CXXMAINTAINERFLAGS="-Wall -Wpointer-arith -Wwrite-strings -Wshadow -Wunused -Wunreachable-code $CXXMAINTAINERFLAGS"
1076251881Speter      fi
1077251881Speter    fi
1078251881Speter])
1079251881Speter
1080251881Speterif test "$enable_debugging" = "yes" ; then
1081251881Speter  dnl At the moment, we don't want optimization, because we're
1082251881Speter  dnl debugging. Unless optiization was explicitly enabled.
1083251881Speter  if test "$enable_optimization" != "yes"; then
1084251881Speter    AC_MSG_NOTICE([Disabling optimizations for debugging])
1085251881Speter    CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1086251881Speter    CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1087251881Speter  fi
1088251881Speter  dnl Add debugging flags, unless they were set by the user
1089251881Speter  if test -z ["`echo $CUSERFLAGS' ' | $EGREP -- '-g[0-9]? '`"]; then
1090251881Speter    AC_MSG_NOTICE([Enabling debugging for C])
1091251881Speter    CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"]
1092251881Speter    SVN_CFLAGS_ADD_IFELSE([-fno-inline])
1093251881Speter    SVN_CFLAGS_ADD_IFELSE([-fno-omit-frame-pointer])
1094251881Speter    SVN_CFLAGS_ADD_IFELSE([-g3],[],[
1095251881Speter      SVN_CFLAGS_ADD_IFELSE([-g2],[],[
1096251881Speter        SVN_CFLAGS_ADD_IFELSE([-g])])])
1097251881Speter  fi
1098251881Speter  if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-g[0-9]? '`"]; then
1099251881Speter    AC_MSG_NOTICE([Enabling debugging for C++])
1100251881Speter    CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"]
1101251881Speter    SVN_CXXFLAGS_ADD_IFELSE([-fno-inline])
1102251881Speter    SVN_CXXFLAGS_ADD_IFELSE([-fno-omit-frame-pointer])
1103251881Speter    SVN_CXXFLAGS_ADD_IFELSE([-g3],[],[
1104251881Speter      SVN_CXXFLAGS_ADD_IFELSE([-g2],[],[
1105251881Speter        SVN_CXXFLAGS_ADD_IFELSE([-g])])])
1106251881Speter  fi
1107251881Speter  dnl SVN_DEBUG enables specific features for developer builds
1108251881Speter  dnl AP_DEBUG enables specific (Apache) features for developer builds
1109251881Speter  CFLAGS="$CFLAGS -DSVN_DEBUG -DAP_DEBUG"
1110251881Speter  CXXFLAGS="$CXXFLAGS -DSVN_DEBUG -DAP_DEBUG"
1111251881Speterelif test "$enable_debugging" = "no" ; then
1112251881Speter  AC_MSG_NOTICE([Disabling debugging])
1113251881Speter  CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"]
1114251881Speter  CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"]
1115251881Speter  dnl Compile with NDEBUG to get rid of assertions
1116251881Speter  CFLAGS="$CFLAGS -DNDEBUG"
1117251881Speter  CXXFLAGS="$CXXFLAGS -DNDEBUG"
1118251881Speter# elif test "$enable_debugging" = "maybe" ; then
1119251881Speter#   # do nothing
1120251881Speterfi
1121251881Speter
1122251881Speterif test "$enable_optimization" = "yes"; then
1123251881Speter  dnl Add optimization flags, unless they were set by the user
1124251881Speter  if test -z ["`echo $CUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then
1125251881Speter    CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1126251881Speter    if test "$enable_debugging" = "yes"; then
1127251881Speter      AC_MSG_NOTICE([Enabling optimizations for C (with debugging enabled)])
1128251881Speter      SVN_CFLAGS_ADD_IFELSE([-O1],[],[
1129251881Speter        SVN_CFLAGS_ADD_IFELSE([-O])])
1130251881Speter    else
1131251881Speter      AC_MSG_NOTICE([Enabling optimizations for C])
1132251881Speter      SVN_CFLAGS_ADD_IFELSE([-O3],[],[
1133251881Speter        SVN_CFLAGS_ADD_IFELSE([-O2],[],[
1134251881Speter          SVN_CFLAGS_ADD_IFELSE([-O1],[],[
1135251881Speter            SVN_CFLAGS_ADD_IFELSE([-O])])])])
1136251881Speter      SVN_CFLAGS_ADD_IFELSE([-Wno-clobbered])
1137251881Speter    fi
1138251881Speter  fi
1139251881Speter  if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then
1140251881Speter    CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1141251881Speter    if test "$enable_debugging" = "yes"; then
1142251881Speter      AC_MSG_NOTICE([Enabling optimizations for C++ (with debugging enabled)])
1143251881Speter      SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[
1144251881Speter        SVN_CXXFLAGS_ADD_IFELSE([-O])])
1145251881Speter    else
1146251881Speter      AC_MSG_NOTICE([Enabling optimizations for C++])
1147251881Speter      SVN_CXXFLAGS_ADD_IFELSE([-O3],[],[
1148251881Speter        SVN_CXXFLAGS_ADD_IFELSE([-O2],[],[
1149251881Speter          SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[
1150251881Speter            SVN_CXXFLAGS_ADD_IFELSE([-O])])])])
1151251881Speter      SVN_CXXFLAGS_ADD_IFELSE([-Wno-clobbered])
1152251881Speter    fi
1153251881Speter  fi
1154251881Speterelif test "$enable_optimization" = "no"; then
1155251881Speter  dnl Remove all optimization flags
1156251881Speter  AC_MSG_NOTICE([Disabling optimizations])
1157251881Speter  CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1158251881Speter  CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"]
1159251881Speter# elif test "$enable_optimization" = "maybe" ; then
1160251881Speter#   # do nothing
1161251881Speterfi
1162251881Speter
1163253734Speterdnl Dump the current compiler options
1164253734SpeterAC_MSG_NOTICE([C compiler flags: $CFLAGS])
1165362181SdimAC_MSG_NOTICE([  language-level: $CMODEFLAGS])
1166253734SpeterAC_MSG_NOTICE([    user-defined: $CUSERFLAGS])
1167253734SpeterAC_MSG_NOTICE([ maintainer-mode: $CMAINTAINERFLAGS])
1168253734SpeterAC_MSG_NOTICE([C++ compiler flags: $CXXFLAGS])
1169362181SdimAC_MSG_NOTICE([    language-level: $CXXMODEFLAGS])
1170253734SpeterAC_MSG_NOTICE([      user-defined: $CXXUSERFLAGS])
1171253734SpeterAC_MSG_NOTICE([   maintainer-mode: $CXXMAINTAINERFLAGS])
1172251881Speter
1173251881SpeterAC_ARG_ENABLE(full-version-match,
1174251881SpeterAS_HELP_STRING([--disable-full-version-match],
1175251881Speter               [Disable the full version match rules when checking
1176251881Speter                Subversion library compatibility.]),
1177251881Speter[
1178251881Speter    if test "$enableval" = "no" ; then
1179251881Speter      AC_MSG_NOTICE([Disabling svn full version matching])
1180251881Speter      AC_DEFINE(SVN_DISABLE_FULL_VERSION_MATCH, 1,
1181251881Speter                [Defined if the full version matching rules are disabled])
1182251881Speter    fi
1183251881Speter])
1184251881Speter
1185251881SpeterAC_ARG_WITH(editor,
1186251881SpeterAS_HELP_STRING([--with-editor=PATH],
1187251881Speter               [Specify a default editor for the subversion client.]),
1188251881Speter[
1189251881Speter
1190251881Speter    if test "$withval" = "yes" ; then
1191251881Speter      AC_MSG_ERROR([--with-editor requires an argument.])
1192251881Speter    else
1193251881Speter      SVN_CLIENT_EDITOR=$withval
1194251881Speter      AC_DEFINE_UNQUOTED(SVN_CLIENT_EDITOR, "$SVN_CLIENT_EDITOR",
1195251881Speter                         [The path of a default editor for the client.])
1196251881Speter
1197251881Speter    fi
1198251881Speter
1199251881Speter])
1200251881Speter
1201251881SpeterSVN_LIB_Z
1202251881Speter
1203362181SdimSVN_LZ4
1204362181Sdim
1205362181SdimSVN_UTF8PROC
1206362181Sdim
1207251881SpeterMOD_ACTIVATION=""
1208251881SpeterAC_ARG_ENABLE(mod-activation,
1209251881SpeterAS_HELP_STRING([--enable-mod-activation],
1210251881Speter               [Enable mod_dav_svn in httpd.conf]),
1211251881Speter[
1212251881Speter    if test "$enableval" = "yes" ; then
1213251881Speter      MOD_ACTIVATION="-a"
1214251881Speter      AC_MSG_NOTICE([Enabling apache module activation])
1215251881Speter    else
1216251881Speter      AC_MSG_NOTICE([Disabling apache module activation])
1217251881Speter    fi
1218251881Speter])
1219251881SpeterAC_SUBST(MOD_ACTIVATION)
1220251881Speter
1221251881Speter
1222251881Speter
1223251881SpeterAC_ARG_ENABLE(gcov,
1224251881SpeterAC_HELP_STRING([--enable-gcov],
1225251881Speter               [Turn on gcov coverage testing (GCC only).]),
1226251881Speter[
1227251881Speter    if test "$enableval" = "yes" ; then
1228251881Speter      dnl Probably other compilers support something similar;
1229251881Speter      dnl feel free to extend this to include them.
1230251881Speter      if test "$GCC" = "yes"; then
1231251881Speter        if test "$svn_enable_shared" = "yes" ; then
1232251881Speter          AC_MSG_ERROR([Can't have --enable-gcov without --disable-shared (we
1233251881Speter                        recommend also using --enable-all-static).])
1234251881Speter        fi
1235251881Speter        if test ! "$enable_all_static" = "yes" ; then
1236251881Speter          AC_MSG_WARN(We recommend --enable-all-static with --enable-gcov.)
1237251881Speter        fi
1238251881Speter        AC_MSG_NOTICE([Enabling gcov coverage testing.])
1239251881Speter        CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
1240251881Speter        CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage"
1241251881Speter      else
1242251881Speter        AC_MSG_ERROR([We only support --enable-gcov with GCC right now.])
1243251881Speter      fi
1244251881Speter    fi
1245251881Speter])
1246251881Speter
1247251881SpeterAC_ARG_ENABLE(gprof,
1248251881SpeterAS_HELP_STRING([--enable-gprof],
1249251881Speter               [Produce gprof profiling data in 'gmon.out' (GCC only).]),
1250251881Speter[
1251251881Speter    if test "$enableval" = "yes" ; then
1252251881Speter      dnl Probably other compilers support -pg or something similar;
1253251881Speter      dnl feel free to extend this to include them.
1254251881Speter      if test "$GCC" = "yes"; then
1255251881Speter        if test "$svn_enable_shared" = "yes" ; then
1256251881Speter          AC_MSG_ERROR([Can't have --enable-gprof without --disable-shared (we
1257251881Speter                        recommend also using --enable-all-static).])
1258251881Speter        fi
1259251881Speter        if test ! "$enable_all_static" = "yes" ; then
1260251881Speter          AC_MSG_WARN(We recommend --enable-all-static with --enable-gprof.)
1261251881Speter        fi
1262251881Speter        AC_MSG_NOTICE([Enabling gprof profiling data (to gmon.out).])
1263251881Speter        CFLAGS="$CFLAGS -pg"
1264251881Speter        CXXFLAGS="$CXXFLAGS -pg"
1265251881Speter        LT_LDFLAGS="$LT_LDFLAGS -pg"
1266251881Speter      else
1267251881Speter        AC_MSG_ERROR([We only support --enable-gprof with GCC right now.])
1268251881Speter      fi
1269251881Speter    fi
1270251881Speter])
1271251881Speter
1272251881Speter
1273251881Speter# Scripting and Bindings languages
1274251881Speter
1275251881Speter# Python: Used for testsuite, and bindings
1276362181SdimAC_ARG_VAR([PYTHON], [Python interpreter command])
1277251881Speter
1278251881SpeterPYTHON="`$abs_srcdir/build/find_python.sh`"
1279251881Speterif test -z "$PYTHON"; then
1280289180Speter  AC_MSG_WARN([Python 2.7 or later is required to run the testsuite])
1281251881Speter  AC_MSG_WARN([or to use the Subversion Python bindings])
1282251881Speter  AC_MSG_WARN([])
1283251881Speter  AC_MSG_WARN([If you have a suitable Python installed, but not on the])
1284251881Speter  AC_MSG_WARN([PATH, set the environment variable PYTHON to the full path])
1285251881Speter  AC_MSG_WARN([to the Python executable, and re-run configure])
1286251881Speterfi
1287251881SpeterAC_PATH_PROGS(PYTHON, "$PYTHON", none)
1288251881Speter
1289251881Speter# The minimum version for the JVM runtime for our Java bytecode.
1290362181SdimJAVA_OLDEST_WORKING_VER='1.8'
1291251881Speter# SVN_CHECK_JDK sets $JAVA_CLASSPATH
1292251881SpeterSVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
1293251881Speter
1294251881SpeterAC_PATH_PROG(PERL, perl, none)
1295251881Speter
1296251881Speterif test -n "$RUBY"; then
1297251881Speter  AC_PATH_PROG(RUBY, "$RUBY", none)
1298251881Speterelse
1299362181Sdim  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)
1300251881Speterfi
1301251881Speterif test "$RUBY" != "none"; then
1302251881Speter  AC_MSG_CHECKING([rb_hash_foreach])
1303251881Speter  if "$RUBY" -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)' >/dev/null; then
1304251881Speter    AC_MSG_RESULT([yes])
1305251881Speter    if test -n "$RDOC"; then
1306251881Speter      AC_PATH_PROG(RDOC, "$RDOC", none)
1307251881Speter    else
1308362181Sdim      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)
1309251881Speter    fi
1310251881Speter    AC_CACHE_CHECK([for Ruby major version], [svn_cv_ruby_major],[
1311251881Speter    svn_cv_ruby_major="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MAJOR))'`"
1312251881Speter    ])
1313251881Speter    RUBY_MAJOR="$svn_cv_ruby_major"
1314251881Speter
1315251881Speter    AC_CACHE_CHECK([for Ruby minor version], [svn_cv_ruby_minor],[
1316251881Speter    svn_cv_ruby_minor="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MINOR))'`"
1317251881Speter    ])
1318251881Speter    RUBY_MINOR="$svn_cv_ruby_minor"
1319251881Speter
1320251881Speter    AC_CACHE_CHECK([for Ruby teeny version], [svn_cv_ruby_teeny],[
1321251881Speter    svn_cv_ruby_teeny="`$RUBY -rrbconfig -e 'major, minor, teeny = RUBY_VERSION.split("."); print teeny;'`"
1322251881Speter    ])
1323251881Speter    RUBY_TEENY="$svn_cv_ruby_teeny"
1324251881Speter    
1325251881Speter    AC_SUBST(RUBY_MAJOR)
1326251881Speter    AC_SUBST(RUBY_MINOR)
1327251881Speter    AC_SUBST(RUBY_TEENY)
1328251881Speter    if test \( "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -gt "8" -a "$RUBY_TEENY" -lt "3" \); then
1329251881Speter      # Disallow Ruby between 1.8.7 and 1.9.3
1330251881Speter      RUBY="none"
1331251881Speter      AC_MSG_WARN([The detected Ruby is between 1.9 and 1.9.3])
1332362181Sdim      AC_MSG_WARN([Only 1.8.x and 1.9.3 or later are supported at this time])
1333251881Speter    fi
1334251881Speter  else
1335251881Speter    AC_MSG_RESULT([no])
1336251881Speter    RUBY="none"
1337251881Speter    AC_MSG_WARN([The detected Ruby is too old for Subversion to use])
1338251881Speter    AC_MSG_WARN([A Ruby which has rb_hash_foreach is required to use the])
1339251881Speter    AC_MSG_WARN([Subversion Ruby bindings])
1340251881Speter    AC_MSG_WARN([Upgrade to the official 1.8.2 release, or later])
1341251881Speter  fi
1342251881Speterfi
1343251881Speter
1344251881SpeterSVN_CHECK_SWIG
1345362181SdimAC_ARG_VAR(SWIG_FEATURES, [SWIG feature flags common to all bindings])
1346362181SdimAC_ARG_VAR(SWIG_RB_FEATURES, [SWIG feature flags specific to Ruby bindings])
1347362181SdimAC_ARG_VAR(SWIG_PL_FEATURES, [SWIG feature flags specific to Perl bindings])
1348362181SdimAC_ARG_VAR(SWIG_PY_FEATURES, [SWIG feature flags specific to Python bindings])
1349251881Speter
1350251881SpeterSVN_CHECK_CTYPESGEN
1351251881Speter
1352251881Speterdnl decide whether we want to link against the RA/FS libraries
1353251881SpeterAC_ARG_ENABLE(runtime-module-search,
1354251881SpeterAS_HELP_STRING([--enable-runtime-module-search],
1355251881Speter               [Turn on dynamic loading of RA/FS libraries including
1356251881Speter                third-party FS libraries]),
1357251881Speter[
1358251881Speter    if test "$enableval" = "yes"; then
1359251881Speter      use_dso=yes
1360251881Speter      if test "$svn_enable_shared" = "no"; then
1361251881Speter        AC_MSG_ERROR([--enable-runtime-module-search conflicts with --disable-shared])
1362251881Speter      fi
1363251881Speter      AC_DEFINE(SVN_USE_DSO, 1,
1364251881Speter                [Defined if svn should try to load DSOs])
1365362181Sdim
1366362181Sdim      dnl Mac OS X uses libname.MAJOR.SOVERSION.dylib
1367362181Sdim      dnl Most other unixes use libname.MAJOR.so.SOVERSION
1368362181Sdim      case "$host" in
1369362181Sdim        *-*-darwin*)
1370362181Sdim          AC_DEFINE(SVN_DSO_SUFFIX_FMT, ["%d.%d.dylib"],
1371362181Sdim                    [Shared library file name suffix format])
1372362181Sdim          ;;
1373362181Sdim        *)
1374362181Sdim          AC_DEFINE(SVN_DSO_SUFFIX_FMT, ["%d.so.%d"],
1375362181Sdim                    [Shared library file name suffix format])
1376362181Sdim          ;;
1377362181Sdim      esac
1378251881Speter    fi
1379251881Speter])
1380251881Speter
1381251881Speterif test "$svn_enable_shared" = "no" || test "$use_dso" != "yes"; then
1382362181Sdim  AC_DEFINE(SVN_LIBSVN_RA_LINKS_RA_LOCAL, 1,
1383362181Sdim      [Defined if libsvn_ra should link against libsvn_ra_local])
1384251881Speter  svn_ra_lib_deps="\$(RA_LOCAL_DEPS)"
1385251881Speter  svn_ra_lib_install_deps="install-ramod-lib"
1386251881Speter  svn_ra_lib_link="\$(RA_LOCAL_LINK)"
1387251881Speter
1388362181Sdim  AC_DEFINE(SVN_LIBSVN_RA_LINKS_RA_SVN, 1,
1389362181Sdim      [Defined if libsvn_ra should link against libsvn_ra_svn])
1390251881Speter  svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SVN_DEPS)"
1391251881Speter  svn_ra_lib_link="$svn_ra_lib_link \$(RA_SVN_LINK)"
1392251881Speter
1393251881Speter  if test "$svn_lib_serf" = "yes"; then
1394362181Sdim    AC_DEFINE(SVN_LIBSVN_RA_LINKS_RA_SERF, 1,
1395362181Sdim          [Defined if libsvn_ra should link against libsvn_ra_serf])
1396251881Speter    svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SERF_DEPS)"
1397251881Speter    svn_ra_lib_install_deps="$svn_ra_lib_install_deps install-serf-lib"
1398251881Speter    svn_ra_lib_link="$svn_ra_lib_link \$(RA_SERF_LINK)"
1399251881Speter  fi
1400251881Speter
1401251881Speter  SVN_RA_LIB_DEPS=$svn_ra_lib_deps
1402251881Speter  SVN_RA_LIB_INSTALL_DEPS=$svn_ra_lib_install_deps
1403251881Speter  SVN_RA_LIB_LINK=$svn_ra_lib_link
1404251881Speter
1405251881Speter  AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_FS, 1,
1406251881Speter      [Defined if libsvn_fs should link against libsvn_fs_fs])
1407251881Speter  svn_fs_lib_deps="\$(FS_FS_DEPS)"
1408251881Speter  svn_fs_lib_install_deps="install-fsmod-lib"
1409251881Speter  svn_fs_lib_link="\$(FS_FS_LINK)"
1410251881Speter
1411289180Speter  AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_X, 1,
1412289180Speter      [Defined if libsvn_fs should link against libsvn_fs_x])
1413289180Speter  svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_X_DEPS)"
1414289180Speter  svn_fs_lib_link="$svn_fs_lib_link \$(FS_X_LINK)"
1415289180Speterdnl  FSFS already installs fsmod
1416289180Speterdnl  svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-fsmod-lib"
1417289180Speter
1418251881Speter  if test "$svn_lib_berkeley_db" = "yes"; then
1419251881Speter  AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_BASE, 1,
1420251881Speter      [Defined if libsvn_fs should link against libsvn_fs_base])
1421251881Speter    svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_BASE_DEPS)"
1422251881Speter    svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-bdb-lib"
1423251881Speter    svn_fs_lib_link="$svn_fs_lib_link \$(FS_BASE_LINK)"
1424251881Speter  fi
1425251881Speter
1426251881Speter  SVN_FS_LIB_DEPS=$svn_fs_lib_deps
1427251881Speter  SVN_FS_LIB_INSTALL_DEPS=$svn_fs_lib_install_deps
1428251881Speter  SVN_FS_LIB_LINK=$svn_fs_lib_link
1429251881Speterfi
1430251881Speter
1431251881SpeterAC_SUBST(SVN_RA_LIB_DEPS)
1432251881SpeterAC_SUBST(SVN_RA_LIB_INSTALL_DEPS)
1433251881SpeterAC_SUBST(SVN_RA_LIB_LINK)
1434251881SpeterAC_SUBST(SVN_FS_LIB_DEPS)
1435251881SpeterAC_SUBST(SVN_FS_LIB_INSTALL_DEPS)
1436251881SpeterAC_SUBST(SVN_FS_LIB_LINK)
1437251881Speter
1438362181Sdim# ==== SVN++ =================================================================
1439362181Sdim
1440362181Sdimdnl Possibly compile SVN++
1441362181Sdimdo_svnxx_build=no
1442362181SdimAC_ARG_ENABLE(svnxx,
1443362181Sdim  AS_HELP_STRING([--enable-svnxx],
1444362181Sdim      [Enable compilation of the C++ bindings (requires C++)]),
1445362181Sdim  [ if test "$enableval" = "yes" ; then
1446362181Sdim        AC_MSG_NOTICE([Enabling the C++ bindings])
1447362181Sdim        do_svnxx_build=yes
1448362181Sdim    fi
1449362181Sdim  ])
1450362181Sdim
1451362181Sdimdnl Possibly compile SVN++ tests
1452362181Sdimdo_svnxx_test_build=no
1453362181SdimAC_ARG_ENABLE(svnxx-tests,
1454362181Sdim  AS_HELP_STRING([--enable-svnxx-tests],
1455362181Sdim      [Enable compilation of tests for the C++ bindings
1456362181Sdim      (implies --enable-svnxx, requires Boost and Boost.Test)]),
1457362181Sdim  [ if test "$enableval" = "yes" ; then
1458362181Sdim        AC_MSG_NOTICE([Enabling tests for the C++ bindings])
1459362181Sdim        do_svnxx_test_build=yes
1460362181Sdim    fi
1461362181Sdim  ])
1462362181Sdim
1463362181SdimAX_BOOST_BASE([1.58],
1464362181Sdim  [
1465362181Sdim    if test "$do_svnxx_test_build" = "yes"; then
1466362181Sdim        AX_BOOST_UNIT_TEST_FRAMEWORK
1467362181Sdim    fi
1468362181Sdim  ],
1469362181Sdim  [
1470362181Sdim    if test "$do_svnxx_test_build" = "yes"; then
1471362181Sdim        AC_MSG_WARN([Tests for the C++ bindings require Boost and Boost.Test])
1472362181Sdim        do_svnxx_test_build=no
1473362181Sdim    fi
1474362181Sdim  ])
1475362181Sdim
1476362181Sdimif test "$do_svnxx_test_build" = "yes"; then
1477362181Sdim    if test "$want_boost" != "yes"; then
1478362181Sdim        AC_MSG_WARN([Tests for the C++ bindings require Boost and Boost.Test])
1479362181Sdim        do_svnxx_test_build=no
1480362181Sdim        SVN_BUILD_SVNXX_TESTS=false
1481362181Sdim    else
1482362181Sdim        if test "$do_svnxx_build" != "yes"; then
1483362181Sdim            AC_MSG_WARN([Enabling the C++ bindings because their tests are enabled])
1484362181Sdim            do_svnxx_build=yes
1485362181Sdim        fi
1486362181Sdim        SVN_BUILD_SVNXX_TESTS=true
1487362181Sdim    fi
1488362181Sdimelse
1489362181Sdim    SVN_BUILD_SVNXX_TESTS=false
1490362181Sdimfi
1491362181Sdim
1492362181Sdimif test "$do_svnxx_build" = "yes"; then
1493362181Sdim    SVN_BUILD_SVNXX=true
1494362181Sdimelse
1495362181Sdim    SVN_BUILD_SVNXX=false
1496362181Sdimfi
1497362181Sdim
1498362181SdimAC_SUBST(SVN_BUILD_SVNXX)
1499362181SdimAC_SUBST(SVN_BUILD_SVNXX_TESTS)
1500362181Sdim
1501251881Speter# ==== JavaHL ================================================================
1502251881Speter
1503251881Speterdnl Possibly compile JavaHL
1504251881Speterdo_javahl_build=no
1505251881SpeterAC_ARG_ENABLE(javahl,
1506251881Speter  AS_HELP_STRING([--enable-javahl],
1507251881Speter             [Enable compilation of Java high-level bindings (requires C++)]),
1508251881Speter  [ if test "$enableval" = "yes" ; then
1509251881Speter        do_javahl_build="yes"
1510251881Speter    fi
1511251881Speter  ])
1512251881Speter
1513251881SpeterJAVAHL_OBJDIR=""
1514251881SpeterINSTALL_EXTRA_JAVAHL_LIB=""
1515251881SpeterFIX_JAVAHL_LIB=""
1516251881SpeterJAVAHL_TESTS_TARGET=""
1517251881SpeterJAVAHL_COMPAT_TESTS_TARGET=""
1518251881SpeterLT_CXX_LIBADD=""
1519251881Speterif test "$do_javahl_build" = "yes"; then
1520251881Speter  dnl Check for suitable JDK
1521251881Speter  if test "$JDK_SUITABLE" = "no"; then
1522251881Speter    AC_MSG_ERROR([Cannot compile JavaHL without a suitable JDK. 
1523251881Speter                  Please specify a suitable JDK using the --with-jdk option.])
1524251881Speter  fi
1525251881Speter  
1526251881Speter  dnl The temporary directory where libtool compiles libsvnjavahl.
1527251881Speter  JAVAHL_OBJDIR='$(libsvnjavahl_PATH)/.libs'
1528251881Speter  
1529251881Speter  os_arch=`uname`
1530251881Speter  if test "$os_arch" = "Darwin"; then
1531251881Speter    dnl On Darwin, JNI libs must be installed as .jnilib
1532251881Speter    INSTALL_EXTRA_JAVAHL_LIB='ln -sf $(libdir)/libsvnjavahl-1.dylib $(libdir)/libsvnjavahl-1.jnilib'
1533251881Speter    FIX_JAVAHL_LIB="ln -sf libsvnjavahl-1.dylib $JAVAHL_OBJDIR/libsvnjavahl-1.jnilib"
1534251881Speter  fi
1535251881Speter  # This segment (and the rest of r10800) is very likely unnecessary
1536251881Speter  # with libtool 1.5, which automatically adds libstdc++ as a
1537251881Speter  # dependency to the C++ libraries it builds.  So at some future time
1538251881Speter  # when autogen.sh requires libtool 1.5 or higher, we can get rid of
1539251881Speter  # it.
1540251881Speter  AC_MSG_CHECKING([for additional flags to link C++ libraries])
1541251881Speter  if test "x$ac_compiler_gnu" = "xyes"; then
1542289180Speter    case "$host" in
1543289180Speter      *freebsd10*)
1544289180Speter        AC_MSG_RESULT([none needed])
1545289180Speter      ;;
1546289180Speter      *)
1547289180Speter        LT_CXX_LIBADD="-lstdc++"
1548289180Speter        AC_MSG_RESULT([$LT_CXX_LIBADD])
1549289180Speter      ;;
1550289180Speter    esac
1551251881Speter  else
1552251881Speter    AC_MSG_RESULT([none needed])
1553251881Speter  fi
1554251881Speterfi
1555251881SpeterAC_SUBST(INSTALL_EXTRA_JAVAHL_LIB)
1556251881SpeterAC_SUBST(JAVAHL_OBJDIR)
1557251881SpeterAC_SUBST(FIX_JAVAHL_LIB)
1558251881SpeterAC_SUBST(LT_CXX_LIBADD)
1559251881Speter
1560251881SpeterAC_ARG_WITH(junit,
1561251881SpeterAS_HELP_STRING([--with-junit=PATH],
1562251881Speter               [Specify a path to the junit JAR file.]),
1563251881Speter[
1564251881Speter    if test "$withval" != "no"; then
1565251881Speter      if test -n "$JAVA_CLASSPATH"; then
1566251881Speter        JAVA_CLASSPATH="$withval:$JAVA_CLASSPATH"
1567251881Speter      else
1568251881Speter        JAVA_CLASSPATH="$withval"
1569251881Speter      fi
1570251881Speter      JAVAHL_TESTS_TARGET="javahl-tests"
1571251881Speter      JAVAHL_COMPAT_TESTS_TARGET="javahl-compat-tests"
1572251881Speter    fi
1573251881Speter])
1574251881SpeterAC_SUBST(JAVA_CLASSPATH)
1575251881SpeterAC_SUBST(JAVAHL_TESTS_TARGET)
1576251881SpeterAC_SUBST(JAVAHL_COMPAT_TESTS_TARGET)
1577251881Speter
1578251881Speter# ==== Miscellaneous bits ====================================================
1579251881Speter
1580362181SdimAC_CHECK_HEADERS([stdbool.h stdint.h])
1581289180Speter
1582251881Speter# Strip '-no-cpp-precomp' from CPPFLAGS for the clang compiler
1583251881Speter### I think we get this flag from APR, so the fix probably belongs there
1584251881Speterif test "$CC" = "clang"; then
1585251881Speter  SVN_STRIP_FLAG(CPPFLAGS, [-no-cpp-precomp ])
1586251881Speterfi
1587251881Speter
1588251881Speterdnl Since this is used only on Unix-y systems, define the path separator as '/'
1589251881SpeterAC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/',
1590251881Speter        [Defined to be the path separator used on your local filesystem])
1591251881Speter
1592251881SpeterAC_DEFINE_UNQUOTED(SVN_NULL_DEVICE_NAME, "/dev/null",
1593251881Speter        [Defined to be the null device for the system])
1594251881Speter
1595251881SpeterDEFAULT_FS_TYPE="fsfs"
1596251881SpeterAC_DEFINE_UNQUOTED(DEFAULT_FS_TYPE, "$DEFAULT_FS_TYPE",
1597251881Speter                   [The fs type to use by default])
1598251881Speter
1599251881SpeterDEFAULT_HTTP_LIBRARY="serf"
1600251881SpeterAC_DEFINE_UNQUOTED(DEFAULT_HTTP_LIBRARY, "$DEFAULT_HTTP_LIBRARY",
1601251881Speter                   [The http library to use by default])
1602251881Speter
1603251881Speter# BSD/OS (BSDi) needs to use a different include syntax in Makefile
1604251881SpeterINCLUDE_OUTPUTS="include \$(top_srcdir)/build-outputs.mk"
1605251881Spetercase "$host" in
1606251881Speter  *bsdi*)
1607251881Speter    # Check whether they've installed GNU make
1608251881Speter    if ! make --version > /dev/null 2>&1; then 
1609251881Speter      # BSDi make
1610251881Speter      INCLUDE_OUTPUTS=".include \"\$(top_srcdir)/build-outputs.mk\""
1611251881Speter    fi
1612251881Speter    ;;
1613251881Speteresac
1614251881SpeterAC_SUBST(INCLUDE_OUTPUTS)
1615251881Speter
1616251881Speter# ==== Detection complete - output and run config.status =====================
1617251881Speter
1618251881SpeterAC_CONFIG_HEADERS(subversion/svn_private_config.h.tmp:subversion/svn_private_config.h.in)
1619251881SpeterAC_CONFIG_COMMANDS([svn_private_config.h.tmp],
1620251881Speter                   [svn_cf=subversion/svn_private_config.h;
1621251881Speter                    $SED -e "s/@SVN_DB_HEADER@/$SVN_DB_HEADER/" $svn_cf.tmp > $svn_cf.tmp.new
1622251881Speter                    cmp -s $svn_cf.tmp.new $svn_cf || mv -f $svn_cf.tmp.new $svn_cf
1623251881Speter                    rm -f $svn_cf.tmp.new $svn_cf.tmp],
1624251881Speter                   [SED="$SED"
1625251881Speter                    SVN_DB_HEADER="$SVN_DB_HEADER"])
1626251881SpeterAC_CONFIG_FILES([Makefile])
1627251881Speter
1628289180Speter# Create pkg-config .pc files from .pc.in files
1629289180Speterfor pc_in_file in "${abs_srcdir}"/subversion/libsvn_*/*.pc.in; do
1630289180Speter  pc_file=${pc_in_file#${abs_srcdir}/}
1631289180Speter  pc_file=${pc_file%.in}
1632289180Speter  AC_CONFIG_FILES([${pc_file}])
1633289180Speterdone
1634289180Speter
1635251881SpeterSVN_CONFIG_SCRIPT(tools/backup/hot-backup.py)
1636251881SpeterSVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl)
1637251881SpeterSVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL)
1638251881Speterif test -e packages/solaris/pkginfo.in; then
1639251881Speter  SVN_CONFIG_SCRIPT(packages/solaris/pkginfo)
1640251881Speterfi
1641251881SpeterAC_SUBST(SVN_CONFIG_SCRIPT_FILES)
1642251881Speter
1643251881Speter# Ensure that SWIG is checked after reconfiguration.
1644362181Sdimrm -f .swig_checked .swig_pl_checked .swig_py_checked .swig_rb_checked
1645251881Speter
1646251881Speterdnl Provide ${host} for use in compiled code (for svn --version)
1647251881SpeterAC_DEFINE_UNQUOTED([SVN_BUILD_HOST], "${host}",
1648251881Speter                   [Defined to the config.guess name of the build system])
1649251881Speter
1650251881Speterdnl Provide ${target} for use in compiled code (for user-agent string)
1651251881SpeterAC_DEFINE_UNQUOTED([SVN_BUILD_TARGET], "${target}",
1652251881Speter                   [Defined to the config.guess name of the build target])
1653251881Speter
1654251881SpeterAC_OUTPUT
1655251881Speter
1656251881Speter# ==== Print final messages to user ==========================================
1657251881Speter
1658251881Speterdnl Configure is long - users tend to miss warnings printed during it.
1659251881Speterdnl Hence, print a warnings about what we did and didn't configure at the 
1660251881Speterdnl end, where people will actually see them.
1661251881Speter
1662253734Speterif test "$svn_have_berkeley_db" = "no6" && test "$enable_bdb6" != "no"; then
1663253734Speter  AC_MSG_WARN([We have configured without BDB filesystem support
1664251881Speter
1665251881Speter
1666253734SpeterBerkeley DB 6 was found, but not used.  Please re-run configure (see
1667253734Speter./config.nice) with the '--enable-bdb6' flag to use it,
1668253734Speteror explicitly specify '--disable-bdb6' or '--without-berkeley-db'
1669253734Speterto silence this warning.
1670251881Speter
1671253734SpeterPlease note that some versions of Berkeley DB 6+ are under the GNU Affero
1672253734SpeterGeneral Public License, version 3:
1673253734Speterhttps://oss.oracle.com/pipermail/bdb/2013-June/000056.html
1674251881Speter
1675253734SpeterThe AGPL-3.0 licence may impose special requirements for making available
1676253734Spetersource code of server-side software.  The text of the licence is:
1677253734Speterhttps://www.gnu.org/licenses/agpl-3.0.html
1678253734Speterhttp://opensource.org/licenses/AGPL-3.0
1679253734Speter
1680253734SpeterThe Berkeley DB backend to Subversion is deprecated; see
1681253734Speterhttp://subversion.apache.org/docs/release-notes/1.8#bdb-deprecated
1682253734Speter
1683253734SpeterThe Subversion developers have not tested Subversion with Berkeley DB 6 for
1684253734Spetertechnical problems or bugs.
1685251881Speter])
1686251881Speterfi
1687