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], 26251881Speter [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 94299742SdimAPR_VER_REGEXES=["1\.[3-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) 107299742Sdim SVN_APR_MAJOR_VERSION=2 108251881Speterelse 109251881Speter svn_lib_ver=0 110299742Sdim APU_VER_REGEXES=["1\.[3-9]\."] 111251881Speter SVN_LIB_APRUTIL($APU_VER_REGEXES) 112299742Sdim SVN_APR_MAJOR_VERSION=1 113251881Speterfi 114299742SdimAC_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 124299742SdimSVN_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 139251881Speter 140251881Speterdnl Find Apache with a recent-enough magic module number 141299742SdimSVN_FIND_APACHE(20051115) 142251881Speter 143251881Speterdnl Search for SQLite. If you change SQLITE_URL from a .zip to 144251881Speterdnl something else also update build/ac-macros/sqlite.m4 to reflect 145251881Speterdnl the correct command to unpack the downloaded file. 146251881SpeterSQLITE_MINIMUM_VER="3.7.12" 147251881SpeterSQLITE_RECOMMENDED_VER="3.7.15.1" 148251881SpeterSQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-$(printf %d%02d%02d%02d $(echo ${SQLITE_RECOMMENDED_VER} | sed -e 's/\./ /g')).zip" 149251881Speter 150251881SpeterSVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER}, 151251881Speter ${SQLITE_URL}) 152251881Speter 153251881SpeterAC_ARG_ENABLE(sqlite-compatibility-version, 154251881Speter AS_HELP_STRING([--enable-sqlite-compatibility-version=X.Y.Z], 155251881Speter [Allow binary to run against SQLite as old as ARG]), 156251881Speter [sqlite_compat_ver=$enableval],[sqlite_compat_ver=no]) 157251881Speter 158251881Speterif test -n "$sqlite_compat_ver" && test "$sqlite_compat_ver" != no; then 159251881Speter SVN_SQLITE_VERNUM_PARSE([$sqlite_compat_ver], 160251881Speter [sqlite_compat_ver_num]) 161251881Speter CFLAGS="-DSVN_SQLITE_MIN_VERSION='\"$sqlite_compat_ver\"' $CFLAGS" 162251881Speter CFLAGS="-DSVN_SQLITE_MIN_VERSION_NUMBER=$sqlite_compat_ver_num $CFLAGS" 163251881Speterfi 164251881Speter 165251881SpeterSVN_CHECK_FOR_ATOMIC_BUILTINS 166251881Speterif test "$svn_cv_atomic_builtins" = "yes"; then 167251881Speter AC_DEFINE(SVN_HAS_ATOMIC_BUILTINS, 1, [Define if compiler provides atomic builtins]) 168251881Speterfi 169251881Speter 170251881Speterdnl Set up a number of directories --------------------- 171251881Speter 172251881Speterdnl Create SVN_BINDIR for proper substitution 173251881Speterif test "${bindir}" = '${exec_prefix}/bin'; then 174251881Speter if test "${exec_prefix}" = "NONE"; then 175251881Speter if test "${prefix}" = "NONE"; then 176251881Speter SVN_BINDIR="${ac_default_prefix}/bin" 177251881Speter else 178251881Speter SVN_BINDIR="${prefix}/bin" 179251881Speter fi 180251881Speter else 181251881Speter SVN_BINDIR="${exec_prefix}/bin" 182251881Speter fi 183251881Speterelse 184251881Speter SVN_BINDIR="${bindir}" 185251881Speterfi 186251881Speter 187251881Speterdnl fully evaluate this value. when we substitute it into our tool scripts, 188251881Speterdnl they will not have things such as ${bindir} available 189251881SpeterSVN_BINDIR="`eval echo ${SVN_BINDIR}`" 190251881SpeterAC_SUBST(SVN_BINDIR) 191251881Speter 192251881Speterdnl provide ${bindir} in svn_private_config.h for use in compiled code 193251881SpeterAC_DEFINE_UNQUOTED(SVN_BINDIR, "${SVN_BINDIR}", 194251881Speter [Defined to be the path to the installed binaries]) 195251881Speter 196251881Speterdnl This purposely does *not* allow for multiple parallel installs. 197251881Speterdnl However, it is compatible with most gettext usages. 198251881Speterlocaledir='${datadir}/locale' 199251881SpeterAC_SUBST(localedir) 200251881Speter 201251881Speterdnl For SVN_LOCALE_DIR, we have to expand it to something. See SVN_BINDIR. 202309512Speterif test "${prefix}" = "NONE" \ 203309512Speter && ( test "${datadir}" = '${prefix}/share' \ 204309512Speter || ( test "${datadir}" = '${datarootdir}' \ 205309512Speter && test "${datarootdir}" = '${prefix}/share' ) ); then 206251881Speter exp_localedir='${ac_default_prefix}/share/locale' 207251881Speterelse 208251881Speter exp_localedir=$localedir 209251881Speterfi 210251881SpeterSVN_EXPAND_VAR(svn_localedir, "${exp_localedir}") 211251881SpeterAC_DEFINE_UNQUOTED(SVN_LOCALE_DIR, "${svn_localedir}", 212251881Speter [Defined to be the path to the installed locale dirs]) 213251881Speter 214251881Speterdnl Check for libtool -- we'll definitely need it for all our shared libs! 215251881SpeterAC_MSG_NOTICE([configuring libtool now]) 216251881Speterifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL]) 217251881SpeterAC_ARG_ENABLE(experimental-libtool, 218251881Speter AS_HELP_STRING([--enable-experimental-libtool],[Use APR's libtool]), 219251881Speter [experimental_libtool=$enableval],[experimental_libtool=no]) 220251881Speter 221251881Speterif test "$experimental_libtool" = "yes"; then 222251881Speter echo "using APR's libtool" 223251881Speter sh_libtool="`$apr_config --apr-libtool`" 224251881Speter LIBTOOL="$sh_libtool" 225251881Speter SVN_LIBTOOL="$sh_libtool" 226251881Speterelse 227251881Speter sh_libtool="$abs_builddir/libtool" 228299742Sdim SVN_LIBTOOL="\$(SHELL) \"$sh_libtool\"" 229251881Speterfi 230251881SpeterAC_SUBST(SVN_LIBTOOL) 231251881Speter 232251881Speterdnl Determine the libtool version 233251881Speterchangequote(, )dnl 234251881Speterlt_pversion=`$LIBTOOL --version 2>/dev/null|$SED -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` 235251881Speterlt_version=`echo $lt_pversion|$SED -e 's/\([a-z]*\)$/.\1/'` 236251881Speterlt_major_version=`echo $lt_version | cut -d'.' -f 1` 237251881Speterchangequote([, ])dnl 238251881Speter 239251881Speterdnl set the default parameters 240251881Spetersvn_enable_static=yes 241251881Spetersvn_enable_shared=yes 242251881Speter 243251881Speterdnl check for --enable-static option 244251881SpeterAC_ARG_ENABLE(static, 245251881Speter AS_HELP_STRING([--enable-static], 246251881Speter [Build static libraries]), 247251881Speter [svn_enable_static="$enableval"], [svn_enable_static="yes"]) 248251881Speter 249251881Speterdnl check for --enable-shared option 250251881SpeterAC_ARG_ENABLE(shared, 251251881Speter AS_HELP_STRING([--enable-shared], 252251881Speter [Build shared libraries]), 253251881Speter [svn_enable_shared="$enableval"], [svn_enable_shared="yes"]) 254251881Speter 255251881Speterif test "$svn_enable_static" = "yes" && test "$svn_enable_shared" = "yes" ; then 256251881Speter AC_MSG_NOTICE([building both shared and static libraries]) 257251881Speterelif test "$svn_enable_static" = "yes" ; then 258251881Speter AC_MSG_NOTICE([building static libraries only]) 259251881Speter LT_CFLAGS="-static $LT_CFLAGS" 260251881Speter LT_LDFLAGS="-static $LT_LDFLAGS" 261251881Speterelif test "$svn_enable_shared" = "yes" ; then 262251881Speter AC_MSG_NOTICE([building shared libraries only]) 263251881Speter if test "$lt_major_version" = "1" ; then 264251881Speter LT_CFLAGS="-prefer-pic $LT_CFLAGS" 265251881Speter elif test "$lt_major_version" = "2" ; then 266251881Speter LT_CFLAGS="-shared $LT_CFLAGS" 267251881Speter fi 268251881Speter LT_LDFLAGS="-shared $LT_LDFLAGS" 269251881Speterelse 270251881Speter AC_MSG_ERROR([cannot disable both shared and static libraries]) 271251881Speterfi 272251881Speter 273251881Speterdnl Check for --enable-all-static option 274251881SpeterAC_ARG_ENABLE(all-static, 275251881Speter AS_HELP_STRING([--enable-all-static], 276251881Speter [Build completely static (standalone) binaries.]), 277251881Speter [ 278251881Speter if test "$enableval" = "yes" ; then 279251881Speter LT_LDFLAGS="-all-static $LT_LDFLAGS" 280251881Speter elif test "$enableval" != "no" ; then 281251881Speter AC_MSG_ERROR([--enable-all-static doesn't accept argument]) 282251881Speter fi 283251881Speter]) 284251881Speter 285251881SpeterAC_SUBST(LT_CFLAGS) 286251881SpeterAC_SUBST(LT_LDFLAGS) 287251881Speter 288251881SpeterAC_ARG_ENABLE(local-library-preloading, 289251881Speter AS_HELP_STRING([--enable-local-library-preloading], 290251881Speter [Enable preloading of locally built libraries in locally 291251881Speter built executables. This may be necessary for testing 292251881Speter prior to installation on some platforms. It does not 293251881Speter work on some platforms (Darwin, OpenBSD, ...).]), 294251881Speter [ 295251881Speter if test "$enableval" != "no"; then 296251881Speter if test "$svn_enable_shared" = "yes"; then 297251881Speter TRANSFORM_LIBTOOL_SCRIPTS="transform-libtool-scripts" 298251881Speter else 299251881Speter AC_MSG_ERROR([--enable-local-library-preloading conflicts with --disable-shared]) 300251881Speter fi 301251881Speter else 302251881Speter TRANSFORM_LIBTOOL_SCRIPTS="" 303251881Speter fi 304251881Speter ], [ 305251881Speter TRANSFORM_LIBTOOL_SCRIPTS="" 306251881Speter]) 307251881SpeterAC_SUBST(TRANSFORM_LIBTOOL_SCRIPTS) 308251881Speter 309251881Speterdnl Check if -no-undefined is needed for the platform. 310251881Speterdnl It should always work but with libtool 1.4.3 on OS X it breaks the build. 311251881Speterdnl So we only turn it on for platforms where we know we really need it. 312251881SpeterAC_MSG_CHECKING([whether libtool needs -no-undefined]) 313251881Spetercase $host in 314251881Speter *-*-cygwin*) 315251881Speter AC_MSG_RESULT([yes]) 316251881Speter LT_NO_UNDEFINED="-no-undefined" 317251881Speter ;; 318251881Speter *) 319251881Speter AC_MSG_RESULT([no]) 320251881Speter LT_NO_UNDEFINED="" 321251881Speter ;; 322251881Speteresac 323251881SpeterAC_SUBST(LT_NO_UNDEFINED) 324251881Speter 325251881Speterdnl Check for trang. 326251881Spetertrang=yes 327251881SpeterAC_ARG_WITH(trang, 328251881SpeterAS_HELP_STRING([--with-trang=PATH], 329251881Speter [Specify the command to run the trang schema converter]), 330251881Speter[ 331251881Speter trang="$withval" 332251881Speter]) 333251881Speterif test "$trang" = "yes"; then 334251881Speter AC_PATH_PROG(TRANG, trang, none) 335251881Speterelse 336251881Speter TRANG="$trang" 337251881Speter AC_SUBST(TRANG) 338251881Speterfi 339251881Speter 340251881Speterdnl Check for doxygen 341251881Speterdoxygen=yes 342251881SpeterAC_ARG_WITH(doxygen, 343251881SpeterAC_HELP_STRING([--with-doxygen=PATH], 344251881Speter [Specify the command to run doxygen]), 345251881Speter[ 346251881Speter doxygen="$withval" 347251881Speter]) 348251881Speterif test "$doxygen" = "yes"; then 349251881Speter AC_PATH_PROG(DOXYGEN, doxygen, none) 350251881Speterelse 351251881Speter DOXYGEN="$doxygen" 352251881Speter AC_SUBST(DOXYGEN) 353251881Speterfi 354251881Speter 355251881Speter 356251881Speterdnl Check for libraries -------------------- 357251881Speter 358251881Speterdnl Expat ------------------- 359251881Speter 360251881SpeterAC_ARG_WITH(expat, 361251881Speter AS_HELP_STRING([--with-expat=INCLUDES:LIB_SEARCH_DIRS:LIBS], 362251881Speter [Specify location of Expat]), 363251881Speter [svn_lib_expat="$withval"], 364251881Speter [svn_lib_expat="::expat"]) 365251881Speter 366251881Speter# APR-util accepts "builtin" as an argument to this option so if the user 367251881Speter# passed "builtin" pretend the user didn't specify the --with-expat option 368251881Speter# at all. Expat will (hopefully) be found in apr-util. 369251881Spetertest "_$svn_lib_expat" = "_builtin" && svn_lib_expat="::expat" 370251881Speter 371251881SpeterAC_MSG_CHECKING([for Expat]) 372251881Speterif test -n "`echo "$svn_lib_expat" | $EGREP ":.*:"`"; then 373251881Speter SVN_XML_INCLUDES="" 374251881Speter for i in [`echo "$svn_lib_expat" | $SED -e "s/\([^:]*\):.*/\1/"`]; do 375251881Speter SVN_XML_INCLUDES="$SVN_XML_INCLUDES -I$i" 376251881Speter done 377251881Speter SVN_XML_INCLUDES="${SVN_XML_INCLUDES## }" 378251881Speter for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\):.*/\1/"`]; do 379251881Speter LDFLAGS="$LDFLAGS -L$l" 380251881Speter done 381251881Speter for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\)/\1/"`]; do 382251881Speter SVN_XML_LIBS="$SVN_XML_LIBS -l$l" 383251881Speter done 384251881Speter SVN_XML_LIBS="${SVN_XML_LIBS## }" 385251881Speter old_CPPFLAGS="$CPPFLAGS" 386251881Speter old_LIBS="$LIBS" 387251881Speter CPPFLAGS="$CPPFLAGS $SVN_XML_INCLUDES" 388251881Speter LIBS="$LIBS $SVN_XML_LIBS" 389251881Speter AC_LINK_IFELSE([AC_LANG_SOURCE([[ 390251881Speter#include <expat.h> 391251881Speterint main() 392251881Speter{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no") 393251881Speter LIBS="$old_LIBS" 394251881Speter if test "$svn_lib_expat" = "yes"; then 395251881Speter AC_MSG_RESULT([yes]) 396251881Speter else 397251881Speter SVN_XML_INCLUDES="" 398251881Speter SVN_XML_LIBS="" 399251881Speter CPPFLAGS="$CPPFLAGS $SVN_APRUTIL_INCLUDES" 400251881Speter if test "$enable_all_static" != "yes"; then 401251881Speter SVN_APRUTIL_LIBS="$SVN_APRUTIL_LIBS `$apu_config --libs`" 402251881Speter fi 403251881Speter AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ 404251881Speter#include <expat.h> 405251881Speterint main() 406251881Speter{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no") 407251881Speter if test "$svn_lib_expat" = "yes"; then 408251881Speter AC_MSG_RESULT([yes]) 409251881Speter 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.]) 410251881Speter else 411251881Speter AC_MSG_RESULT([no]) 412251881Speter AC_MSG_ERROR([Expat not found]) 413251881Speter fi 414251881Speter fi 415251881Speter CPPFLAGS="$old_CPPFLAGS" 416251881Speterelse 417251881Speter AC_MSG_RESULT([no]) 418251881Speter if test "$svn_lib_expat" = "yes"; then 419251881Speter AC_MSG_ERROR([--with-expat option requires argument]) 420251881Speter elif test "$svn_lib_expat" = "no"; then 421251881Speter AC_MSG_ERROR([Expat is required]) 422251881Speter else 423251881Speter AC_MSG_ERROR([Invalid syntax of argument of --with-expat option]) 424251881Speter fi 425251881Speterfi 426251881SpeterAC_SUBST(SVN_XML_INCLUDES) 427251881SpeterAC_SUBST(SVN_XML_LIBS) 428251881Speter 429251881Speterdnl Berkeley DB ------------------- 430251881Speter 431251881Speter# Berkeley DB on SCO OpenServer needs -lsocket 432251881SpeterAC_CHECK_LIB(socket, socket) 433251881Speter 434251881Speter# Build the BDB filesystem library only if we have an appropriate 435251881Speter# version of Berkeley DB. 436251881Spetercase "$host" in 437251881Speterpowerpc-apple-darwin*) 438251881Speter # Berkeley DB 4.0 does not work on OS X. 439251881Speter SVN_FS_WANT_DB_MAJOR=4 440251881Speter SVN_FS_WANT_DB_MINOR=1 441251881Speter SVN_FS_WANT_DB_PATCH=25 442251881Speter ;; 443251881Speter*) 444251881Speter SVN_FS_WANT_DB_MAJOR=4 445251881Speter SVN_FS_WANT_DB_MINOR=0 446251881Speter SVN_FS_WANT_DB_PATCH=14 447251881Speter ;; 448251881Speteresac 449253734Speterdb_alt_version="5.x" 450251881Speter# Look for libdb4.so first: 451251881SpeterSVN_LIB_BERKELEY_DB($SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MINOR, 452251881Speter $SVN_FS_WANT_DB_PATCH, [db4 db]) 453251881Speter 454251881SpeterAC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MAJOR, 455251881Speter [The desired major version for the Berkeley DB]) 456251881SpeterAC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MINOR, $SVN_FS_WANT_DB_MINOR, 457251881Speter [The desired minor version for the Berkeley DB]) 458251881SpeterAC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_PATCH, $SVN_FS_WANT_DB_PATCH, 459251881Speter [The desired patch version for the Berkeley DB]) 460251881Speter 461251881SpeterAC_SUBST(SVN_DB_INCLUDES) 462251881SpeterAC_SUBST(SVN_DB_LIBS) 463251881Speter 464251881SpeterSVN_LIB_SASL 465251881Speter 466251881Speterif test "$svn_lib_sasl" = "yes"; then 467251881Speter AC_DEFINE(SVN_HAVE_SASL, 1, 468251881Speter [Defined if Cyrus SASL v2 is present on the system]) 469251881Speterfi 470251881Speter 471251881Speterdnl Mac OS specific features ------------------- 472251881Speter 473251881SpeterSVN_LIB_MACHO_ITERATE 474251881SpeterSVN_LIB_MACOS_PLIST 475251881SpeterSVN_LIB_MACOS_KEYCHAIN 476251881Speter 477251881Speterdnl APR_HAS_DSO ------------------- 478251881Speter 479251881SpeterAC_MSG_CHECKING([whether APR has support for DSOs]) 480251881Speterold_CPPFLAGS="$CPPFLAGS" 481251881SpeterCPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES" 482251881SpeterAC_PREPROC_IFELSE([AC_LANG_SOURCE([[ 483251881Speter#include <apr.h> 484251881Speter#if !APR_HAS_DSO 485251881Speter#error 486251881Speter#endif]])], 487251881Speter APR_HAS_DSO="yes" 488251881Speter AC_MSG_RESULT([yes]), 489251881Speter APR_HAS_DSO="no" 490251881Speter AC_MSG_RESULT([no])) 491251881SpeterCPPFLAGS="$old_CPPFLAGS" 492251881Speter 493251881Speter 494251881Speterdnl D-Bus (required for support for KWallet) ------------------- 495251881Speter 496251881Speterif test -n "$PKG_CONFIG"; then 497251881Speter AC_MSG_CHECKING([for D-Bus .pc file]) 498251881Speter if $PKG_CONFIG --exists dbus-1; then 499251881Speter AC_MSG_RESULT([yes]) 500251881Speter old_CPPFLAGS="$CPPFLAGS" 501251881Speter old_LIBS="$LIBS" 502251881Speter DBUS_CPPFLAGS="`$PKG_CONFIG --cflags dbus-1`" 503251881Speter AC_MSG_CHECKING([D-Bus version]) 504251881Speter DBUS_VERSION="`$PKG_CONFIG --modversion dbus-1`" 505251881Speter AC_MSG_RESULT([$DBUS_VERSION]) 506251881Speter # D-Bus 0.* requires DBUS_API_SUBJECT_TO_CHANGE 507251881Speter if test -n ["`echo "$DBUS_VERSION" | $EGREP '^0\.[[:digit:]]+'`"]; then 508251881Speter DBUS_CPPFLAGS="$DBUS_CPPFLAGS -DDBUS_API_SUBJECT_TO_CHANGE" 509251881Speter fi 510251881Speter DBUS_LIBS="`$PKG_CONFIG --libs dbus-1`" 511251881Speter CPPFLAGS="$CPPFLAGS $DBUS_CPPFLAGS" 512251881Speter LIBS="$LIBS $DBUS_LIBS" 513251881Speter AC_MSG_CHECKING([for D-Bus]) 514251881Speter AC_LINK_IFELSE([AC_LANG_SOURCE([[ 515251881Speter#include <dbus/dbus.h> 516251881Speterint main() 517251881Speter{dbus_bus_get(DBUS_BUS_SESSION, NULL);}]])], HAVE_DBUS="yes", HAVE_DBUS="no") 518251881Speter if test "$HAVE_DBUS" = "yes"; then 519251881Speter AC_MSG_RESULT([yes]) 520251881Speter else 521251881Speter AC_MSG_RESULT([no]) 522251881Speter fi 523251881Speter CPPFLAGS="$old_CPPFLAGS" 524251881Speter LIBS="$old_LIBS" 525251881Speter else 526251881Speter AC_MSG_RESULT([no]) 527251881Speter fi 528251881Speterfi 529251881Speter 530251881Speterdnl GPG Agent ------------------- 531251881Speter 532251881SpeterAC_ARG_WITH(gpg_agent, 533251881SpeterAS_HELP_STRING([--without-gpg-agent], 534251881Speter [Disable support for GPG-Agent]), 535251881Speter [], [with_gpg_agent=yes]) 536251881SpeterAC_MSG_CHECKING([whether to support GPG-Agent]) 537251881Speterif test "$with_gpg_agent" = "yes"; then 538251881Speter AC_MSG_RESULT([yes]) 539251881Speter AC_DEFINE([SVN_HAVE_GPG_AGENT], [1], 540251881Speter [Is GPG Agent support enabled?]) 541251881Speterelse 542251881Speter AC_MSG_RESULT([no]) 543251881Speterfi 544251881Speter 545251881SpeterAC_SUBST(SVN_HAVE_GPG_AGENT) 546251881Speter 547251881Speterdnl GNOME Keyring ------------------- 548251881Speter 549251881SpeterAC_ARG_WITH(gnome_keyring, 550251881Speter AS_HELP_STRING([--with-gnome-keyring], 551251881Speter [Enable use of GNOME Keyring for auth credentials (enabled by default if found)]), 552251881Speter [with_gnome_keyring="$withval"], 553251881Speter [with_gnome_keyring=auto]) 554251881Speter 555251881Speterfound_gnome_keyring=no 556251881SpeterAC_MSG_CHECKING([whether to look for GNOME Keyring]) 557251881Speterif test "$with_gnome_keyring" != "no"; then 558251881Speter AC_MSG_RESULT([yes]) 559299742Sdim case "$host" in 560299742Sdim *-*-darwin*) 561299742Sdim if test "$with_gnome_keyring" = "yes"; then 562299742Sdim AC_MSG_ERROR([--with-gnome-keyring is not supported on Mac OS X.]) 563299742Sdim else 564299742Sdim with_gnome_keyring=no 565299742Sdim fi 566299742Sdim ;; 567299742Sdim *) 568299742Sdim if test "$svn_enable_shared" = "yes"; then 569299742Sdim if test "$APR_HAS_DSO" = "yes"; then 570299742Sdim if test -n "$PKG_CONFIG"; then 571299742Sdim AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files]) 572299742Sdim if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then 573251881Speter AC_MSG_RESULT([yes]) 574299742Sdim old_CPPFLAGS="$CPPFLAGS" 575299742Sdim SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`" 576299742Sdim CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES" 577299742Sdim AC_CHECK_HEADER(gnome-keyring.h, found_gnome_keyring=yes, found_gnome_keyring=no) 578299742Sdim AC_MSG_CHECKING([for GNOME Keyring]) 579299742Sdim if test "$found_gnome_keyring" = "yes"; then 580299742Sdim AC_MSG_RESULT([yes]) 581299742Sdim AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1], 582299742Sdim [Is GNOME Keyring support enabled?]) 583299742Sdim CPPFLAGS="$old_CPPFLAGS" 584299742Sdim SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`" 585299742Sdim else 586299742Sdim AC_MSG_RESULT([no]) 587299742Sdim if test "$with_gnome_keyring" = "yes"; then 588299742Sdim AC_MSG_ERROR([cannot find GNOME Keyring]) 589299742Sdim fi 590299742Sdim fi 591251881Speter else 592251881Speter AC_MSG_RESULT([no]) 593251881Speter if test "$with_gnome_keyring" = "yes"; then 594299742Sdim AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files.]) 595299742Sdim else 596299742Sdim with_gnome_keyring=no 597251881Speter fi 598251881Speter fi 599251881Speter else 600251881Speter if test "$with_gnome_keyring" = "yes"; then 601299742Sdim AC_MSG_ERROR([cannot find pkg-config. GNOME Keyring requires this.]) 602251881Speter else 603251881Speter with_gnome_keyring=no 604251881Speter fi 605251881Speter fi 606251881Speter else 607251881Speter if test "$with_gnome_keyring" = "yes"; then 608299742Sdim AC_MSG_ERROR([APR does not have support for DSOs. GNOME Keyring requires this.]) 609251881Speter else 610251881Speter with_gnome_keyring=no 611251881Speter fi 612251881Speter fi 613251881Speter else 614251881Speter if test "$with_gnome_keyring" = "yes"; then 615299742Sdim AC_MSG_ERROR([--with-gnome-keyring conflicts with --disable-shared]) 616251881Speter else 617251881Speter with_gnome_keyring=no 618251881Speter fi 619251881Speter fi 620299742Sdim ;; 621299742Sdim esac 622251881Speterelse 623251881Speter AC_MSG_RESULT([no]) 624251881Speterfi 625251881SpeterAC_SUBST(SVN_GNOME_KEYRING_INCLUDES) 626251881SpeterAC_SUBST(SVN_GNOME_KEYRING_LIBS) 627251881Speter 628299742Sdimdnl Googlemock ----------------- 629299742SdimAC_ARG_ENABLE([gmock], 630299742Sdim AS_HELP_STRING([--disable-gmock], 631299742Sdim [Do not use the Googlemock testing framework]), 632299742Sdim [], 633299742Sdim [enable_gmock=yes]) 634251881Speter 635299742SdimAC_SUBST([GMOCK_SRCDIR], [$abs_srcdir/gmock-fused]) 636299742SdimAC_MSG_CHECKING([whether use Googlemock]) 637299742Sdimif test "$enable_gmock" != "no"; then 638299742Sdim if test -d "$GMOCK_SRCDIR"; then 639299742Sdim AC_MSG_RESULT([yes]) 640299742Sdim SVN_USE_GMOCK=true 641299742Sdim else 642299742Sdim AC_MSG_RESULT([no]) 643299742Sdim SVN_USE_GMOCK=false 644299742Sdim fi 645299742Sdimelse 646299742Sdim AC_MSG_RESULT([no]) 647299742Sdim SVN_USE_GMOCK_SOURCES=false 648299742Sdimfi 649299742SdimAC_SUBST([SVN_USE_GMOCK]) 650299742Sdim 651251881Speterdnl Ev2 experimental features ---------------------- 652251881Speterdnl Note: The Ev2 implementations will be built unconditionally, but by 653251881Speterdnl providing this flag, users can choose to use the currently-shimmed Ev2 654251881Speterdnl editor implementations for various operations. This will probably 655251881Speterdnl negatively impact performance, but is useful for testing. 656251881SpeterAC_ARG_ENABLE(ev2-impl, 657251881Speter AS_HELP_STRING([--enable-ev2-impl], 658251881Speter [Use Ev2 implementations, where available [EXPERIMENTAL]]), 659251881Speter [enable_ev2_impl=$enableval],[enable_ev2_impl=no]) 660251881Speterif test "$enable_ev2_impl" = "yes"; then 661251881Speter AC_DEFINE(ENABLE_EV2_IMPL, 1, 662251881Speter [Define to 1 if Ev2 implementations should be used.]) 663251881Speterfi 664251881Speter 665251881Speter 666251881Speterdnl I18n ------------------- 667251881Speter 668251881SpeterAC_ARG_ENABLE(nls, 669251881Speter AS_HELP_STRING([--disable-nls],[Disable gettext functionality]), 670251881Speter [enable_nls=$enableval],[enable_nls=yes]) 671251881Speter 672251881SpeterUSE_NLS="no" 673299742SdimSVN_INTL_LIBS="" 674251881Speterif test "$enable_nls" = "yes"; then 675251881Speter dnl First, check to see if there is a working msgfmt. 676251881Speter AC_PATH_PROG(MSGFMT, msgfmt, none) 677251881Speter AC_PATH_PROG(MSGMERGE, msgmerge, none) 678251881Speter AC_PATH_PROG(XGETTEXT, xgettext, none) 679251881Speter if test "$MSGFMT" != "none"; then 680299742Sdim AC_SEARCH_LIBS(bindtextdomain, [intl], 681251881Speter [ 682299742Sdim # in case libintl needs to be linked explicitly, 683299742Sdim # $ac_cv_search_bindtextdomain contains -l linker flags 684299742Sdim if echo "$ac_cv_search_bindtextdomain" | grep '^-l' >/dev/null 685299742Sdim then 686299742Sdim SVN_INTL_LIBS="$ac_cv_search_bindtextdomain" 687299742Sdim fi 688299742Sdim ], 689299742Sdim [ 690251881Speter enable_nls="no" 691251881Speter ]) 692251881Speter if test "$enable_nls" = "no"; then 693251881Speter # Destroy the cached result so we can test again 694251881Speter unset ac_cv_search_bindtextdomain 695251881Speter # On some systems, libintl needs libiconv to link properly, 696251881Speter # so try again with -liconv. 697251881Speter AC_SEARCH_LIBS(bindtextdomain, [intl], 698251881Speter [ 699251881Speter enable_nls="yes" 700299742Sdim if echo "$ac_cv_search_bindtextdomain" | grep '^-l' >/dev/null 701299742Sdim then 702299742Sdim SVN_INTL_LIBS="$ac_cv_search_bindtextdomain" 703299742Sdim fi 704251881Speter # This is here so that -liconv ends up in LIBS 705251881Speter # if it worked with -liconv. 706251881Speter AC_CHECK_LIB(iconv, libiconv_open) 707251881Speter ], 708251881Speter [ 709251881Speter AC_MSG_WARN([bindtextdomain() not found. Disabling NLS.]) 710251881Speter enable_nls="no" 711251881Speter ], -liconv) 712251881Speter fi 713251881Speter if test "$enable_nls" = "yes"; then 714251881Speter AC_DEFINE(ENABLE_NLS, 1, 715251881Speter [Define to 1 if translation of program messages to the user's 716251881Speter native language is requested.]) 717251881Speter USE_NLS="yes" 718251881Speter fi 719251881Speter fi 720251881Speterfi 721251881Speter 722299742SdimAC_SUBST(SVN_INTL_LIBS) 723299742Sdim 724251881SpeterAH_BOTTOM([ 725251881Speter/* Indicate to translators that string X should be translated. Do not look 726251881Speter up the translation at run time; just expand to X. This macro is suitable 727251881Speter for use where a constant string is required at compile time. */ 728251881Speter#define N_(x) x 729251881Speter/* Indicate to translators that we have decided the string X should not be 730251881Speter translated. Expand to X. */ 731251881Speter#define U_(x) x 732251881Speter#ifdef ENABLE_NLS 733251881Speter#include <locale.h> 734251881Speter#include <libintl.h> 735251881Speter/* Indicate to translators that string X should be translated. At run time, 736251881Speter look up and return the translation of X. */ 737251881Speter#define _(x) dgettext(PACKAGE_NAME, x) 738251881Speter/* Indicate to translators that strings X1 and X2 are singular and plural 739251881Speter forms of the same message, and should be translated. At run time, return 740251881Speter an appropriate translation depending on the number N. */ 741251881Speter#define Q_(x1, x2, n) dngettext(PACKAGE_NAME, x1, x2, n) 742251881Speter#else 743251881Speter#define _(x) (x) 744251881Speter#define Q_(x1, x2, n) (((n) == 1) ? x1 : x2) 745251881Speter#define gettext(x) (x) 746251881Speter#define dgettext(domain, x) (x) 747251881Speter#endif 748299742Sdim 749299742Sdim/* compiler hints */ 750299742Sdim#if defined(__GNUC__) && (__GNUC__ >= 3) 751299742Sdim# define SVN__PREDICT_FALSE(x) (__builtin_expect(x, 0)) 752299742Sdim# define SVN__PREDICT_TRUE(x) (__builtin_expect(!!(x), 1)) 753299742Sdim#else 754299742Sdim# define SVN__PREDICT_FALSE(x) (x) 755299742Sdim# define SVN__PREDICT_TRUE(x) (x) 756299742Sdim#endif 757299742Sdim 758299742Sdim#if defined(SVN_DEBUG) 759299742Sdim# define SVN__FORCE_INLINE 760299742Sdim# define SVN__PREVENT_INLINE 761299742Sdim#elif defined(__GNUC__) 762299742Sdim# define SVN__FORCE_INLINE APR_INLINE __attribute__ ((always_inline)) 763299742Sdim# define SVN__PREVENT_INLINE __attribute__ ((noinline)) 764299742Sdim#else 765299742Sdim# define SVN__FORCE_INLINE APR_INLINE 766299742Sdim# define SVN__PREVENT_INLINE 767299742Sdim#endif 768299742Sdim 769299742Sdim/* Macro used to specify that a variable is intentionally left unused. 770299742Sdim Supresses compiler warnings about the variable being unused. */ 771299742Sdim#define SVN_UNUSED(v) ( (void)(v) ) 772251881Speter]) 773251881Speter 774251881Speterdnl Used to simulate makefile conditionals. 775251881SpeterGETTEXT_CODESET=\# 776251881SpeterNO_GETTEXT_CODESET=\# 777251881Speterif test $USE_NLS = "yes"; then 778251881Speter AC_CHECK_FUNCS(bind_textdomain_codeset, 779251881Speter [ GETTEXT_CODESET="" ], 780251881Speter [ NO_GETTEXT_CODESET="" ]) 781251881Speterfi 782251881SpeterAC_SUBST(GETTEXT_CODESET) 783251881SpeterAC_SUBST(NO_GETTEXT_CODESET) 784251881Speter 785251881Speter# Check if we are using GNU gettext. 786251881SpeterGNU_GETTEXT=no 787251881SpeterMSGFMTFLAGS='' 788251881Speterif test $USE_NLS = "yes"; then 789251881Speter AC_MSG_CHECKING(if we are using GNU gettext) 790251881Speter if $MSGFMT --version 2>&1 | $EGREP GNU > /dev/null; then 791251881Speter GNU_GETTEXT=yes 792251881Speter MSGFMTFLAGS='-c' 793251881Speter fi 794251881Speter AC_MSG_RESULT($GNU_GETTEXT) 795251881Speterfi 796251881SpeterAC_SUBST(MSGFMTFLAGS) 797251881Speter 798251881Speterdnl libmagic ------------------- 799251881Speter 800251881Speterlibmagic_found=no 801251881Speter 802251881SpeterAC_ARG_WITH(libmagic,AS_HELP_STRING([--with-libmagic=PREFIX], 803251881Speter [libmagic filetype detection library]), 804251881Speter[ 805251881Speter if test "$withval" = "yes" ; then 806251881Speter AC_CHECK_HEADER(magic.h, [ 807251881Speter AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"]) 808251881Speter ]) 809251881Speter libmagic_prefix="the default locations" 810251881Speter elif test "$withval" != "no"; then 811251881Speter libmagic_prefix=$withval 812251881Speter save_cppflags="$CPPFLAGS" 813251881Speter CPPFLAGS="$CPPFLAGS -I$libmagic_prefix/include" 814251881Speter AC_CHECK_HEADERS(magic.h,[ 815251881Speter save_ldflags="$LDFLAGS" 816269847Speter LDFLAGS="-L$libmagic_prefix/lib $LDFLAGS" 817251881Speter AC_CHECK_LIB(magic, magic_open, [libmagic_found="yes"]) 818251881Speter LDFLAGS="$save_ldflags" 819251881Speter ]) 820251881Speter CPPFLAGS="$save_cppflags" 821251881Speter fi 822251881Speter if test "$withval" != "no" && test "$libmagic_found" = "no"; then 823251881Speter AC_MSG_ERROR([[--with-libmagic requested, but libmagic not found at $libmagic_prefix]]) 824251881Speter fi 825251881Speter], 826251881Speter[ 827251881Speter AC_CHECK_HEADER(magic.h, [ 828251881Speter AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"]) 829251881Speter ]) 830251881Speter]) 831251881Speter 832251881Speterif test "$libmagic_found" != "no"; then 833251881Speter AC_DEFINE([SVN_HAVE_LIBMAGIC], [1], [Defined if libmagic support is enabled]) 834251881Speter SVN_MAGIC_LIBS="-lmagic" 835251881Speterfi 836251881Speter 837251881Speterif test "$libmagic_found" = "yes"; then 838251881Speter SVN_MAGIC_INCLUDES="-I$libmagic_prefix/include" 839251881Speter LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$libmagic_prefix/lib)`" 840251881Speterfi 841251881Speter 842251881SpeterAC_SUBST(SVN_MAGIC_INCLUDES) 843251881SpeterAC_SUBST(SVN_MAGIC_LIBS) 844251881Speter 845251881Speterdnl KWallet ------------------- 846251881SpeterSVN_LIB_KWALLET 847251881Speter 848251881Speterif test "$svn_lib_kwallet" = "yes"; then 849251881Speter AC_DEFINE([SVN_HAVE_KWALLET], 1, 850251881Speter [Defined if KWallet support is enabled]) 851251881Speterfi 852251881Speter 853251881Speterdnl plaintext passwords ------------------- 854251881SpeterAC_ARG_ENABLE(plaintext-password-storage, 855251881SpeterAS_HELP_STRING([--disable-plaintext-password-storage], 856251881Speter [Disable on-disk caching of plaintext passwords and passphrases. 857251881Speter (Leaving this functionality enabled will not force Subversion 858251881Speter to store passwords in plaintext, but does permit users to 859251881Speter explicitly allow that behavior via runtime configuration.)]), 860251881Speter[ 861251881Speter if test "$enableval" = "no"; then 862251881Speter AC_MSG_NOTICE([Disabling plaintext password/passphrase storage]) 863251881Speter AC_DEFINE(SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE, 1, 864251881Speter [Defined if plaintext password/passphrase storage is disabled]) 865251881Speter fi 866251881Speter]) 867251881Speter 868251881Speterdnl Build and install rules ------------------- 869251881Speter 870251881SpeterINSTALL_STATIC_RULES="install-bin install-docs" 871251881SpeterINSTALL_RULES="install-fsmod-lib install-ramod-lib install-lib install-include install-static" 872251881SpeterINSTALL_RULES="$INSTALL_RULES $INSTALL_APACHE_RULE" 873251881SpeterBUILD_RULES="fsmod-lib ramod-lib lib bin test sub-test $BUILD_APACHE_RULE tools" 874251881Speter 875251881Speterif test "$svn_lib_berkeley_db" = "yes"; then 876251881Speter BUILD_RULES="$BUILD_RULES bdb-lib bdb-test" 877251881Speter INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-fsmod-lib/install-fsmod-lib install-bdb-lib/'`" 878251881Speter INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-bdb-lib" 879251881Speter BDB_TEST_DEPS="\$(BDB_TEST_DEPS)" 880251881Speter BDB_TEST_PROGRAMS="\$(BDB_TEST_PROGRAMS)" 881251881Speterfi 882251881Speter 883251881Speterif test "$svn_lib_serf" = "yes"; then 884251881Speter BUILD_RULES="$BUILD_RULES serf-lib" 885251881Speter INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-ramod-lib/install-ramod-lib install-serf-lib/'`" 886251881Speter INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-serf-lib" 887251881Speterfi 888251881Speter 889251881Speterif test "$svn_lib_kwallet" = "yes"; then 890251881Speter BUILD_RULES="$BUILD_RULES kwallet-lib" 891251881Speter INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-kwallet-lib/'`" 892251881Speter INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-kwallet-lib" 893251881Speterfi 894251881Speter 895251881Speterif test "$found_gnome_keyring" = "yes"; then 896251881Speter BUILD_RULES="$BUILD_RULES gnome-keyring-lib" 897251881Speter INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-gnome-keyring-lib/'`" 898251881Speter INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-gnome-keyring-lib" 899251881Speterfi 900251881Speter 901251881Speterif test "$USE_NLS" = "yes"; then 902251881Speter BUILD_RULES="$BUILD_RULES locale" 903251881Speter INSTALL_RULES="$INSTALL_RULES install-locale" 904251881Speterfi 905251881Speter 906251881SpeterAC_SUBST(BUILD_RULES) 907251881SpeterAC_SUBST(INSTALL_STATIC_RULES) 908251881SpeterAC_SUBST(INSTALL_RULES) 909251881SpeterAC_SUBST(BDB_TEST_DEPS) 910251881SpeterAC_SUBST(BDB_TEST_PROGRAMS) 911251881Speter 912251881Speterdnl Check for header files ---------------- 913251881Speter 914251881Speterdnl Standard C headers 915251881SpeterAC_HEADER_STDC 916251881Speter 917251881Speterdnl Check for typedefs, structures, and compiler characteristics ---------- 918251881Speter 919251881Speterdnl if compiler doesn't understand `const', then define it empty 920251881SpeterAC_C_CONST 921251881Speter 922251881Speterdnl if non-existent, define size_t to be `unsigned' 923251881SpeterAC_TYPE_SIZE_T 924251881Speter 925251881Speter 926251881Speterdnl Check for library functions ---------- 927251881Speter 928251881SpeterAC_FUNC_MEMCMP 929251881Speter 930251881Speterdnl svn_error's default warning handler uses vfprintf() 931251881SpeterAC_FUNC_VPRINTF 932251881Speter 933251881Speterdnl check for functions needed in special file handling 934251881SpeterAC_CHECK_FUNCS(symlink readlink) 935251881Speter 936251881Speterdnl check for uname 937251881SpeterAC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], []) 938251881Speter 939251881Speterdnl check for termios 940251881SpeterAC_CHECK_HEADER(termios.h,[ 941251881Speter AC_CHECK_FUNCS(tcgetattr tcsetattr,[ 942251881Speter AC_DEFINE(HAVE_TERMIOS_H,1,[Defined if we have a usable termios library.]) 943251881Speter ]) 944251881Speter]) 945251881Speter 946251881Speterdnl Process some configuration options ---------- 947251881Speter 948251881SpeterAC_ARG_ENABLE(debug, 949251881SpeterAS_HELP_STRING([--enable-debug], 950251881Speter [Turn on debugging]), 951251881Speter[ 952251881Speter if test "$enableval" = "yes" ; then 953251881Speter enable_debugging="yes" 954251881Speter else 955251881Speter enable_debugging="no" 956251881Speter fi 957251881Speter], 958251881Speter[ 959251881Speter # Neither --enable-debug nor --disable-debug was passed. 960251881Speter enable_debugging="maybe" 961251881Speter]) 962251881Speter 963251881SpeterAC_ARG_ENABLE(optimize, 964251881SpeterAS_HELP_STRING([--enable-optimize], 965251881Speter [Turn on optimizations]), 966251881Speter[ 967251881Speter if test "$enableval" = "yes" ; then 968251881Speter enable_optimization="yes" 969251881Speter else 970251881Speter enable_optimization="no" 971251881Speter fi 972251881Speter], 973251881Speter[ 974251881Speter # Neither --enable-optimize nor --disable-optimize was passed. 975251881Speter enable_optimization="maybe" 976251881Speter]) 977251881Speter 978251881Speterdnl Use -Wl,--no-undefined during linking of some libraries 979251881SpeterAC_ARG_ENABLE(disallowing-of-undefined-references, 980251881Speter [AS_HELP_STRING([--enable-disallowing-of-undefined-references], 981251881Speter [Use -Wl,--no-undefined flag during linking of some libraries to disallow undefined references])]) 982251881Speterif test "$enable_disallowing_of_undefined_references" != "yes" && test "`uname`" != "Linux"; then 983251881Speter enable_disallowing_of_undefined_references="no" 984251881Speterfi 985251881Speterif test "$enable_disallowing_of_undefined_references" != "no"; then 986251881Speter AC_MSG_CHECKING([for -Wl,--no-undefined]) 987251881Speter old_LDFLAGS="$LDFLAGS" 988251881Speter LDFLAGS="$LDFLAGS -Wl,--no-undefined" 989251881Speter AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(){;}]])], [svn_wl_no_undefined="yes"], [svn_wl_no_undefined="no"]) 990251881Speter LDFLAGS="$old_LDFLAGS" 991251881Speter if test "$svn_wl_no_undefined" = "yes"; then 992251881Speter AC_MSG_RESULT([yes]) 993251881Speter for library_dir in "$abs_srcdir/subversion/libsvn_"*; do 994251881Speter eval "`basename $library_dir`_LDFLAGS=-Wl,--no-undefined" 995251881Speter done 996251881Speter else 997251881Speter AC_MSG_RESULT([no]) 998251881Speter if test "$enable_disallowing_of_undefined_references" = "yes"; then 999251881Speter AC_MSG_ERROR([--enable-disallowing-of-undefined-references explicitly requested, but -Wl,--no-undefined not supported]) 1000251881Speter fi 1001251881Speter fi 1002251881Speterfi 1003251881SpeterAC_SUBST([libsvn_auth_gnome_keyring_LDFLAGS]) 1004251881SpeterAC_SUBST([libsvn_auth_kwallet_LDFLAGS]) 1005251881SpeterAC_SUBST([libsvn_client_LDFLAGS]) 1006251881SpeterAC_SUBST([libsvn_delta_LDFLAGS]) 1007251881SpeterAC_SUBST([libsvn_diff_LDFLAGS]) 1008251881SpeterAC_SUBST([libsvn_fs_LDFLAGS]) 1009251881SpeterAC_SUBST([libsvn_fs_base_LDFLAGS]) 1010251881SpeterAC_SUBST([libsvn_fs_fs_LDFLAGS]) 1011251881SpeterAC_SUBST([libsvn_fs_util_LDFLAGS]) 1012251881SpeterAC_SUBST([libsvn_ra_LDFLAGS]) 1013251881SpeterAC_SUBST([libsvn_ra_local_LDFLAGS]) 1014251881SpeterAC_SUBST([libsvn_ra_serf_LDFLAGS]) 1015251881SpeterAC_SUBST([libsvn_ra_svn_LDFLAGS]) 1016251881SpeterAC_SUBST([libsvn_repos_LDFLAGS]) 1017251881SpeterAC_SUBST([libsvn_subr_LDFLAGS]) 1018251881SpeterAC_SUBST([libsvn_wc_LDFLAGS]) 1019251881Speter 1020251881Speter 1021251881SpeterAC_ARG_ENABLE(maintainer-mode, 1022251881SpeterAS_HELP_STRING([--enable-maintainer-mode], 1023251881Speter [Turn on debugging and very strict compile-time warnings]), 1024251881Speter[ 1025251881Speter if test "$enableval" = "yes" ; then 1026251881Speter if test "$enable_debugging" = "no" ; then 1027251881Speter AC_MSG_ERROR([Can't have --disable-debug and --enable-maintainer-mode]) 1028251881Speter fi 1029251881Speter enable_debugging=yes 1030251881Speter 1031251881Speter dnl Enable some extra warnings. Put these before the user's flags 1032251881Speter dnl so the user can specify flags that override these. 1033251881Speter if test "$GCC" = "yes"; then 1034251881Speter AC_MSG_NOTICE([maintainer-mode: adding GCC warning flags]) 1035251881Speter 1036251881Speter dnl some additional flags that can be handy for an occasional review, 1037251881Speter dnl but throw too many warnings in svn code, of too little importance, 1038251881Speter dnl to keep these enabled. Remove the "dnl" to do a run with these 1039251881Speter dnl switches enabled. 1040299742Sdim dnl ./configure CFLAGS="-Wswitch-enum -Wswitch-default" 1041251881Speter 1042251881Speter dnl Add each of the following flags only if the C compiler accepts it. 1043251881Speter CFLAGS_KEEP="$CFLAGS" 1044251881Speter CFLAGS="" 1045251881Speter 1046251881Speter SVN_CFLAGS_ADD_IFELSE([-Werror=implicit-function-declaration]) 1047251881Speter SVN_CFLAGS_ADD_IFELSE([-Werror=declaration-after-statement]) 1048251881Speter SVN_CFLAGS_ADD_IFELSE([-Wextra-tokens]) 1049251881Speter SVN_CFLAGS_ADD_IFELSE([-Wnewline-eof]) 1050251881Speter SVN_CFLAGS_ADD_IFELSE([-Wshorten-64-to-32]) 1051251881Speter SVN_CFLAGS_ADD_IFELSE([-Wold-style-definition]) 1052251881Speter SVN_CFLAGS_ADD_IFELSE([-Wno-system-headers]) 1053251881Speter SVN_CFLAGS_ADD_IFELSE([-Wno-format-nonliteral]) 1054299742Sdim SVN_CFLAGS_ADD_IFELSE([-Wmissing-variable-declarations]) 1055251881Speter 1056299742Sdim CMAINTAINERFLAGS="$CFLAGS" 1057251881Speter CFLAGS="$CFLAGS_KEEP" 1058251881Speter 1059251881Speter dnl Add flags that all versions of GCC (should) support 1060299742Sdim CMAINTAINERFLAGS="-Wall -Wpointer-arith -Wwrite-strings -Wshadow -Wformat=2 -Wunused -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wno-multichar -Wredundant-decls -Wnested-externs -Winline -Wno-long-long -Wbad-function-cast $CMAINTAINERFLAGS" 1061251881Speter fi 1062251881Speter if test "$GXX" = "yes"; then 1063251881Speter AC_MSG_NOTICE([maintainer-mode: adding G++ warning flags]) 1064251881Speter 1065251881Speter dnl Add each of the following flags only if the C++ compiler accepts it. 1066251881Speter CXXFLAGS_KEEP="$CXXFLAGS" 1067251881Speter CXXFLAGS="" 1068251881Speter 1069251881Speter SVN_CXXFLAGS_ADD_IFELSE([-Wextra-tokens]) 1070251881Speter SVN_CXXFLAGS_ADD_IFELSE([-Wnewline-eof]) 1071251881Speter SVN_CXXFLAGS_ADD_IFELSE([-Wshorten-64-to-32]) 1072251881Speter SVN_CXXFLAGS_ADD_IFELSE([-Wno-system-headers]) 1073251881Speter 1074299742Sdim CXXMAINTAINERFLAGS="$CXXFLAGS" 1075251881Speter CXXFLAGS="$CXXFLAGS_KEEP" 1076251881Speter 1077251881Speter dnl Add flags that all versions of G++ (should) support 1078251881Speter CXXMAINTAINERFLAGS="-Wall -Wpointer-arith -Wwrite-strings -Wshadow -Wunused -Wunreachable-code $CXXMAINTAINERFLAGS" 1079251881Speter fi 1080251881Speter fi 1081251881Speter]) 1082251881Speter 1083251881Speterif test "$enable_debugging" = "yes" ; then 1084251881Speter dnl At the moment, we don't want optimization, because we're 1085251881Speter dnl debugging. Unless optiization was explicitly enabled. 1086251881Speter if test "$enable_optimization" != "yes"; then 1087251881Speter AC_MSG_NOTICE([Disabling optimizations for debugging]) 1088251881Speter CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1089251881Speter CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1090251881Speter fi 1091251881Speter dnl Add debugging flags, unless they were set by the user 1092251881Speter if test -z ["`echo $CUSERFLAGS' ' | $EGREP -- '-g[0-9]? '`"]; then 1093251881Speter AC_MSG_NOTICE([Enabling debugging for C]) 1094251881Speter CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] 1095251881Speter SVN_CFLAGS_ADD_IFELSE([-fno-inline]) 1096251881Speter SVN_CFLAGS_ADD_IFELSE([-fno-omit-frame-pointer]) 1097251881Speter SVN_CFLAGS_ADD_IFELSE([-g3],[],[ 1098251881Speter SVN_CFLAGS_ADD_IFELSE([-g2],[],[ 1099251881Speter SVN_CFLAGS_ADD_IFELSE([-g])])]) 1100251881Speter fi 1101251881Speter if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-g[0-9]? '`"]; then 1102251881Speter AC_MSG_NOTICE([Enabling debugging for C++]) 1103251881Speter CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] 1104251881Speter SVN_CXXFLAGS_ADD_IFELSE([-fno-inline]) 1105251881Speter SVN_CXXFLAGS_ADD_IFELSE([-fno-omit-frame-pointer]) 1106251881Speter SVN_CXXFLAGS_ADD_IFELSE([-g3],[],[ 1107251881Speter SVN_CXXFLAGS_ADD_IFELSE([-g2],[],[ 1108251881Speter SVN_CXXFLAGS_ADD_IFELSE([-g])])]) 1109251881Speter fi 1110251881Speter dnl SVN_DEBUG enables specific features for developer builds 1111251881Speter dnl AP_DEBUG enables specific (Apache) features for developer builds 1112251881Speter CFLAGS="$CFLAGS -DSVN_DEBUG -DAP_DEBUG" 1113251881Speter CXXFLAGS="$CXXFLAGS -DSVN_DEBUG -DAP_DEBUG" 1114251881Speterelif test "$enable_debugging" = "no" ; then 1115251881Speter AC_MSG_NOTICE([Disabling debugging]) 1116251881Speter CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] 1117251881Speter CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] 1118251881Speter dnl Compile with NDEBUG to get rid of assertions 1119251881Speter CFLAGS="$CFLAGS -DNDEBUG" 1120251881Speter CXXFLAGS="$CXXFLAGS -DNDEBUG" 1121251881Speter# elif test "$enable_debugging" = "maybe" ; then 1122251881Speter# # do nothing 1123251881Speterfi 1124251881Speter 1125251881Speterif test "$enable_optimization" = "yes"; then 1126251881Speter dnl Add optimization flags, unless they were set by the user 1127251881Speter if test -z ["`echo $CUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then 1128251881Speter CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1129251881Speter if test "$enable_debugging" = "yes"; then 1130251881Speter AC_MSG_NOTICE([Enabling optimizations for C (with debugging enabled)]) 1131251881Speter SVN_CFLAGS_ADD_IFELSE([-O1],[],[ 1132251881Speter SVN_CFLAGS_ADD_IFELSE([-O])]) 1133251881Speter else 1134251881Speter AC_MSG_NOTICE([Enabling optimizations for C]) 1135251881Speter SVN_CFLAGS_ADD_IFELSE([-O3],[],[ 1136251881Speter SVN_CFLAGS_ADD_IFELSE([-O2],[],[ 1137251881Speter SVN_CFLAGS_ADD_IFELSE([-O1],[],[ 1138251881Speter SVN_CFLAGS_ADD_IFELSE([-O])])])]) 1139251881Speter SVN_CFLAGS_ADD_IFELSE([-Wno-clobbered]) 1140251881Speter SVN_CFLAGS_ADD_IFELSE([-flto]) 1141251881Speter fi 1142251881Speter fi 1143251881Speter if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then 1144251881Speter CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1145251881Speter if test "$enable_debugging" = "yes"; then 1146251881Speter AC_MSG_NOTICE([Enabling optimizations for C++ (with debugging enabled)]) 1147251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[ 1148251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O])]) 1149251881Speter else 1150251881Speter AC_MSG_NOTICE([Enabling optimizations for C++]) 1151251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O3],[],[ 1152251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O2],[],[ 1153251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[ 1154251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O])])])]) 1155251881Speter SVN_CXXFLAGS_ADD_IFELSE([-Wno-clobbered]) 1156251881Speter SVN_CXXFLAGS_ADD_IFELSE([-flto]) 1157251881Speter fi 1158251881Speter fi 1159251881Speterelif test "$enable_optimization" = "no"; then 1160251881Speter dnl Remove all optimization flags 1161251881Speter AC_MSG_NOTICE([Disabling optimizations]) 1162251881Speter CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1163251881Speter CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1164251881Speter# elif test "$enable_optimization" = "maybe" ; then 1165251881Speter# # do nothing 1166251881Speterfi 1167251881Speter 1168253734Speterdnl Dump the current compiler options 1169253734SpeterAC_MSG_NOTICE([C compiler flags: $CFLAGS]) 1170253734SpeterAC_MSG_NOTICE([ user-defined: $CUSERFLAGS]) 1171253734SpeterAC_MSG_NOTICE([ maintainer-mode: $CMAINTAINERFLAGS]) 1172253734SpeterAC_MSG_NOTICE([C++ compiler flags: $CXXFLAGS]) 1173253734SpeterAC_MSG_NOTICE([ user-defined: $CXXUSERFLAGS]) 1174253734SpeterAC_MSG_NOTICE([ maintainer-mode: $CXXMAINTAINERFLAGS]) 1175251881Speter 1176251881SpeterAC_ARG_ENABLE(full-version-match, 1177251881SpeterAS_HELP_STRING([--disable-full-version-match], 1178251881Speter [Disable the full version match rules when checking 1179251881Speter Subversion library compatibility.]), 1180251881Speter[ 1181251881Speter if test "$enableval" = "no" ; then 1182251881Speter AC_MSG_NOTICE([Disabling svn full version matching]) 1183251881Speter AC_DEFINE(SVN_DISABLE_FULL_VERSION_MATCH, 1, 1184251881Speter [Defined if the full version matching rules are disabled]) 1185251881Speter fi 1186251881Speter]) 1187251881Speter 1188251881SpeterAC_ARG_WITH(editor, 1189251881SpeterAS_HELP_STRING([--with-editor=PATH], 1190251881Speter [Specify a default editor for the subversion client.]), 1191251881Speter[ 1192251881Speter 1193251881Speter if test "$withval" = "yes" ; then 1194251881Speter AC_MSG_ERROR([--with-editor requires an argument.]) 1195251881Speter else 1196251881Speter SVN_CLIENT_EDITOR=$withval 1197251881Speter AC_DEFINE_UNQUOTED(SVN_CLIENT_EDITOR, "$SVN_CLIENT_EDITOR", 1198251881Speter [The path of a default editor for the client.]) 1199251881Speter 1200251881Speter fi 1201251881Speter 1202251881Speter]) 1203251881Speter 1204251881SpeterSVN_LIB_Z 1205251881Speter 1206251881SpeterMOD_ACTIVATION="" 1207251881SpeterAC_ARG_ENABLE(mod-activation, 1208251881SpeterAS_HELP_STRING([--enable-mod-activation], 1209251881Speter [Enable mod_dav_svn in httpd.conf]), 1210251881Speter[ 1211251881Speter if test "$enableval" = "yes" ; then 1212251881Speter MOD_ACTIVATION="-a" 1213251881Speter AC_MSG_NOTICE([Enabling apache module activation]) 1214251881Speter else 1215251881Speter AC_MSG_NOTICE([Disabling apache module activation]) 1216251881Speter fi 1217251881Speter]) 1218251881SpeterAC_SUBST(MOD_ACTIVATION) 1219251881Speter 1220251881Speter 1221251881Speter 1222251881SpeterAC_ARG_ENABLE(gcov, 1223251881SpeterAC_HELP_STRING([--enable-gcov], 1224251881Speter [Turn on gcov coverage testing (GCC only).]), 1225251881Speter[ 1226251881Speter if test "$enableval" = "yes" ; then 1227251881Speter dnl Probably other compilers support something similar; 1228251881Speter dnl feel free to extend this to include them. 1229251881Speter if test "$GCC" = "yes"; then 1230251881Speter if test "$svn_enable_shared" = "yes" ; then 1231251881Speter AC_MSG_ERROR([Can't have --enable-gcov without --disable-shared (we 1232251881Speter recommend also using --enable-all-static).]) 1233251881Speter fi 1234251881Speter if test ! "$enable_all_static" = "yes" ; then 1235251881Speter AC_MSG_WARN(We recommend --enable-all-static with --enable-gcov.) 1236251881Speter fi 1237251881Speter AC_MSG_NOTICE([Enabling gcov coverage testing.]) 1238251881Speter CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" 1239251881Speter CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage" 1240251881Speter else 1241251881Speter AC_MSG_ERROR([We only support --enable-gcov with GCC right now.]) 1242251881Speter fi 1243251881Speter fi 1244251881Speter]) 1245251881Speter 1246251881SpeterAC_ARG_ENABLE(gprof, 1247251881SpeterAS_HELP_STRING([--enable-gprof], 1248251881Speter [Produce gprof profiling data in 'gmon.out' (GCC only).]), 1249251881Speter[ 1250251881Speter if test "$enableval" = "yes" ; then 1251251881Speter dnl Probably other compilers support -pg or something similar; 1252251881Speter dnl feel free to extend this to include them. 1253251881Speter if test "$GCC" = "yes"; then 1254251881Speter if test "$svn_enable_shared" = "yes" ; then 1255251881Speter AC_MSG_ERROR([Can't have --enable-gprof without --disable-shared (we 1256251881Speter recommend also using --enable-all-static).]) 1257251881Speter fi 1258251881Speter if test ! "$enable_all_static" = "yes" ; then 1259251881Speter AC_MSG_WARN(We recommend --enable-all-static with --enable-gprof.) 1260251881Speter fi 1261251881Speter AC_MSG_NOTICE([Enabling gprof profiling data (to gmon.out).]) 1262251881Speter CFLAGS="$CFLAGS -pg" 1263251881Speter CXXFLAGS="$CXXFLAGS -pg" 1264251881Speter LT_LDFLAGS="$LT_LDFLAGS -pg" 1265251881Speter else 1266251881Speter AC_MSG_ERROR([We only support --enable-gprof with GCC right now.]) 1267251881Speter fi 1268251881Speter fi 1269251881Speter]) 1270251881Speter 1271251881Speter 1272251881Speter# Scripting and Bindings languages 1273251881Speter 1274251881Speter# Python: Used for testsuite, and bindings 1275251881Speter 1276251881Speter 1277251881SpeterPYTHON="`$abs_srcdir/build/find_python.sh`" 1278251881Speterif test -z "$PYTHON"; then 1279299742Sdim AC_MSG_WARN([Python 2.7 or later is required to run the testsuite]) 1280251881Speter AC_MSG_WARN([or to use the Subversion Python bindings]) 1281251881Speter AC_MSG_WARN([]) 1282251881Speter AC_MSG_WARN([If you have a suitable Python installed, but not on the]) 1283251881Speter AC_MSG_WARN([PATH, set the environment variable PYTHON to the full path]) 1284251881Speter AC_MSG_WARN([to the Python executable, and re-run configure]) 1285251881Speterfi 1286251881SpeterAC_PATH_PROGS(PYTHON, "$PYTHON", none) 1287251881Speter 1288251881Speter# The minimum version for the JVM runtime for our Java bytecode. 1289299742SdimJAVA_OLDEST_WORKING_VER='1.6' 1290251881Speter# SVN_CHECK_JDK sets $JAVA_CLASSPATH 1291251881SpeterSVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER) 1292251881Speter 1293251881SpeterAC_PATH_PROG(PERL, perl, none) 1294251881Speter 1295251881Speterif test -n "$RUBY"; then 1296251881Speter AC_PATH_PROG(RUBY, "$RUBY", none) 1297251881Speterelse 1298289166Speter AC_PATH_PROGS(RUBY, ruby ruby1.8 ruby18 ruby1.9 ruby1 ruby1.9.3 ruby193 ruby2.0 ruby2.1, none) 1299251881Speterfi 1300251881Speterif test "$RUBY" != "none"; then 1301251881Speter AC_MSG_CHECKING([rb_hash_foreach]) 1302251881Speter if "$RUBY" -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)' >/dev/null; then 1303251881Speter AC_MSG_RESULT([yes]) 1304251881Speter if test -n "$RDOC"; then 1305251881Speter AC_PATH_PROG(RDOC, "$RDOC", none) 1306251881Speter else 1307289166Speter AC_PATH_PROGS(RDOC, rdoc rdoc1.8 rdoc18 rdoc1.9 rdoc19 rdoc1.9.3 rdoc193 rdoc2.0 rdoc2.1, none) 1308251881Speter fi 1309251881Speter AC_CACHE_CHECK([for Ruby major version], [svn_cv_ruby_major],[ 1310251881Speter svn_cv_ruby_major="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MAJOR))'`" 1311251881Speter ]) 1312251881Speter RUBY_MAJOR="$svn_cv_ruby_major" 1313251881Speter 1314251881Speter AC_CACHE_CHECK([for Ruby minor version], [svn_cv_ruby_minor],[ 1315251881Speter svn_cv_ruby_minor="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MINOR))'`" 1316251881Speter ]) 1317251881Speter RUBY_MINOR="$svn_cv_ruby_minor" 1318251881Speter 1319251881Speter AC_CACHE_CHECK([for Ruby teeny version], [svn_cv_ruby_teeny],[ 1320251881Speter svn_cv_ruby_teeny="`$RUBY -rrbconfig -e 'major, minor, teeny = RUBY_VERSION.split("."); print teeny;'`" 1321251881Speter ]) 1322251881Speter RUBY_TEENY="$svn_cv_ruby_teeny" 1323251881Speter 1324251881Speter AC_SUBST(RUBY_MAJOR) 1325251881Speter AC_SUBST(RUBY_MINOR) 1326251881Speter AC_SUBST(RUBY_TEENY) 1327251881Speter if test \( "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -gt "8" -a "$RUBY_TEENY" -lt "3" \); then 1328251881Speter # Disallow Ruby between 1.8.7 and 1.9.3 1329251881Speter RUBY="none" 1330251881Speter AC_MSG_WARN([The detected Ruby is between 1.9 and 1.9.3]) 1331251881Speter AC_MSG_WARN([Only 1.8.x and 1.9.3 releases are supported at this time]) 1332251881Speter fi 1333251881Speter else 1334251881Speter AC_MSG_RESULT([no]) 1335251881Speter RUBY="none" 1336251881Speter AC_MSG_WARN([The detected Ruby is too old for Subversion to use]) 1337251881Speter AC_MSG_WARN([A Ruby which has rb_hash_foreach is required to use the]) 1338251881Speter AC_MSG_WARN([Subversion Ruby bindings]) 1339251881Speter AC_MSG_WARN([Upgrade to the official 1.8.2 release, or later]) 1340251881Speter fi 1341251881Speterfi 1342251881Speter 1343251881SpeterSVN_CHECK_SWIG 1344251881Speter 1345251881SpeterSVN_CHECK_CTYPESGEN 1346251881Speter 1347251881Speterdnl decide whether we want to link against the RA/FS libraries 1348251881SpeterAC_ARG_ENABLE(runtime-module-search, 1349251881SpeterAS_HELP_STRING([--enable-runtime-module-search], 1350251881Speter [Turn on dynamic loading of RA/FS libraries including 1351251881Speter third-party FS libraries]), 1352251881Speter[ 1353251881Speter if test "$enableval" = "yes"; then 1354251881Speter use_dso=yes 1355251881Speter if test "$svn_enable_shared" = "no"; then 1356251881Speter AC_MSG_ERROR([--enable-runtime-module-search conflicts with --disable-shared]) 1357251881Speter fi 1358251881Speter AC_DEFINE(SVN_USE_DSO, 1, 1359251881Speter [Defined if svn should try to load DSOs]) 1360251881Speter fi 1361251881Speter]) 1362251881Speter 1363251881Speterif test "$svn_enable_shared" = "no" || test "$use_dso" != "yes"; then 1364251881Speter AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL, 1, 1365251881Speter [Defined if libsvn_client should link against libsvn_ra_local]) 1366251881Speter svn_ra_lib_deps="\$(RA_LOCAL_DEPS)" 1367251881Speter svn_ra_lib_install_deps="install-ramod-lib" 1368251881Speter svn_ra_lib_link="\$(RA_LOCAL_LINK)" 1369251881Speter 1370251881Speter AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_SVN, 1, 1371251881Speter [Defined if libsvn_client should link against libsvn_ra_svn]) 1372251881Speter svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SVN_DEPS)" 1373251881Speter svn_ra_lib_link="$svn_ra_lib_link \$(RA_SVN_LINK)" 1374251881Speter 1375251881Speter if test "$svn_lib_serf" = "yes"; then 1376251881Speter AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_SERF, 1, 1377251881Speter [Defined if libsvn_client should link against libsvn_ra_serf]) 1378251881Speter svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SERF_DEPS)" 1379251881Speter svn_ra_lib_install_deps="$svn_ra_lib_install_deps install-serf-lib" 1380251881Speter svn_ra_lib_link="$svn_ra_lib_link \$(RA_SERF_LINK)" 1381251881Speter fi 1382251881Speter 1383251881Speter SVN_RA_LIB_DEPS=$svn_ra_lib_deps 1384251881Speter SVN_RA_LIB_INSTALL_DEPS=$svn_ra_lib_install_deps 1385251881Speter SVN_RA_LIB_LINK=$svn_ra_lib_link 1386251881Speter 1387251881Speter AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_FS, 1, 1388251881Speter [Defined if libsvn_fs should link against libsvn_fs_fs]) 1389251881Speter svn_fs_lib_deps="\$(FS_FS_DEPS)" 1390251881Speter svn_fs_lib_install_deps="install-fsmod-lib" 1391251881Speter svn_fs_lib_link="\$(FS_FS_LINK)" 1392251881Speter 1393299742Sdim AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_X, 1, 1394299742Sdim [Defined if libsvn_fs should link against libsvn_fs_x]) 1395299742Sdim svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_X_DEPS)" 1396299742Sdim svn_fs_lib_link="$svn_fs_lib_link \$(FS_X_LINK)" 1397299742Sdimdnl FSFS already installs fsmod 1398299742Sdimdnl svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-fsmod-lib" 1399299742Sdim 1400251881Speter if test "$svn_lib_berkeley_db" = "yes"; then 1401251881Speter AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_BASE, 1, 1402251881Speter [Defined if libsvn_fs should link against libsvn_fs_base]) 1403251881Speter svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_BASE_DEPS)" 1404251881Speter svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-bdb-lib" 1405251881Speter svn_fs_lib_link="$svn_fs_lib_link \$(FS_BASE_LINK)" 1406251881Speter fi 1407251881Speter 1408251881Speter SVN_FS_LIB_DEPS=$svn_fs_lib_deps 1409251881Speter SVN_FS_LIB_INSTALL_DEPS=$svn_fs_lib_install_deps 1410251881Speter SVN_FS_LIB_LINK=$svn_fs_lib_link 1411251881Speterfi 1412251881Speter 1413251881SpeterAC_SUBST(SVN_RA_LIB_DEPS) 1414251881SpeterAC_SUBST(SVN_RA_LIB_INSTALL_DEPS) 1415251881SpeterAC_SUBST(SVN_RA_LIB_LINK) 1416251881SpeterAC_SUBST(SVN_FS_LIB_DEPS) 1417251881SpeterAC_SUBST(SVN_FS_LIB_INSTALL_DEPS) 1418251881SpeterAC_SUBST(SVN_FS_LIB_LINK) 1419251881Speter 1420251881Speter# ==== JavaHL ================================================================ 1421251881Speter 1422251881Speterdnl Possibly compile JavaHL 1423251881Speterdo_javahl_build=no 1424251881SpeterAC_ARG_ENABLE(javahl, 1425251881Speter AS_HELP_STRING([--enable-javahl], 1426251881Speter [Enable compilation of Java high-level bindings (requires C++)]), 1427251881Speter [ if test "$enableval" = "yes" ; then 1428251881Speter do_javahl_build="yes" 1429251881Speter fi 1430251881Speter ]) 1431251881Speter 1432251881SpeterJAVAHL_OBJDIR="" 1433251881SpeterINSTALL_EXTRA_JAVAHL_LIB="" 1434251881SpeterFIX_JAVAHL_LIB="" 1435251881SpeterJAVAHL_TESTS_TARGET="" 1436251881SpeterJAVAHL_COMPAT_TESTS_TARGET="" 1437251881SpeterLT_CXX_LIBADD="" 1438251881Speterif test "$do_javahl_build" = "yes"; then 1439251881Speter dnl Check for suitable JDK 1440251881Speter if test "$JDK_SUITABLE" = "no"; then 1441251881Speter AC_MSG_ERROR([Cannot compile JavaHL without a suitable JDK. 1442251881Speter Please specify a suitable JDK using the --with-jdk option.]) 1443251881Speter fi 1444251881Speter 1445251881Speter dnl The temporary directory where libtool compiles libsvnjavahl. 1446251881Speter JAVAHL_OBJDIR='$(libsvnjavahl_PATH)/.libs' 1447251881Speter 1448251881Speter os_arch=`uname` 1449251881Speter if test "$os_arch" = "Darwin"; then 1450251881Speter dnl On Darwin, JNI libs must be installed as .jnilib 1451251881Speter INSTALL_EXTRA_JAVAHL_LIB='ln -sf $(libdir)/libsvnjavahl-1.dylib $(libdir)/libsvnjavahl-1.jnilib' 1452251881Speter FIX_JAVAHL_LIB="ln -sf libsvnjavahl-1.dylib $JAVAHL_OBJDIR/libsvnjavahl-1.jnilib" 1453251881Speter fi 1454251881Speter # This segment (and the rest of r10800) is very likely unnecessary 1455251881Speter # with libtool 1.5, which automatically adds libstdc++ as a 1456251881Speter # dependency to the C++ libraries it builds. So at some future time 1457251881Speter # when autogen.sh requires libtool 1.5 or higher, we can get rid of 1458251881Speter # it. 1459251881Speter AC_MSG_CHECKING([for additional flags to link C++ libraries]) 1460251881Speter if test "x$ac_compiler_gnu" = "xyes"; then 1461299742Sdim case "$host" in 1462299742Sdim *freebsd10*) 1463299742Sdim AC_MSG_RESULT([none needed]) 1464299742Sdim ;; 1465299742Sdim *) 1466299742Sdim LT_CXX_LIBADD="-lstdc++" 1467299742Sdim AC_MSG_RESULT([$LT_CXX_LIBADD]) 1468299742Sdim ;; 1469299742Sdim esac 1470251881Speter else 1471251881Speter AC_MSG_RESULT([none needed]) 1472251881Speter fi 1473251881Speterfi 1474251881SpeterAC_SUBST(INSTALL_EXTRA_JAVAHL_LIB) 1475251881SpeterAC_SUBST(JAVAHL_OBJDIR) 1476251881SpeterAC_SUBST(FIX_JAVAHL_LIB) 1477251881SpeterAC_SUBST(LT_CXX_LIBADD) 1478251881Speter 1479251881SpeterAC_ARG_WITH(junit, 1480251881SpeterAS_HELP_STRING([--with-junit=PATH], 1481251881Speter [Specify a path to the junit JAR file.]), 1482251881Speter[ 1483251881Speter if test "$withval" != "no"; then 1484251881Speter if test -n "$JAVA_CLASSPATH"; then 1485251881Speter JAVA_CLASSPATH="$withval:$JAVA_CLASSPATH" 1486251881Speter else 1487251881Speter JAVA_CLASSPATH="$withval" 1488251881Speter fi 1489251881Speter JAVAHL_TESTS_TARGET="javahl-tests" 1490251881Speter JAVAHL_COMPAT_TESTS_TARGET="javahl-compat-tests" 1491251881Speter fi 1492251881Speter]) 1493251881SpeterAC_SUBST(JAVA_CLASSPATH) 1494251881SpeterAC_SUBST(JAVAHL_TESTS_TARGET) 1495251881SpeterAC_SUBST(JAVAHL_COMPAT_TESTS_TARGET) 1496251881Speter 1497251881Speter# ==== Miscellaneous bits ==================================================== 1498251881Speter 1499299742SdimAC_CHECK_HEADERS([stdbool.h inttypes.h]) 1500299742Sdim 1501251881Speter# Strip '-no-cpp-precomp' from CPPFLAGS for the clang compiler 1502251881Speter### I think we get this flag from APR, so the fix probably belongs there 1503251881Speterif test "$CC" = "clang"; then 1504251881Speter SVN_STRIP_FLAG(CPPFLAGS, [-no-cpp-precomp ]) 1505251881Speterfi 1506251881Speter 1507262253Speter# Need to strip '-no-cpp-precomp' from CPPFLAGS for SWIG as well. 1508262253SpeterSWIG_CPPFLAGS="$CPPFLAGS" 1509262253SpeterSVN_STRIP_FLAG(SWIG_CPPFLAGS, [-no-cpp-precomp ]) 1510309512SpeterSVN_STRIP_FLAG(SWIG_CPPFLAGS, [-Wdate-time ]) 1511262253SpeterAC_SUBST([SWIG_CPPFLAGS]) 1512262253Speter 1513251881Speterdnl Since this is used only on Unix-y systems, define the path separator as '/' 1514251881SpeterAC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/', 1515251881Speter [Defined to be the path separator used on your local filesystem]) 1516251881Speter 1517251881SpeterAC_DEFINE_UNQUOTED(SVN_NULL_DEVICE_NAME, "/dev/null", 1518251881Speter [Defined to be the null device for the system]) 1519251881Speter 1520251881SpeterDEFAULT_FS_TYPE="fsfs" 1521251881SpeterAC_DEFINE_UNQUOTED(DEFAULT_FS_TYPE, "$DEFAULT_FS_TYPE", 1522251881Speter [The fs type to use by default]) 1523251881Speter 1524251881SpeterDEFAULT_HTTP_LIBRARY="serf" 1525251881SpeterAC_DEFINE_UNQUOTED(DEFAULT_HTTP_LIBRARY, "$DEFAULT_HTTP_LIBRARY", 1526251881Speter [The http library to use by default]) 1527251881Speter 1528251881Speter# BSD/OS (BSDi) needs to use a different include syntax in Makefile 1529251881SpeterINCLUDE_OUTPUTS="include \$(top_srcdir)/build-outputs.mk" 1530251881Spetercase "$host" in 1531251881Speter *bsdi*) 1532251881Speter # Check whether they've installed GNU make 1533251881Speter if ! make --version > /dev/null 2>&1; then 1534251881Speter # BSDi make 1535251881Speter INCLUDE_OUTPUTS=".include \"\$(top_srcdir)/build-outputs.mk\"" 1536251881Speter fi 1537251881Speter ;; 1538251881Speteresac 1539251881SpeterAC_SUBST(INCLUDE_OUTPUTS) 1540251881Speter 1541251881Speter# ==== Detection complete - output and run config.status ===================== 1542251881Speter 1543251881SpeterAC_CONFIG_HEADERS(subversion/svn_private_config.h.tmp:subversion/svn_private_config.h.in) 1544251881SpeterAC_CONFIG_COMMANDS([svn_private_config.h.tmp], 1545251881Speter [svn_cf=subversion/svn_private_config.h; 1546251881Speter $SED -e "s/@SVN_DB_HEADER@/$SVN_DB_HEADER/" $svn_cf.tmp > $svn_cf.tmp.new 1547251881Speter cmp -s $svn_cf.tmp.new $svn_cf || mv -f $svn_cf.tmp.new $svn_cf 1548251881Speter rm -f $svn_cf.tmp.new $svn_cf.tmp], 1549251881Speter [SED="$SED" 1550251881Speter SVN_DB_HEADER="$SVN_DB_HEADER"]) 1551251881SpeterAC_CONFIG_FILES([Makefile]) 1552251881Speter 1553299742Sdim# Create pkg-config .pc files from .pc.in files 1554299742Sdimfor pc_in_file in "${abs_srcdir}"/subversion/libsvn_*/*.pc.in; do 1555299742Sdim pc_file=${pc_in_file#${abs_srcdir}/} 1556299742Sdim pc_file=${pc_file%.in} 1557299742Sdim AC_CONFIG_FILES([${pc_file}]) 1558299742Sdimdone 1559299742Sdim 1560251881SpeterSVN_CONFIG_SCRIPT(tools/backup/hot-backup.py) 1561251881SpeterSVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl) 1562251881SpeterSVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL) 1563251881Speterif test -e packages/solaris/pkginfo.in; then 1564251881Speter SVN_CONFIG_SCRIPT(packages/solaris/pkginfo) 1565251881Speterfi 1566251881SpeterAC_SUBST(SVN_CONFIG_SCRIPT_FILES) 1567251881Speter 1568251881Speter# Ensure that SWIG is checked after reconfiguration. 1569251881Speterrm -f .swig_checked 1570251881Speter 1571251881Speterdnl Provide ${host} for use in compiled code (for svn --version) 1572251881SpeterAC_DEFINE_UNQUOTED([SVN_BUILD_HOST], "${host}", 1573251881Speter [Defined to the config.guess name of the build system]) 1574251881Speter 1575251881Speterdnl Provide ${target} for use in compiled code (for user-agent string) 1576251881SpeterAC_DEFINE_UNQUOTED([SVN_BUILD_TARGET], "${target}", 1577251881Speter [Defined to the config.guess name of the build target]) 1578251881Speter 1579251881SpeterAC_OUTPUT 1580251881Speter 1581251881Speter# ==== Print final messages to user ========================================== 1582251881Speter 1583251881Speterdnl Configure is long - users tend to miss warnings printed during it. 1584251881Speterdnl Hence, print a warnings about what we did and didn't configure at the 1585251881Speterdnl end, where people will actually see them. 1586251881Speter 1587253734Speterif test "$svn_have_berkeley_db" = "no6" && test "$enable_bdb6" != "no"; then 1588253734Speter AC_MSG_WARN([We have configured without BDB filesystem support 1589251881Speter 1590251881Speter 1591253734SpeterBerkeley DB 6 was found, but not used. Please re-run configure (see 1592253734Speter./config.nice) with the '--enable-bdb6' flag to use it, 1593253734Speteror explicitly specify '--disable-bdb6' or '--without-berkeley-db' 1594253734Speterto silence this warning. 1595251881Speter 1596253734SpeterPlease note that some versions of Berkeley DB 6+ are under the GNU Affero 1597253734SpeterGeneral Public License, version 3: 1598253734Speterhttps://oss.oracle.com/pipermail/bdb/2013-June/000056.html 1599251881Speter 1600253734SpeterThe AGPL-3.0 licence may impose special requirements for making available 1601253734Spetersource code of server-side software. The text of the licence is: 1602253734Speterhttps://www.gnu.org/licenses/agpl-3.0.html 1603253734Speterhttp://opensource.org/licenses/AGPL-3.0 1604253734Speter 1605253734SpeterThe Berkeley DB backend to Subversion is deprecated; see 1606253734Speterhttp://subversion.apache.org/docs/release-notes/1.8#bdb-deprecated 1607253734Speter 1608253734SpeterThe Subversion developers have not tested Subversion with Berkeley DB 6 for 1609253734Spetertechnical problems or bugs. 1610251881Speter]) 1611251881Speterfi 1612