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) 52251881SpeterCMAINTAINERFLAGS="$CUSERFLAGS" 53251881SpeterCUSERFLAGS="$CFLAGS" 54251881SpeterAC_PROG_CC 55251881SpeterSVN_CC_MODE_SETUP 56251881Speter 57251881Speter# Look for a C++ compiler (before anything can set CXXFLAGS) 58251881SpeterCXXMAINTAINERFLAGS="$CXXUSERFLAGS" 59251881SpeterCXXUSERFLAGS="$CXXFLAGS" 60251881SpeterAC_PROG_CXX 61251881SpeterSVN_CXX_MODE_SETUP 62251881Speter 63251881Speter# Look for a C pre-processor 64251881SpeterAC_PROG_CPP 65251881Speter 66251881Speter# Look for a good sed 67251881Speter# AC_PROG_SED was introduced in Autoconf 2.59b 68251881Speterm4_ifdef([AC_PROG_SED], [AC_PROG_SED], [SED="${SED:-sed}"]) 69251881Speter 70251881Speter# Grab target_cpu, so we can use it in the Solaris pkginfo file 71251881SpeterAC_CANONICAL_TARGET 72251881Speter 73251881Speter# Look for an extended grep 74251881SpeterAC_PROG_EGREP 75251881Speter 76251881SpeterAC_PROG_LN_S 77251881Speter 78251881SpeterAC_PROG_INSTALL 79251881Speter# If $INSTALL is relative path to our fallback install-sh, then convert 80251881Speter# to an absolute path, as in some cases (e.g. Solaris VPATH build), libtool 81251881Speter# may try to use it from a changed working directory. 82251881Speterif test "$INSTALL" = "build/install-sh -c"; then 83251881Speter INSTALL="$abs_srcdir/$INSTALL" 84251881Speterfi 85251881Speter 86251881Speterif test -z "$MKDIR"; then 87251881Speter MKDIR="$INSTALL -d" 88251881Speterfi 89251881SpeterAC_SUBST([MKDIR]) 90251881Speter 91251881Speter# ==== Libraries, for which we may have source to build ====================== 92251881Speter 93251881Speterdnl verify apr version and set apr flags 94251881Speterdnl These regular expressions should not contain "\(" and "\)". 95251881Speterdnl The specific reason we require APR 0.9.7 is: 96251881Speterdnl It contains fixes to its file writing routines 97251881Speterdnl now generating errors instead of silently ignoring 98251881Speterdnl them. Only .7 and later can guarantee repository 99251881Speterdnl integrity with FSFS. 100251881Speter 101251881SpeterAPR_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\. 2\."] 102251881Speter 103251881SpeterSVN_LIB_APR($APR_VER_REGEXES) 104251881Speter 105251881Speterif test `expr $apr_version : 2` -ne 0; then 106251881Speter dnl Bump the library so-version to 2 if using APR-2 107251881Speter dnl (Debian uses so-version 1 for APR-1-with-largefile) 108251881Speter svn_lib_ver=2 109251881Speter dnl APR-2 provides APRUTIL 110251881Speter apu_config=$apr_config 111251881Speter AC_SUBST(SVN_APRUTIL_INCLUDES) 112251881Speter AC_SUBST(SVN_APRUTIL_CONFIG, ["$apu_config"]) 113251881Speter AC_SUBST(SVN_APRUTIL_LIBS) 114251881Speterelse 115251881Speter svn_lib_ver=0 116251881Speter APU_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\."] 117251881Speter SVN_LIB_APRUTIL($APU_VER_REGEXES) 118251881Speterfi 119251881SpeterSVN_LT_SOVERSION="-version-info $svn_lib_ver" 120251881SpeterAC_SUBST(SVN_LT_SOVERSION) 121251881SpeterAC_DEFINE_UNQUOTED(SVN_SOVERSION, $svn_lib_ver, 122251881Speter [Subversion library major verson]) 123251881Speter 124251881Speterdnl Search for pkg-config 125251881SpeterAC_PATH_PROG(PKG_CONFIG, pkg-config) 126251881Speter 127251881Speterdnl Search for serf 128251881SpeterSVN_LIB_SERF(1,2,1) 129251881Speter 130251881Speterif test "$svn_lib_serf" = "yes"; then 131251881Speter AC_DEFINE([SVN_HAVE_SERF], 1, 132251881Speter [Defined if support for Serf is enabled]) 133251881Speterfi 134251881Speter 135251881Speterdnl Search for apr_memcache (only affects fs_fs) 136251881SpeterSVN_LIB_APR_MEMCACHE 137251881Speter 138251881Speterif test "$svn_lib_apr_memcache" = "yes"; then 139251881Speter AC_DEFINE(SVN_HAVE_MEMCACHE, 1, 140251881Speter [Defined if apr_memcache (standalone or in apr-util) is present]) 141251881Speterfi 142251881Speter 143251881Speter 144251881Speterdnl Find Apache with a recent-enough magic module number 145251881SpeterSVN_FIND_APACHE(20020903) 146251881Speter 147251881Speterdnl Search for SQLite. If you change SQLITE_URL from a .zip to 148251881Speterdnl something else also update build/ac-macros/sqlite.m4 to reflect 149251881Speterdnl the correct command to unpack the downloaded file. 150251881SpeterSQLITE_MINIMUM_VER="3.7.12" 151251881SpeterSQLITE_RECOMMENDED_VER="3.7.15.1" 152251881SpeterSQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-$(printf %d%02d%02d%02d $(echo ${SQLITE_RECOMMENDED_VER} | sed -e 's/\./ /g')).zip" 153251881Speter 154251881SpeterSVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER}, 155251881Speter ${SQLITE_URL}) 156251881Speter 157251881SpeterAC_ARG_ENABLE(sqlite-compatibility-version, 158251881Speter AS_HELP_STRING([--enable-sqlite-compatibility-version=X.Y.Z], 159251881Speter [Allow binary to run against SQLite as old as ARG]), 160251881Speter [sqlite_compat_ver=$enableval],[sqlite_compat_ver=no]) 161251881Speter 162251881Speterif test -n "$sqlite_compat_ver" && test "$sqlite_compat_ver" != no; then 163251881Speter SVN_SQLITE_VERNUM_PARSE([$sqlite_compat_ver], 164251881Speter [sqlite_compat_ver_num]) 165251881Speter CFLAGS="-DSVN_SQLITE_MIN_VERSION='\"$sqlite_compat_ver\"' $CFLAGS" 166251881Speter CFLAGS="-DSVN_SQLITE_MIN_VERSION_NUMBER=$sqlite_compat_ver_num $CFLAGS" 167251881Speterfi 168251881Speter 169251881SpeterSVN_CHECK_FOR_ATOMIC_BUILTINS 170251881Speter 171251881Speterif test "$svn_cv_atomic_builtins" = "yes"; then 172251881Speter AC_DEFINE(SVN_HAS_ATOMIC_BUILTINS, 1, [Define if compiler provides atomic builtins]) 173251881Speterfi 174251881Speter 175251881Speterdnl Set up a number of directories --------------------- 176251881Speter 177251881Speterdnl Create SVN_BINDIR for proper substitution 178251881Speterif test "${bindir}" = '${exec_prefix}/bin'; then 179251881Speter if test "${exec_prefix}" = "NONE"; then 180251881Speter if test "${prefix}" = "NONE"; then 181251881Speter SVN_BINDIR="${ac_default_prefix}/bin" 182251881Speter else 183251881Speter SVN_BINDIR="${prefix}/bin" 184251881Speter fi 185251881Speter else 186251881Speter SVN_BINDIR="${exec_prefix}/bin" 187251881Speter fi 188251881Speterelse 189251881Speter SVN_BINDIR="${bindir}" 190251881Speterfi 191251881Speter 192251881Speterdnl fully evaluate this value. when we substitute it into our tool scripts, 193251881Speterdnl they will not have things such as ${bindir} available 194251881SpeterSVN_BINDIR="`eval echo ${SVN_BINDIR}`" 195251881SpeterAC_SUBST(SVN_BINDIR) 196251881Speter 197251881Speterdnl provide ${bindir} in svn_private_config.h for use in compiled code 198251881SpeterAC_DEFINE_UNQUOTED(SVN_BINDIR, "${SVN_BINDIR}", 199251881Speter [Defined to be the path to the installed binaries]) 200251881Speter 201251881Speterdnl This purposely does *not* allow for multiple parallel installs. 202251881Speterdnl However, it is compatible with most gettext usages. 203251881Speterlocaledir='${datadir}/locale' 204251881SpeterAC_SUBST(localedir) 205251881Speter 206251881Speterdnl For SVN_LOCALE_DIR, we have to expand it to something. See SVN_BINDIR. 207251881Speterif test "${datadir}" = '${prefix}/share' && test "${prefix}" = "NONE"; then 208251881Speter exp_localedir='${ac_default_prefix}/share/locale' 209251881Speterelse 210251881Speter exp_localedir=$localedir 211251881Speterfi 212251881SpeterSVN_EXPAND_VAR(svn_localedir, "${exp_localedir}") 213251881SpeterAC_DEFINE_UNQUOTED(SVN_LOCALE_DIR, "${svn_localedir}", 214251881Speter [Defined to be the path to the installed locale dirs]) 215251881Speter 216251881Speterdnl Check for libtool -- we'll definitely need it for all our shared libs! 217251881SpeterAC_MSG_NOTICE([configuring libtool now]) 218251881Speterifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL]) 219251881SpeterAC_ARG_ENABLE(experimental-libtool, 220251881Speter AS_HELP_STRING([--enable-experimental-libtool],[Use APR's libtool]), 221251881Speter [experimental_libtool=$enableval],[experimental_libtool=no]) 222251881Speter 223251881Speterif test "$experimental_libtool" = "yes"; then 224251881Speter echo "using APR's libtool" 225251881Speter sh_libtool="`$apr_config --apr-libtool`" 226251881Speter LIBTOOL="$sh_libtool" 227251881Speter SVN_LIBTOOL="$sh_libtool" 228251881Speterelse 229251881Speter sh_libtool="$abs_builddir/libtool" 230251881Speter SVN_LIBTOOL="\$(SHELL) $sh_libtool" 231251881Speterfi 232251881SpeterAC_SUBST(SVN_LIBTOOL) 233251881Speter 234251881Speterdnl Determine the libtool version 235251881Speterchangequote(, )dnl 236251881Speterlt_pversion=`$LIBTOOL --version 2>/dev/null|$SED -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` 237251881Speterlt_version=`echo $lt_pversion|$SED -e 's/\([a-z]*\)$/.\1/'` 238251881Speterlt_major_version=`echo $lt_version | cut -d'.' -f 1` 239251881Speterchangequote([, ])dnl 240251881Speter 241251881Speterdnl set the default parameters 242251881Spetersvn_enable_static=yes 243251881Spetersvn_enable_shared=yes 244251881Speter 245251881Speterdnl check for --enable-static option 246251881SpeterAC_ARG_ENABLE(static, 247251881Speter AS_HELP_STRING([--enable-static], 248251881Speter [Build static libraries]), 249251881Speter [svn_enable_static="$enableval"], [svn_enable_static="yes"]) 250251881Speter 251251881Speterdnl check for --enable-shared option 252251881SpeterAC_ARG_ENABLE(shared, 253251881Speter AS_HELP_STRING([--enable-shared], 254251881Speter [Build shared libraries]), 255251881Speter [svn_enable_shared="$enableval"], [svn_enable_shared="yes"]) 256251881Speter 257251881Speterif test "$svn_enable_static" = "yes" && test "$svn_enable_shared" = "yes" ; then 258251881Speter AC_MSG_NOTICE([building both shared and static libraries]) 259251881Speterelif test "$svn_enable_static" = "yes" ; then 260251881Speter AC_MSG_NOTICE([building static libraries only]) 261251881Speter LT_CFLAGS="-static $LT_CFLAGS" 262251881Speter LT_LDFLAGS="-static $LT_LDFLAGS" 263251881Speterelif test "$svn_enable_shared" = "yes" ; then 264251881Speter AC_MSG_NOTICE([building shared libraries only]) 265251881Speter if test "$lt_major_version" = "1" ; then 266251881Speter LT_CFLAGS="-prefer-pic $LT_CFLAGS" 267251881Speter elif test "$lt_major_version" = "2" ; then 268251881Speter LT_CFLAGS="-shared $LT_CFLAGS" 269251881Speter fi 270251881Speter LT_LDFLAGS="-shared $LT_LDFLAGS" 271251881Speterelse 272251881Speter AC_MSG_ERROR([cannot disable both shared and static libraries]) 273251881Speterfi 274251881Speter 275251881Speterdnl Check for --enable-all-static option 276251881SpeterAC_ARG_ENABLE(all-static, 277251881Speter AS_HELP_STRING([--enable-all-static], 278251881Speter [Build completely static (standalone) binaries.]), 279251881Speter [ 280251881Speter if test "$enableval" = "yes" ; then 281251881Speter LT_LDFLAGS="-all-static $LT_LDFLAGS" 282251881Speter elif test "$enableval" != "no" ; then 283251881Speter AC_MSG_ERROR([--enable-all-static doesn't accept argument]) 284251881Speter fi 285251881Speter]) 286251881Speter 287251881SpeterAC_SUBST(LT_CFLAGS) 288251881SpeterAC_SUBST(LT_LDFLAGS) 289251881Speter 290251881SpeterAC_ARG_ENABLE(local-library-preloading, 291251881Speter AS_HELP_STRING([--enable-local-library-preloading], 292251881Speter [Enable preloading of locally built libraries in locally 293251881Speter built executables. This may be necessary for testing 294251881Speter prior to installation on some platforms. It does not 295251881Speter work on some platforms (Darwin, OpenBSD, ...).]), 296251881Speter [ 297251881Speter if test "$enableval" != "no"; then 298251881Speter if test "$svn_enable_shared" = "yes"; then 299251881Speter TRANSFORM_LIBTOOL_SCRIPTS="transform-libtool-scripts" 300251881Speter else 301251881Speter AC_MSG_ERROR([--enable-local-library-preloading conflicts with --disable-shared]) 302251881Speter fi 303251881Speter else 304251881Speter TRANSFORM_LIBTOOL_SCRIPTS="" 305251881Speter fi 306251881Speter ], [ 307251881Speter TRANSFORM_LIBTOOL_SCRIPTS="" 308251881Speter]) 309251881SpeterAC_SUBST(TRANSFORM_LIBTOOL_SCRIPTS) 310251881Speter 311251881Speterdnl Check if -no-undefined is needed for the platform. 312251881Speterdnl It should always work but with libtool 1.4.3 on OS X it breaks the build. 313251881Speterdnl So we only turn it on for platforms where we know we really need it. 314251881SpeterAC_MSG_CHECKING([whether libtool needs -no-undefined]) 315251881Spetercase $host in 316251881Speter *-*-cygwin*) 317251881Speter AC_MSG_RESULT([yes]) 318251881Speter LT_NO_UNDEFINED="-no-undefined" 319251881Speter ;; 320251881Speter *) 321251881Speter AC_MSG_RESULT([no]) 322251881Speter LT_NO_UNDEFINED="" 323251881Speter ;; 324251881Speteresac 325251881SpeterAC_SUBST(LT_NO_UNDEFINED) 326251881Speter 327251881SpeterAC_MSG_CHECKING([whether to avoid circular linkage at all costs]) 328251881Spetercase $host in 329251881Speter *-*-cygwin*) 330251881Speter AC_MSG_RESULT([yes]) 331251881Speter AC_DEFINE([SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK], 1, 332251881Speter [Define if circular linkage is not possible on this platform.]) 333251881Speter ;; 334251881Speter *) 335251881Speter AC_MSG_RESULT([no]) 336251881Speter ;; 337251881Speteresac 338251881Speter 339251881Speterdnl Check for trang. 340251881Spetertrang=yes 341251881SpeterAC_ARG_WITH(trang, 342251881SpeterAS_HELP_STRING([--with-trang=PATH], 343251881Speter [Specify the command to run the trang schema converter]), 344251881Speter[ 345251881Speter trang="$withval" 346251881Speter]) 347251881Speterif test "$trang" = "yes"; then 348251881Speter AC_PATH_PROG(TRANG, trang, none) 349251881Speterelse 350251881Speter TRANG="$trang" 351251881Speter AC_SUBST(TRANG) 352251881Speterfi 353251881Speter 354251881Speterdnl Check for doxygen 355251881Speterdoxygen=yes 356251881SpeterAC_ARG_WITH(doxygen, 357251881SpeterAC_HELP_STRING([--with-doxygen=PATH], 358251881Speter [Specify the command to run doxygen]), 359251881Speter[ 360251881Speter doxygen="$withval" 361251881Speter]) 362251881Speterif test "$doxygen" = "yes"; then 363251881Speter AC_PATH_PROG(DOXYGEN, doxygen, none) 364251881Speterelse 365251881Speter DOXYGEN="$doxygen" 366251881Speter AC_SUBST(DOXYGEN) 367251881Speterfi 368251881Speter 369251881Speter 370251881Speterdnl Check for libraries -------------------- 371251881Speter 372251881Speterdnl Expat ------------------- 373251881Speter 374251881SpeterAC_ARG_WITH(expat, 375251881Speter AS_HELP_STRING([--with-expat=INCLUDES:LIB_SEARCH_DIRS:LIBS], 376251881Speter [Specify location of Expat]), 377251881Speter [svn_lib_expat="$withval"], 378251881Speter [svn_lib_expat="::expat"]) 379251881Speter 380251881Speter# APR-util accepts "builtin" as an argument to this option so if the user 381251881Speter# passed "builtin" pretend the user didn't specify the --with-expat option 382251881Speter# at all. Expat will (hopefully) be found in apr-util. 383251881Spetertest "_$svn_lib_expat" = "_builtin" && svn_lib_expat="::expat" 384251881Speter 385251881SpeterAC_MSG_CHECKING([for Expat]) 386251881Speterif test -n "`echo "$svn_lib_expat" | $EGREP ":.*:"`"; then 387251881Speter SVN_XML_INCLUDES="" 388251881Speter for i in [`echo "$svn_lib_expat" | $SED -e "s/\([^:]*\):.*/\1/"`]; do 389251881Speter SVN_XML_INCLUDES="$SVN_XML_INCLUDES -I$i" 390251881Speter done 391251881Speter SVN_XML_INCLUDES="${SVN_XML_INCLUDES## }" 392251881Speter for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\):.*/\1/"`]; do 393251881Speter LDFLAGS="$LDFLAGS -L$l" 394251881Speter done 395251881Speter for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\)/\1/"`]; do 396251881Speter SVN_XML_LIBS="$SVN_XML_LIBS -l$l" 397251881Speter done 398251881Speter SVN_XML_LIBS="${SVN_XML_LIBS## }" 399251881Speter old_CPPFLAGS="$CPPFLAGS" 400251881Speter old_LIBS="$LIBS" 401251881Speter CPPFLAGS="$CPPFLAGS $SVN_XML_INCLUDES" 402251881Speter LIBS="$LIBS $SVN_XML_LIBS" 403251881Speter AC_LINK_IFELSE([AC_LANG_SOURCE([[ 404251881Speter#include <expat.h> 405251881Speterint main() 406251881Speter{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no") 407251881Speter LIBS="$old_LIBS" 408251881Speter if test "$svn_lib_expat" = "yes"; then 409251881Speter AC_MSG_RESULT([yes]) 410251881Speter else 411251881Speter SVN_XML_INCLUDES="" 412251881Speter SVN_XML_LIBS="" 413251881Speter CPPFLAGS="$CPPFLAGS $SVN_APRUTIL_INCLUDES" 414251881Speter if test "$enable_all_static" != "yes"; then 415251881Speter SVN_APRUTIL_LIBS="$SVN_APRUTIL_LIBS `$apu_config --libs`" 416251881Speter fi 417251881Speter AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ 418251881Speter#include <expat.h> 419251881Speterint main() 420251881Speter{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no") 421251881Speter if test "$svn_lib_expat" = "yes"; then 422251881Speter AC_MSG_RESULT([yes]) 423251881Speter 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.]) 424251881Speter else 425251881Speter AC_MSG_RESULT([no]) 426251881Speter AC_MSG_ERROR([Expat not found]) 427251881Speter fi 428251881Speter fi 429251881Speter CPPFLAGS="$old_CPPFLAGS" 430251881Speterelse 431251881Speter AC_MSG_RESULT([no]) 432251881Speter if test "$svn_lib_expat" = "yes"; then 433251881Speter AC_MSG_ERROR([--with-expat option requires argument]) 434251881Speter elif test "$svn_lib_expat" = "no"; then 435251881Speter AC_MSG_ERROR([Expat is required]) 436251881Speter else 437251881Speter AC_MSG_ERROR([Invalid syntax of argument of --with-expat option]) 438251881Speter fi 439251881Speterfi 440251881SpeterAC_SUBST(SVN_XML_INCLUDES) 441251881SpeterAC_SUBST(SVN_XML_LIBS) 442251881Speter 443251881Speterdnl Berkeley DB ------------------- 444251881Speter 445251881Speter# Berkeley DB on SCO OpenServer needs -lsocket 446251881SpeterAC_CHECK_LIB(socket, socket) 447251881Speter 448251881Speter# Build the BDB filesystem library only if we have an appropriate 449251881Speter# version of Berkeley DB. 450251881Spetercase "$host" in 451251881Speterpowerpc-apple-darwin*) 452251881Speter # Berkeley DB 4.0 does not work on OS X. 453251881Speter SVN_FS_WANT_DB_MAJOR=4 454251881Speter SVN_FS_WANT_DB_MINOR=1 455251881Speter SVN_FS_WANT_DB_PATCH=25 456251881Speter ;; 457251881Speter*) 458251881Speter SVN_FS_WANT_DB_MAJOR=4 459251881Speter SVN_FS_WANT_DB_MINOR=0 460251881Speter SVN_FS_WANT_DB_PATCH=14 461251881Speter ;; 462251881Speteresac 463253734Speterdb_alt_version="5.x" 464251881Speter# Look for libdb4.so first: 465251881SpeterSVN_LIB_BERKELEY_DB($SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MINOR, 466251881Speter $SVN_FS_WANT_DB_PATCH, [db4 db]) 467251881Speter 468251881SpeterAC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MAJOR, 469251881Speter [The desired major version for the Berkeley DB]) 470251881SpeterAC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MINOR, $SVN_FS_WANT_DB_MINOR, 471251881Speter [The desired minor version for the Berkeley DB]) 472251881SpeterAC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_PATCH, $SVN_FS_WANT_DB_PATCH, 473251881Speter [The desired patch version for the Berkeley DB]) 474251881Speter 475251881SpeterAC_SUBST(SVN_DB_INCLUDES) 476251881SpeterAC_SUBST(SVN_DB_LIBS) 477251881Speter 478251881SpeterSVN_LIB_SASL 479251881Speter 480251881Speterif test "$svn_lib_sasl" = "yes"; then 481251881Speter AC_DEFINE(SVN_HAVE_SASL, 1, 482251881Speter [Defined if Cyrus SASL v2 is present on the system]) 483251881Speterfi 484251881Speter 485251881Speterdnl Mac OS specific features ------------------- 486251881Speter 487251881SpeterSVN_LIB_MACHO_ITERATE 488251881SpeterSVN_LIB_MACOS_PLIST 489251881SpeterSVN_LIB_MACOS_KEYCHAIN 490251881Speter 491251881Speterdnl APR_HAS_DSO ------------------- 492251881Speter 493251881SpeterAC_MSG_CHECKING([whether APR has support for DSOs]) 494251881Speterold_CPPFLAGS="$CPPFLAGS" 495251881SpeterCPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES" 496251881SpeterAC_PREPROC_IFELSE([AC_LANG_SOURCE([[ 497251881Speter#include <apr.h> 498251881Speter#if !APR_HAS_DSO 499251881Speter#error 500251881Speter#endif]])], 501251881Speter APR_HAS_DSO="yes" 502251881Speter AC_MSG_RESULT([yes]), 503251881Speter APR_HAS_DSO="no" 504251881Speter AC_MSG_RESULT([no])) 505251881SpeterCPPFLAGS="$old_CPPFLAGS" 506251881Speter 507251881Speter 508251881Speterdnl D-Bus (required for support for KWallet) ------------------- 509251881Speter 510251881Speterif test -n "$PKG_CONFIG"; then 511251881Speter AC_MSG_CHECKING([for D-Bus .pc file]) 512251881Speter if $PKG_CONFIG --exists dbus-1; then 513251881Speter AC_MSG_RESULT([yes]) 514251881Speter old_CPPFLAGS="$CPPFLAGS" 515251881Speter old_LIBS="$LIBS" 516251881Speter DBUS_CPPFLAGS="`$PKG_CONFIG --cflags dbus-1`" 517251881Speter AC_MSG_CHECKING([D-Bus version]) 518251881Speter DBUS_VERSION="`$PKG_CONFIG --modversion dbus-1`" 519251881Speter AC_MSG_RESULT([$DBUS_VERSION]) 520251881Speter # D-Bus 0.* requires DBUS_API_SUBJECT_TO_CHANGE 521251881Speter if test -n ["`echo "$DBUS_VERSION" | $EGREP '^0\.[[:digit:]]+'`"]; then 522251881Speter DBUS_CPPFLAGS="$DBUS_CPPFLAGS -DDBUS_API_SUBJECT_TO_CHANGE" 523251881Speter fi 524251881Speter DBUS_LIBS="`$PKG_CONFIG --libs dbus-1`" 525251881Speter CPPFLAGS="$CPPFLAGS $DBUS_CPPFLAGS" 526251881Speter LIBS="$LIBS $DBUS_LIBS" 527251881Speter AC_MSG_CHECKING([for D-Bus]) 528251881Speter AC_LINK_IFELSE([AC_LANG_SOURCE([[ 529251881Speter#include <dbus/dbus.h> 530251881Speterint main() 531251881Speter{dbus_bus_get(DBUS_BUS_SESSION, NULL);}]])], HAVE_DBUS="yes", HAVE_DBUS="no") 532251881Speter if test "$HAVE_DBUS" = "yes"; then 533251881Speter AC_MSG_RESULT([yes]) 534251881Speter else 535251881Speter AC_MSG_RESULT([no]) 536251881Speter fi 537251881Speter CPPFLAGS="$old_CPPFLAGS" 538251881Speter LIBS="$old_LIBS" 539251881Speter else 540251881Speter AC_MSG_RESULT([no]) 541251881Speter fi 542251881Speterfi 543251881Speter 544251881Speterdnl GPG Agent ------------------- 545251881Speter 546251881SpeterAC_ARG_WITH(gpg_agent, 547251881SpeterAS_HELP_STRING([--without-gpg-agent], 548251881Speter [Disable support for GPG-Agent]), 549251881Speter [], [with_gpg_agent=yes]) 550251881SpeterAC_MSG_CHECKING([whether to support GPG-Agent]) 551251881Speterif test "$with_gpg_agent" = "yes"; then 552251881Speter AC_MSG_RESULT([yes]) 553251881Speter AC_DEFINE([SVN_HAVE_GPG_AGENT], [1], 554251881Speter [Is GPG Agent support enabled?]) 555251881Speterelse 556251881Speter AC_MSG_RESULT([no]) 557251881Speterfi 558251881Speter 559251881SpeterAC_SUBST(SVN_HAVE_GPG_AGENT) 560251881Speter 561251881Speterdnl GNOME Keyring ------------------- 562251881Speter 563251881SpeterAC_ARG_WITH(gnome_keyring, 564251881Speter AS_HELP_STRING([--with-gnome-keyring], 565251881Speter [Enable use of GNOME Keyring for auth credentials (enabled by default if found)]), 566251881Speter [with_gnome_keyring="$withval"], 567251881Speter [with_gnome_keyring=auto]) 568251881Speter 569251881Speterfound_gnome_keyring=no 570251881SpeterAC_MSG_CHECKING([whether to look for GNOME Keyring]) 571251881Speterif test "$with_gnome_keyring" != "no"; then 572251881Speter AC_MSG_RESULT([yes]) 573251881Speter if test "$svn_enable_shared" = "yes"; then 574251881Speter if test "$APR_HAS_DSO" = "yes"; then 575251881Speter if test -n "$PKG_CONFIG"; then 576251881Speter AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files]) 577251881Speter if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then 578251881Speter AC_MSG_RESULT([yes]) 579251881Speter old_CPPFLAGS="$CPPFLAGS" 580251881Speter SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`" 581251881Speter CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES" 582251881Speter AC_CHECK_HEADER(gnome-keyring.h, found_gnome_keyring=yes, found_gnome_keyring=no) 583251881Speter AC_MSG_CHECKING([for GNOME Keyring]) 584251881Speter if test "$found_gnome_keyring" = "yes"; then 585251881Speter AC_MSG_RESULT([yes]) 586251881Speter AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1], 587251881Speter [Is GNOME Keyring support enabled?]) 588251881Speter CPPFLAGS="$old_CPPFLAGS" 589251881Speter SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`" 590251881Speter else 591251881Speter AC_MSG_RESULT([no]) 592251881Speter if test "$with_gnome_keyring" = "yes"; then 593251881Speter AC_MSG_ERROR([cannot find GNOME Keyring]) 594251881Speter fi 595251881Speter fi 596251881Speter else 597251881Speter AC_MSG_RESULT([no]) 598251881Speter if test "$with_gnome_keyring" = "yes"; then 599251881Speter AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files.]) 600251881Speter else 601251881Speter with_gnome_keyring=no 602251881Speter fi 603251881Speter fi 604251881Speter else 605251881Speter if test "$with_gnome_keyring" = "yes"; then 606251881Speter AC_MSG_ERROR([cannot find pkg-config. GNOME Keyring requires this.]) 607251881Speter else 608251881Speter with_gnome_keyring=no 609251881Speter fi 610251881Speter fi 611251881Speter else 612251881Speter if test "$with_gnome_keyring" = "yes"; then 613251881Speter AC_MSG_ERROR([APR does not have support for DSOs. GNOME Keyring requires this.]) 614251881Speter else 615251881Speter with_gnome_keyring=no 616251881Speter fi 617251881Speter fi 618251881Speter else 619251881Speter if test "$with_gnome_keyring" = "yes"; then 620251881Speter AC_MSG_ERROR([--with-gnome-keyring conflicts with --disable-shared]) 621251881Speter else 622251881Speter with_gnome_keyring=no 623251881Speter fi 624251881Speter fi 625251881Speterelse 626251881Speter AC_MSG_RESULT([no]) 627251881Speterfi 628251881SpeterAC_SUBST(SVN_GNOME_KEYRING_INCLUDES) 629251881SpeterAC_SUBST(SVN_GNOME_KEYRING_LIBS) 630251881Speter 631251881Speter 632251881Speterdnl Ev2 experimental features ---------------------- 633251881Speterdnl Note: The Ev2 implementations will be built unconditionally, but by 634251881Speterdnl providing this flag, users can choose to use the currently-shimmed Ev2 635251881Speterdnl editor implementations for various operations. This will probably 636251881Speterdnl negatively impact performance, but is useful for testing. 637251881SpeterAC_ARG_ENABLE(ev2-impl, 638251881Speter AS_HELP_STRING([--enable-ev2-impl], 639251881Speter [Use Ev2 implementations, where available [EXPERIMENTAL]]), 640251881Speter [enable_ev2_impl=$enableval],[enable_ev2_impl=no]) 641251881Speterif test "$enable_ev2_impl" = "yes"; then 642251881Speter AC_DEFINE(ENABLE_EV2_IMPL, 1, 643251881Speter [Define to 1 if Ev2 implementations should be used.]) 644251881Speterfi 645251881Speter 646251881Speter 647251881Speterdnl I18n ------------------- 648251881Speter 649251881SpeterAC_ARG_ENABLE(nls, 650251881Speter AS_HELP_STRING([--disable-nls],[Disable gettext functionality]), 651251881Speter [enable_nls=$enableval],[enable_nls=yes]) 652251881Speter 653251881SpeterUSE_NLS="no" 654251881Speterif test "$enable_nls" = "yes"; then 655251881Speter dnl First, check to see if there is a working msgfmt. 656251881Speter AC_PATH_PROG(MSGFMT, msgfmt, none) 657251881Speter AC_PATH_PROG(MSGMERGE, msgmerge, none) 658251881Speter AC_PATH_PROG(XGETTEXT, xgettext, none) 659251881Speter if test "$MSGFMT" != "none"; then 660251881Speter AC_SEARCH_LIBS(bindtextdomain, [intl], [], 661251881Speter [ 662251881Speter enable_nls="no" 663251881Speter ]) 664251881Speter if test "$enable_nls" = "no"; then 665251881Speter # Destroy the cached result so we can test again 666251881Speter unset ac_cv_search_bindtextdomain 667251881Speter # On some systems, libintl needs libiconv to link properly, 668251881Speter # so try again with -liconv. 669251881Speter AC_SEARCH_LIBS(bindtextdomain, [intl], 670251881Speter [ 671251881Speter enable_nls="yes" 672251881Speter # This is here so that -liconv ends up in LIBS 673251881Speter # if it worked with -liconv. 674251881Speter AC_CHECK_LIB(iconv, libiconv_open) 675251881Speter ], 676251881Speter [ 677251881Speter AC_MSG_WARN([bindtextdomain() not found. Disabling NLS.]) 678251881Speter enable_nls="no" 679251881Speter ], -liconv) 680251881Speter fi 681251881Speter if test "$enable_nls" = "yes"; then 682251881Speter AC_DEFINE(ENABLE_NLS, 1, 683251881Speter [Define to 1 if translation of program messages to the user's 684251881Speter native language is requested.]) 685251881Speter USE_NLS="yes" 686251881Speter fi 687251881Speter fi 688251881Speterfi 689251881Speter 690251881SpeterAH_BOTTOM([ 691251881Speter/* Indicate to translators that string X should be translated. Do not look 692251881Speter up the translation at run time; just expand to X. This macro is suitable 693251881Speter for use where a constant string is required at compile time. */ 694251881Speter#define N_(x) x 695251881Speter/* Indicate to translators that we have decided the string X should not be 696251881Speter translated. Expand to X. */ 697251881Speter#define U_(x) x 698251881Speter#ifdef ENABLE_NLS 699251881Speter#include <locale.h> 700251881Speter#include <libintl.h> 701251881Speter/* Indicate to translators that string X should be translated. At run time, 702251881Speter look up and return the translation of X. */ 703251881Speter#define _(x) dgettext(PACKAGE_NAME, x) 704251881Speter/* Indicate to translators that strings X1 and X2 are singular and plural 705251881Speter forms of the same message, and should be translated. At run time, return 706251881Speter an appropriate translation depending on the number N. */ 707251881Speter#define Q_(x1, x2, n) dngettext(PACKAGE_NAME, x1, x2, n) 708251881Speter#else 709251881Speter#define _(x) (x) 710251881Speter#define Q_(x1, x2, n) (((n) == 1) ? x1 : x2) 711251881Speter#define gettext(x) (x) 712251881Speter#define dgettext(domain, x) (x) 713251881Speter#endif 714251881Speter]) 715251881Speter 716251881Speterdnl Used to simulate makefile conditionals. 717251881SpeterGETTEXT_CODESET=\# 718251881SpeterNO_GETTEXT_CODESET=\# 719251881Speterif test $USE_NLS = "yes"; then 720251881Speter AC_CHECK_FUNCS(bind_textdomain_codeset, 721251881Speter [ GETTEXT_CODESET="" ], 722251881Speter [ NO_GETTEXT_CODESET="" ]) 723251881Speterfi 724251881SpeterAC_SUBST(GETTEXT_CODESET) 725251881SpeterAC_SUBST(NO_GETTEXT_CODESET) 726251881Speter 727251881Speter# Check if we are using GNU gettext. 728251881SpeterGNU_GETTEXT=no 729251881SpeterMSGFMTFLAGS='' 730251881Speterif test $USE_NLS = "yes"; then 731251881Speter AC_MSG_CHECKING(if we are using GNU gettext) 732251881Speter if $MSGFMT --version 2>&1 | $EGREP GNU > /dev/null; then 733251881Speter GNU_GETTEXT=yes 734251881Speter MSGFMTFLAGS='-c' 735251881Speter fi 736251881Speter AC_MSG_RESULT($GNU_GETTEXT) 737251881Speterfi 738251881SpeterAC_SUBST(MSGFMTFLAGS) 739251881Speter 740251881Speterdnl libmagic ------------------- 741251881Speter 742251881Speterlibmagic_found=no 743251881Speter 744251881SpeterAC_ARG_WITH(libmagic,AS_HELP_STRING([--with-libmagic=PREFIX], 745251881Speter [libmagic filetype detection library]), 746251881Speter[ 747251881Speter if test "$withval" = "yes" ; then 748251881Speter AC_CHECK_HEADER(magic.h, [ 749251881Speter AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"]) 750251881Speter ]) 751251881Speter libmagic_prefix="the default locations" 752251881Speter elif test "$withval" != "no"; then 753251881Speter libmagic_prefix=$withval 754251881Speter save_cppflags="$CPPFLAGS" 755251881Speter CPPFLAGS="$CPPFLAGS -I$libmagic_prefix/include" 756251881Speter AC_CHECK_HEADERS(magic.h,[ 757251881Speter save_ldflags="$LDFLAGS" 758251881Speter LDFLAGS="-L$libmagic_prefix/lib" 759251881Speter AC_CHECK_LIB(magic, magic_open, [libmagic_found="yes"]) 760251881Speter LDFLAGS="$save_ldflags" 761251881Speter ]) 762251881Speter CPPFLAGS="$save_cppflags" 763251881Speter fi 764251881Speter if test "$withval" != "no" && test "$libmagic_found" = "no"; then 765251881Speter AC_MSG_ERROR([[--with-libmagic requested, but libmagic not found at $libmagic_prefix]]) 766251881Speter fi 767251881Speter], 768251881Speter[ 769251881Speter AC_CHECK_HEADER(magic.h, [ 770251881Speter AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"]) 771251881Speter ]) 772251881Speter]) 773251881Speter 774251881Speterif test "$libmagic_found" != "no"; then 775251881Speter AC_DEFINE([SVN_HAVE_LIBMAGIC], [1], [Defined if libmagic support is enabled]) 776251881Speter SVN_MAGIC_LIBS="-lmagic" 777251881Speterfi 778251881Speter 779251881Speterif test "$libmagic_found" = "yes"; then 780251881Speter SVN_MAGIC_INCLUDES="-I$libmagic_prefix/include" 781251881Speter LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$libmagic_prefix/lib)`" 782251881Speterfi 783251881Speter 784251881SpeterAC_SUBST(SVN_MAGIC_INCLUDES) 785251881SpeterAC_SUBST(SVN_MAGIC_LIBS) 786251881Speter 787251881Speterdnl KWallet ------------------- 788251881SpeterSVN_LIB_KWALLET 789251881Speter 790251881Speterif test "$svn_lib_kwallet" = "yes"; then 791251881Speter AC_DEFINE([SVN_HAVE_KWALLET], 1, 792251881Speter [Defined if KWallet support is enabled]) 793251881Speterfi 794251881Speter 795251881Speterdnl plaintext passwords ------------------- 796251881SpeterAC_ARG_ENABLE(plaintext-password-storage, 797251881SpeterAS_HELP_STRING([--disable-plaintext-password-storage], 798251881Speter [Disable on-disk caching of plaintext passwords and passphrases. 799251881Speter (Leaving this functionality enabled will not force Subversion 800251881Speter to store passwords in plaintext, but does permit users to 801251881Speter explicitly allow that behavior via runtime configuration.)]), 802251881Speter[ 803251881Speter if test "$enableval" = "no"; then 804251881Speter AC_MSG_NOTICE([Disabling plaintext password/passphrase storage]) 805251881Speter AC_DEFINE(SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE, 1, 806251881Speter [Defined if plaintext password/passphrase storage is disabled]) 807251881Speter fi 808251881Speter]) 809251881Speter 810251881Speterdnl Build and install rules ------------------- 811251881Speter 812251881SpeterINSTALL_STATIC_RULES="install-bin install-docs" 813251881SpeterINSTALL_RULES="install-fsmod-lib install-ramod-lib install-lib install-include install-static" 814251881SpeterINSTALL_RULES="$INSTALL_RULES $INSTALL_APACHE_RULE" 815251881SpeterBUILD_RULES="fsmod-lib ramod-lib lib bin test sub-test $BUILD_APACHE_RULE tools" 816251881Speter 817251881Speterif test "$svn_lib_berkeley_db" = "yes"; then 818251881Speter BUILD_RULES="$BUILD_RULES bdb-lib bdb-test" 819251881Speter INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-fsmod-lib/install-fsmod-lib install-bdb-lib/'`" 820251881Speter INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-bdb-lib" 821251881Speter BDB_TEST_DEPS="\$(BDB_TEST_DEPS)" 822251881Speter BDB_TEST_PROGRAMS="\$(BDB_TEST_PROGRAMS)" 823251881Speterfi 824251881Speter 825251881Speterif test "$svn_lib_serf" = "yes"; then 826251881Speter BUILD_RULES="$BUILD_RULES serf-lib" 827251881Speter INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-ramod-lib/install-ramod-lib install-serf-lib/'`" 828251881Speter INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-serf-lib" 829251881Speterfi 830251881Speter 831251881Speterif test "$svn_lib_kwallet" = "yes"; then 832251881Speter BUILD_RULES="$BUILD_RULES kwallet-lib" 833251881Speter INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-kwallet-lib/'`" 834251881Speter INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-kwallet-lib" 835251881Speterfi 836251881Speter 837251881Speterif test "$found_gnome_keyring" = "yes"; then 838251881Speter BUILD_RULES="$BUILD_RULES gnome-keyring-lib" 839251881Speter INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-gnome-keyring-lib/'`" 840251881Speter INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-gnome-keyring-lib" 841251881Speterfi 842251881Speter 843251881Speterif test "$USE_NLS" = "yes"; then 844251881Speter BUILD_RULES="$BUILD_RULES locale" 845251881Speter INSTALL_RULES="$INSTALL_RULES install-locale" 846251881Speterfi 847251881Speter 848251881SpeterAC_SUBST(BUILD_RULES) 849251881SpeterAC_SUBST(INSTALL_STATIC_RULES) 850251881SpeterAC_SUBST(INSTALL_RULES) 851251881SpeterAC_SUBST(BDB_TEST_DEPS) 852251881SpeterAC_SUBST(BDB_TEST_PROGRAMS) 853251881Speter 854251881Speterdnl Check for header files ---------------- 855251881Speter 856251881Speterdnl Standard C headers 857251881SpeterAC_HEADER_STDC 858251881Speter 859251881Speterdnl Check for typedefs, structures, and compiler characteristics ---------- 860251881Speter 861251881Speterdnl if compiler doesn't understand `const', then define it empty 862251881SpeterAC_C_CONST 863251881Speter 864251881Speterdnl if non-existent, define size_t to be `unsigned' 865251881SpeterAC_TYPE_SIZE_T 866251881Speter 867251881Speter 868251881Speterdnl Check for library functions ---------- 869251881Speter 870251881SpeterAC_FUNC_MEMCMP 871251881Speter 872251881Speterdnl svn_error's default warning handler uses vfprintf() 873251881SpeterAC_FUNC_VPRINTF 874251881Speter 875251881Speterdnl check for functions needed in special file handling 876251881SpeterAC_CHECK_FUNCS(symlink readlink) 877251881Speter 878251881Speterdnl check for uname 879251881SpeterAC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], []) 880251881Speter 881251881Speterdnl check for termios 882251881SpeterAC_CHECK_HEADER(termios.h,[ 883251881Speter AC_CHECK_FUNCS(tcgetattr tcsetattr,[ 884251881Speter AC_DEFINE(HAVE_TERMIOS_H,1,[Defined if we have a usable termios library.]) 885251881Speter ]) 886251881Speter]) 887251881Speter 888251881Speterdnl Process some configuration options ---------- 889251881Speter 890251881SpeterAC_ARG_WITH(openssl, 891251881SpeterAS_HELP_STRING([--with-openssl], 892251881Speter [This option does NOT affect the Subversion build process in any 893251881Speter way. It tells an integrated Serf HTTP client library build 894251881Speter process where to locate the OpenSSL library when (and only when) 895251881Speter building Serf as an integrated part of the Subversion build 896251881Speter process. When linking to a previously installed version of Serf 897251881Speter instead, you do not need to use this option.]), 898251881Speter[]) 899251881Speter 900251881SpeterAC_ARG_ENABLE(debug, 901251881SpeterAS_HELP_STRING([--enable-debug], 902251881Speter [Turn on debugging]), 903251881Speter[ 904251881Speter if test "$enableval" = "yes" ; then 905251881Speter enable_debugging="yes" 906251881Speter else 907251881Speter enable_debugging="no" 908251881Speter fi 909251881Speter], 910251881Speter[ 911251881Speter # Neither --enable-debug nor --disable-debug was passed. 912251881Speter enable_debugging="maybe" 913251881Speter]) 914251881Speter 915251881SpeterAC_ARG_ENABLE(optimize, 916251881SpeterAS_HELP_STRING([--enable-optimize], 917251881Speter [Turn on optimizations]), 918251881Speter[ 919251881Speter if test "$enableval" = "yes" ; then 920251881Speter enable_optimization="yes" 921251881Speter else 922251881Speter enable_optimization="no" 923251881Speter fi 924251881Speter], 925251881Speter[ 926251881Speter # Neither --enable-optimize nor --disable-optimize was passed. 927251881Speter enable_optimization="maybe" 928251881Speter]) 929251881Speter 930251881Speterdnl Use -Wl,--no-undefined during linking of some libraries 931251881SpeterAC_ARG_ENABLE(disallowing-of-undefined-references, 932251881Speter [AS_HELP_STRING([--enable-disallowing-of-undefined-references], 933251881Speter [Use -Wl,--no-undefined flag during linking of some libraries to disallow undefined references])]) 934251881Speterif test "$enable_disallowing_of_undefined_references" != "yes" && test "`uname`" != "Linux"; then 935251881Speter enable_disallowing_of_undefined_references="no" 936251881Speterfi 937251881Speterif test "$enable_disallowing_of_undefined_references" != "no"; then 938251881Speter AC_MSG_CHECKING([for -Wl,--no-undefined]) 939251881Speter old_LDFLAGS="$LDFLAGS" 940251881Speter LDFLAGS="$LDFLAGS -Wl,--no-undefined" 941251881Speter AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(){;}]])], [svn_wl_no_undefined="yes"], [svn_wl_no_undefined="no"]) 942251881Speter LDFLAGS="$old_LDFLAGS" 943251881Speter if test "$svn_wl_no_undefined" = "yes"; then 944251881Speter AC_MSG_RESULT([yes]) 945251881Speter for library_dir in "$abs_srcdir/subversion/libsvn_"*; do 946251881Speter eval "`basename $library_dir`_LDFLAGS=-Wl,--no-undefined" 947251881Speter done 948251881Speter else 949251881Speter AC_MSG_RESULT([no]) 950251881Speter if test "$enable_disallowing_of_undefined_references" = "yes"; then 951251881Speter AC_MSG_ERROR([--enable-disallowing-of-undefined-references explicitly requested, but -Wl,--no-undefined not supported]) 952251881Speter fi 953251881Speter fi 954251881Speterfi 955251881SpeterAC_SUBST([libsvn_auth_gnome_keyring_LDFLAGS]) 956251881SpeterAC_SUBST([libsvn_auth_kwallet_LDFLAGS]) 957251881SpeterAC_SUBST([libsvn_client_LDFLAGS]) 958251881SpeterAC_SUBST([libsvn_delta_LDFLAGS]) 959251881SpeterAC_SUBST([libsvn_diff_LDFLAGS]) 960251881SpeterAC_SUBST([libsvn_fs_LDFLAGS]) 961251881SpeterAC_SUBST([libsvn_fs_base_LDFLAGS]) 962251881SpeterAC_SUBST([libsvn_fs_fs_LDFLAGS]) 963251881SpeterAC_SUBST([libsvn_fs_util_LDFLAGS]) 964251881SpeterAC_SUBST([libsvn_ra_LDFLAGS]) 965251881SpeterAC_SUBST([libsvn_ra_local_LDFLAGS]) 966251881SpeterAC_SUBST([libsvn_ra_serf_LDFLAGS]) 967251881SpeterAC_SUBST([libsvn_ra_svn_LDFLAGS]) 968251881SpeterAC_SUBST([libsvn_repos_LDFLAGS]) 969251881SpeterAC_SUBST([libsvn_subr_LDFLAGS]) 970251881SpeterAC_SUBST([libsvn_wc_LDFLAGS]) 971251881Speter 972251881Speter 973251881SpeterAC_ARG_ENABLE(maintainer-mode, 974251881SpeterAS_HELP_STRING([--enable-maintainer-mode], 975251881Speter [Turn on debugging and very strict compile-time warnings]), 976251881Speter[ 977251881Speter if test "$enableval" = "yes" ; then 978251881Speter if test "$enable_debugging" = "no" ; then 979251881Speter AC_MSG_ERROR([Can't have --disable-debug and --enable-maintainer-mode]) 980251881Speter fi 981251881Speter enable_debugging=yes 982251881Speter 983251881Speter dnl Enable some extra warnings. Put these before the user's flags 984251881Speter dnl so the user can specify flags that override these. 985251881Speter if test "$GCC" = "yes"; then 986251881Speter AC_MSG_NOTICE([maintainer-mode: adding GCC warning flags]) 987251881Speter 988251881Speter dnl some additional flags that can be handy for an occasional review, 989251881Speter dnl but throw too many warnings in svn code, of too little importance, 990251881Speter dnl to keep these enabled. Remove the "dnl" to do a run with these 991251881Speter dnl switches enabled. 992251881Speter dnl ./configure CUSERFLAGS="-Wswitch-enum -Wswitch-default" 993251881Speter 994251881Speter dnl Add each of the following flags only if the C compiler accepts it. 995251881Speter CFLAGS_KEEP="$CFLAGS" 996251881Speter CFLAGS="" 997251881Speter 998251881Speter SVN_CFLAGS_ADD_IFELSE([-Werror=implicit-function-declaration]) 999251881Speter SVN_CFLAGS_ADD_IFELSE([-Werror=declaration-after-statement]) 1000251881Speter SVN_CFLAGS_ADD_IFELSE([-Wextra-tokens]) 1001251881Speter SVN_CFLAGS_ADD_IFELSE([-Wnewline-eof]) 1002251881Speter SVN_CFLAGS_ADD_IFELSE([-Wshorten-64-to-32]) 1003251881Speter SVN_CFLAGS_ADD_IFELSE([-Wold-style-definition]) 1004251881Speter SVN_CFLAGS_ADD_IFELSE([-Wno-system-headers]) 1005251881Speter SVN_CFLAGS_ADD_IFELSE([-Wno-format-nonliteral]) 1006251881Speter 1007251881Speter CMAINTAINERFLAGS="$CFLAGS $CMAINTAINERFLAGS" 1008251881Speter CFLAGS="$CFLAGS_KEEP" 1009251881Speter 1010251881Speter dnl Add flags that all versions of GCC (should) support 1011251881Speter 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 $CMAINTAINERFLAGS" 1012251881Speter fi 1013251881Speter if test "$GXX" = "yes"; then 1014251881Speter AC_MSG_NOTICE([maintainer-mode: adding G++ warning flags]) 1015251881Speter 1016251881Speter dnl Add each of the following flags only if the C++ compiler accepts it. 1017251881Speter CXXFLAGS_KEEP="$CXXFLAGS" 1018251881Speter CXXFLAGS="" 1019251881Speter 1020251881Speter SVN_CXXFLAGS_ADD_IFELSE([-Wextra-tokens]) 1021251881Speter SVN_CXXFLAGS_ADD_IFELSE([-Wnewline-eof]) 1022251881Speter SVN_CXXFLAGS_ADD_IFELSE([-Wshorten-64-to-32]) 1023251881Speter SVN_CXXFLAGS_ADD_IFELSE([-Wno-system-headers]) 1024251881Speter 1025251881Speter CXXMAINTAINERFLAGS="$CXXFLAGS $CXXMAINTAINERFLAGS" 1026251881Speter CXXFLAGS="$CXXFLAGS_KEEP" 1027251881Speter 1028251881Speter dnl Add flags that all versions of G++ (should) support 1029251881Speter CXXMAINTAINERFLAGS="-Wall -Wpointer-arith -Wwrite-strings -Wshadow -Wunused -Wunreachable-code $CXXMAINTAINERFLAGS" 1030251881Speter fi 1031251881Speter fi 1032251881Speter]) 1033251881Speter 1034251881Speterif test "$enable_debugging" = "yes" ; then 1035251881Speter dnl At the moment, we don't want optimization, because we're 1036251881Speter dnl debugging. Unless optiization was explicitly enabled. 1037251881Speter if test "$enable_optimization" != "yes"; then 1038251881Speter AC_MSG_NOTICE([Disabling optimizations for debugging]) 1039251881Speter CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1040251881Speter CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1041251881Speter fi 1042251881Speter dnl Add debugging flags, unless they were set by the user 1043251881Speter if test -z ["`echo $CUSERFLAGS' ' | $EGREP -- '-g[0-9]? '`"]; then 1044251881Speter AC_MSG_NOTICE([Enabling debugging for C]) 1045251881Speter CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] 1046251881Speter SVN_CFLAGS_ADD_IFELSE([-fno-inline]) 1047251881Speter SVN_CFLAGS_ADD_IFELSE([-fno-omit-frame-pointer]) 1048251881Speter SVN_CFLAGS_ADD_IFELSE([-g3],[],[ 1049251881Speter SVN_CFLAGS_ADD_IFELSE([-g2],[],[ 1050251881Speter SVN_CFLAGS_ADD_IFELSE([-g])])]) 1051251881Speter fi 1052251881Speter if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-g[0-9]? '`"]; then 1053251881Speter AC_MSG_NOTICE([Enabling debugging for C++]) 1054251881Speter CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] 1055251881Speter SVN_CXXFLAGS_ADD_IFELSE([-fno-inline]) 1056251881Speter SVN_CXXFLAGS_ADD_IFELSE([-fno-omit-frame-pointer]) 1057251881Speter SVN_CXXFLAGS_ADD_IFELSE([-g3],[],[ 1058251881Speter SVN_CXXFLAGS_ADD_IFELSE([-g2],[],[ 1059251881Speter SVN_CXXFLAGS_ADD_IFELSE([-g])])]) 1060251881Speter fi 1061251881Speter dnl SVN_DEBUG enables specific features for developer builds 1062251881Speter dnl AP_DEBUG enables specific (Apache) features for developer builds 1063251881Speter CFLAGS="$CFLAGS -DSVN_DEBUG -DAP_DEBUG" 1064251881Speter CXXFLAGS="$CXXFLAGS -DSVN_DEBUG -DAP_DEBUG" 1065251881Speterelif test "$enable_debugging" = "no" ; then 1066251881Speter AC_MSG_NOTICE([Disabling debugging]) 1067251881Speter CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] 1068251881Speter CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' -e 's/-g //g'`"] 1069251881Speter dnl Compile with NDEBUG to get rid of assertions 1070251881Speter CFLAGS="$CFLAGS -DNDEBUG" 1071251881Speter CXXFLAGS="$CXXFLAGS -DNDEBUG" 1072251881Speter# elif test "$enable_debugging" = "maybe" ; then 1073251881Speter# # do nothing 1074251881Speterfi 1075251881Speter 1076251881Speterif test "$enable_optimization" = "yes"; then 1077251881Speter dnl Add optimization flags, unless they were set by the user 1078251881Speter if test -z ["`echo $CUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then 1079251881Speter CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1080251881Speter if test "$enable_debugging" = "yes"; then 1081251881Speter AC_MSG_NOTICE([Enabling optimizations for C (with debugging enabled)]) 1082251881Speter SVN_CFLAGS_ADD_IFELSE([-O1],[],[ 1083251881Speter SVN_CFLAGS_ADD_IFELSE([-O])]) 1084251881Speter else 1085251881Speter AC_MSG_NOTICE([Enabling optimizations for C]) 1086251881Speter SVN_CFLAGS_ADD_IFELSE([-O3],[],[ 1087251881Speter SVN_CFLAGS_ADD_IFELSE([-O2],[],[ 1088251881Speter SVN_CFLAGS_ADD_IFELSE([-O1],[],[ 1089251881Speter SVN_CFLAGS_ADD_IFELSE([-O])])])]) 1090251881Speter SVN_CFLAGS_ADD_IFELSE([-Wno-clobbered]) 1091251881Speter SVN_CFLAGS_ADD_IFELSE([-flto]) 1092251881Speter SVN_CFLAGS_ADD_IFELSE([-fwhole-program]) 1093251881Speter fi 1094251881Speter fi 1095251881Speter if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then 1096251881Speter CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1097251881Speter if test "$enable_debugging" = "yes"; then 1098251881Speter AC_MSG_NOTICE([Enabling optimizations for C++ (with debugging enabled)]) 1099251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[ 1100251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O])]) 1101251881Speter else 1102251881Speter AC_MSG_NOTICE([Enabling optimizations for C++]) 1103251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O3],[],[ 1104251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O2],[],[ 1105251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[ 1106251881Speter SVN_CXXFLAGS_ADD_IFELSE([-O])])])]) 1107251881Speter SVN_CXXFLAGS_ADD_IFELSE([-Wno-clobbered]) 1108251881Speter SVN_CXXFLAGS_ADD_IFELSE([-flto]) 1109251881Speter SVN_CXXFLAGS_ADD_IFELSE([-fwhole-program]) 1110251881Speter fi 1111251881Speter fi 1112251881Speterelif test "$enable_optimization" = "no"; then 1113251881Speter dnl Remove all optimization flags 1114251881Speter AC_MSG_NOTICE([Disabling optimizations]) 1115251881Speter CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1116251881Speter CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] 1117251881Speter# elif test "$enable_optimization" = "maybe" ; then 1118251881Speter# # do nothing 1119251881Speterfi 1120251881Speter 1121253734Speterdnl Dump the current compiler options 1122253734SpeterAC_MSG_NOTICE([C compiler flags: $CFLAGS]) 1123253734SpeterAC_MSG_NOTICE([ user-defined: $CUSERFLAGS]) 1124253734SpeterAC_MSG_NOTICE([ maintainer-mode: $CMAINTAINERFLAGS]) 1125253734SpeterAC_MSG_NOTICE([C++ compiler flags: $CXXFLAGS]) 1126253734SpeterAC_MSG_NOTICE([ user-defined: $CXXUSERFLAGS]) 1127253734SpeterAC_MSG_NOTICE([ maintainer-mode: $CXXMAINTAINERFLAGS]) 1128251881Speter 1129251881SpeterAC_ARG_ENABLE(full-version-match, 1130251881SpeterAS_HELP_STRING([--disable-full-version-match], 1131251881Speter [Disable the full version match rules when checking 1132251881Speter Subversion library compatibility.]), 1133251881Speter[ 1134251881Speter if test "$enableval" = "no" ; then 1135251881Speter AC_MSG_NOTICE([Disabling svn full version matching]) 1136251881Speter AC_DEFINE(SVN_DISABLE_FULL_VERSION_MATCH, 1, 1137251881Speter [Defined if the full version matching rules are disabled]) 1138251881Speter fi 1139251881Speter]) 1140251881Speter 1141251881SpeterAC_ARG_WITH(editor, 1142251881SpeterAS_HELP_STRING([--with-editor=PATH], 1143251881Speter [Specify a default editor for the subversion client.]), 1144251881Speter[ 1145251881Speter 1146251881Speter if test "$withval" = "yes" ; then 1147251881Speter AC_MSG_ERROR([--with-editor requires an argument.]) 1148251881Speter else 1149251881Speter SVN_CLIENT_EDITOR=$withval 1150251881Speter AC_DEFINE_UNQUOTED(SVN_CLIENT_EDITOR, "$SVN_CLIENT_EDITOR", 1151251881Speter [The path of a default editor for the client.]) 1152251881Speter 1153251881Speter fi 1154251881Speter 1155251881Speter]) 1156251881Speter 1157251881SpeterSVN_LIB_Z 1158251881Speter 1159251881SpeterMOD_ACTIVATION="" 1160251881SpeterAC_ARG_ENABLE(mod-activation, 1161251881SpeterAS_HELP_STRING([--enable-mod-activation], 1162251881Speter [Enable mod_dav_svn in httpd.conf]), 1163251881Speter[ 1164251881Speter if test "$enableval" = "yes" ; then 1165251881Speter MOD_ACTIVATION="-a" 1166251881Speter AC_MSG_NOTICE([Enabling apache module activation]) 1167251881Speter else 1168251881Speter AC_MSG_NOTICE([Disabling apache module activation]) 1169251881Speter fi 1170251881Speter]) 1171251881SpeterAC_SUBST(MOD_ACTIVATION) 1172251881Speter 1173251881Speter 1174251881Speter 1175251881SpeterAC_ARG_ENABLE(gcov, 1176251881SpeterAC_HELP_STRING([--enable-gcov], 1177251881Speter [Turn on gcov coverage testing (GCC only).]), 1178251881Speter[ 1179251881Speter if test "$enableval" = "yes" ; then 1180251881Speter dnl Probably other compilers support something similar; 1181251881Speter dnl feel free to extend this to include them. 1182251881Speter if test "$GCC" = "yes"; then 1183251881Speter if test "$svn_enable_shared" = "yes" ; then 1184251881Speter AC_MSG_ERROR([Can't have --enable-gcov without --disable-shared (we 1185251881Speter recommend also using --enable-all-static).]) 1186251881Speter fi 1187251881Speter if test ! "$enable_all_static" = "yes" ; then 1188251881Speter AC_MSG_WARN(We recommend --enable-all-static with --enable-gcov.) 1189251881Speter fi 1190251881Speter AC_MSG_NOTICE([Enabling gcov coverage testing.]) 1191251881Speter CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" 1192251881Speter CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage" 1193251881Speter else 1194251881Speter AC_MSG_ERROR([We only support --enable-gcov with GCC right now.]) 1195251881Speter fi 1196251881Speter fi 1197251881Speter]) 1198251881Speter 1199251881SpeterAC_ARG_ENABLE(gprof, 1200251881SpeterAS_HELP_STRING([--enable-gprof], 1201251881Speter [Produce gprof profiling data in 'gmon.out' (GCC only).]), 1202251881Speter[ 1203251881Speter if test "$enableval" = "yes" ; then 1204251881Speter dnl Probably other compilers support -pg or something similar; 1205251881Speter dnl feel free to extend this to include them. 1206251881Speter if test "$GCC" = "yes"; then 1207251881Speter if test "$svn_enable_shared" = "yes" ; then 1208251881Speter AC_MSG_ERROR([Can't have --enable-gprof without --disable-shared (we 1209251881Speter recommend also using --enable-all-static).]) 1210251881Speter fi 1211251881Speter if test ! "$enable_all_static" = "yes" ; then 1212251881Speter AC_MSG_WARN(We recommend --enable-all-static with --enable-gprof.) 1213251881Speter fi 1214251881Speter AC_MSG_NOTICE([Enabling gprof profiling data (to gmon.out).]) 1215251881Speter CFLAGS="$CFLAGS -pg" 1216251881Speter CXXFLAGS="$CXXFLAGS -pg" 1217251881Speter LT_LDFLAGS="$LT_LDFLAGS -pg" 1218251881Speter else 1219251881Speter AC_MSG_ERROR([We only support --enable-gprof with GCC right now.]) 1220251881Speter fi 1221251881Speter fi 1222251881Speter]) 1223251881Speter 1224251881Speter 1225251881Speter# Scripting and Bindings languages 1226251881Speter 1227251881Speter# Python: Used for testsuite, and bindings 1228251881Speter 1229251881Speter 1230251881SpeterPYTHON="`$abs_srcdir/build/find_python.sh`" 1231251881Speterif test -z "$PYTHON"; then 1232251881Speter AC_MSG_WARN([Python 2.5 or later is required to run the testsuite]) 1233251881Speter AC_MSG_WARN([or to use the Subversion Python bindings]) 1234251881Speter AC_MSG_WARN([]) 1235251881Speter AC_MSG_WARN([If you have a suitable Python installed, but not on the]) 1236251881Speter AC_MSG_WARN([PATH, set the environment variable PYTHON to the full path]) 1237251881Speter AC_MSG_WARN([to the Python executable, and re-run configure]) 1238251881Speterfi 1239251881SpeterAC_PATH_PROGS(PYTHON, "$PYTHON", none) 1240251881Speter 1241251881Speter# The minimum version for the JVM runtime for our Java bytecode. 1242251881SpeterJAVA_OLDEST_WORKING_VER='1.5' 1243251881Speter# SVN_CHECK_JDK sets $JAVA_CLASSPATH 1244251881SpeterSVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER) 1245251881Speter 1246251881SpeterAC_PATH_PROG(PERL, perl, none) 1247251881Speter 1248251881Speterif test -n "$RUBY"; then 1249251881Speter AC_PATH_PROG(RUBY, "$RUBY", none) 1250251881Speterelse 1251251881Speter AC_PATH_PROGS(RUBY, ruby ruby1.8 ruby18 ruby1.9 ruby1 ruby1.9.3 ruby193, none) 1252251881Speterfi 1253251881Speterif test "$RUBY" != "none"; then 1254251881Speter AC_MSG_CHECKING([rb_hash_foreach]) 1255251881Speter if "$RUBY" -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)' >/dev/null; then 1256251881Speter AC_MSG_RESULT([yes]) 1257251881Speter if test -n "$RDOC"; then 1258251881Speter AC_PATH_PROG(RDOC, "$RDOC", none) 1259251881Speter else 1260251881Speter AC_PATH_PROGS(RDOC, rdoc rdoc1.8 rdoc18 rdoc1.9 rdoc19 rdoc1.9.3 rdoc193, none) 1261251881Speter fi 1262251881Speter AC_CACHE_CHECK([for Ruby major version], [svn_cv_ruby_major],[ 1263251881Speter svn_cv_ruby_major="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MAJOR))'`" 1264251881Speter ]) 1265251881Speter RUBY_MAJOR="$svn_cv_ruby_major" 1266251881Speter 1267251881Speter AC_CACHE_CHECK([for Ruby minor version], [svn_cv_ruby_minor],[ 1268251881Speter svn_cv_ruby_minor="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MINOR))'`" 1269251881Speter ]) 1270251881Speter RUBY_MINOR="$svn_cv_ruby_minor" 1271251881Speter 1272251881Speter AC_CACHE_CHECK([for Ruby teeny version], [svn_cv_ruby_teeny],[ 1273251881Speter svn_cv_ruby_teeny="`$RUBY -rrbconfig -e 'major, minor, teeny = RUBY_VERSION.split("."); print teeny;'`" 1274251881Speter ]) 1275251881Speter RUBY_TEENY="$svn_cv_ruby_teeny" 1276251881Speter 1277251881Speter AC_SUBST(RUBY_MAJOR) 1278251881Speter AC_SUBST(RUBY_MINOR) 1279251881Speter AC_SUBST(RUBY_TEENY) 1280251881Speter if test \( "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -gt "8" -a "$RUBY_TEENY" -lt "3" \); then 1281251881Speter # Disallow Ruby between 1.8.7 and 1.9.3 1282251881Speter RUBY="none" 1283251881Speter AC_MSG_WARN([The detected Ruby is between 1.9 and 1.9.3]) 1284251881Speter AC_MSG_WARN([Only 1.8.x and 1.9.3 releases are supported at this time]) 1285251881Speter elif test \( "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -eq "9" -a "$RUBY_TEENY" -eq "3" \); then 1286251881Speter #Warn about 1.9.3 support 1287251881Speter AC_MSG_WARN([WARNING: The detected Ruby is 1.9.3]) 1288251881Speter AC_MSG_WARN([WARNING: Only 1.8.x releases are fully supported, 1.9.3 support is new]) 1289251881Speter fi 1290251881Speter else 1291251881Speter AC_MSG_RESULT([no]) 1292251881Speter RUBY="none" 1293251881Speter AC_MSG_WARN([The detected Ruby is too old for Subversion to use]) 1294251881Speter AC_MSG_WARN([A Ruby which has rb_hash_foreach is required to use the]) 1295251881Speter AC_MSG_WARN([Subversion Ruby bindings]) 1296251881Speter AC_MSG_WARN([Upgrade to the official 1.8.2 release, or later]) 1297251881Speter fi 1298251881Speterfi 1299251881Speter 1300251881SpeterSVN_CHECK_SWIG 1301251881Speter 1302251881SpeterSVN_CHECK_CTYPESGEN 1303251881Speter 1304251881Speterdnl decide whether we want to link against the RA/FS libraries 1305251881SpeterAC_ARG_ENABLE(runtime-module-search, 1306251881SpeterAS_HELP_STRING([--enable-runtime-module-search], 1307251881Speter [Turn on dynamic loading of RA/FS libraries including 1308251881Speter third-party FS libraries]), 1309251881Speter[ 1310251881Speter if test "$enableval" = "yes"; then 1311251881Speter use_dso=yes 1312251881Speter if test "$svn_enable_shared" = "no"; then 1313251881Speter AC_MSG_ERROR([--enable-runtime-module-search conflicts with --disable-shared]) 1314251881Speter fi 1315251881Speter AC_DEFINE(SVN_USE_DSO, 1, 1316251881Speter [Defined if svn should try to load DSOs]) 1317251881Speter fi 1318251881Speter]) 1319251881Speter 1320251881Speterif test "$svn_enable_shared" = "no" || test "$use_dso" != "yes"; then 1321251881Speter AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL, 1, 1322251881Speter [Defined if libsvn_client should link against libsvn_ra_local]) 1323251881Speter svn_ra_lib_deps="\$(RA_LOCAL_DEPS)" 1324251881Speter svn_ra_lib_install_deps="install-ramod-lib" 1325251881Speter svn_ra_lib_link="\$(RA_LOCAL_LINK)" 1326251881Speter 1327251881Speter AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_SVN, 1, 1328251881Speter [Defined if libsvn_client should link against libsvn_ra_svn]) 1329251881Speter svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SVN_DEPS)" 1330251881Speter svn_ra_lib_link="$svn_ra_lib_link \$(RA_SVN_LINK)" 1331251881Speter 1332251881Speter if test "$svn_lib_serf" = "yes"; then 1333251881Speter AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_SERF, 1, 1334251881Speter [Defined if libsvn_client should link against libsvn_ra_serf]) 1335251881Speter svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SERF_DEPS)" 1336251881Speter svn_ra_lib_install_deps="$svn_ra_lib_install_deps install-serf-lib" 1337251881Speter svn_ra_lib_link="$svn_ra_lib_link \$(RA_SERF_LINK)" 1338251881Speter fi 1339251881Speter 1340251881Speter SVN_RA_LIB_DEPS=$svn_ra_lib_deps 1341251881Speter SVN_RA_LIB_INSTALL_DEPS=$svn_ra_lib_install_deps 1342251881Speter SVN_RA_LIB_LINK=$svn_ra_lib_link 1343251881Speter 1344251881Speter AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_FS, 1, 1345251881Speter [Defined if libsvn_fs should link against libsvn_fs_fs]) 1346251881Speter svn_fs_lib_deps="\$(FS_FS_DEPS)" 1347251881Speter svn_fs_lib_install_deps="install-fsmod-lib" 1348251881Speter svn_fs_lib_link="\$(FS_FS_LINK)" 1349251881Speter 1350251881Speter if test "$svn_lib_berkeley_db" = "yes"; then 1351251881Speter AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_BASE, 1, 1352251881Speter [Defined if libsvn_fs should link against libsvn_fs_base]) 1353251881Speter svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_BASE_DEPS)" 1354251881Speter svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-bdb-lib" 1355251881Speter svn_fs_lib_link="$svn_fs_lib_link \$(FS_BASE_LINK)" 1356251881Speter fi 1357251881Speter 1358251881Speter SVN_FS_LIB_DEPS=$svn_fs_lib_deps 1359251881Speter SVN_FS_LIB_INSTALL_DEPS=$svn_fs_lib_install_deps 1360251881Speter SVN_FS_LIB_LINK=$svn_fs_lib_link 1361251881Speterfi 1362251881Speter 1363251881SpeterAC_SUBST(SVN_RA_LIB_DEPS) 1364251881SpeterAC_SUBST(SVN_RA_LIB_INSTALL_DEPS) 1365251881SpeterAC_SUBST(SVN_RA_LIB_LINK) 1366251881SpeterAC_SUBST(SVN_FS_LIB_DEPS) 1367251881SpeterAC_SUBST(SVN_FS_LIB_INSTALL_DEPS) 1368251881SpeterAC_SUBST(SVN_FS_LIB_LINK) 1369251881Speter 1370251881Speter# ==== JavaHL ================================================================ 1371251881Speter 1372251881Speterdnl Possibly compile JavaHL 1373251881Speterdo_javahl_build=no 1374251881SpeterAC_ARG_ENABLE(javahl, 1375251881Speter AS_HELP_STRING([--enable-javahl], 1376251881Speter [Enable compilation of Java high-level bindings (requires C++)]), 1377251881Speter [ if test "$enableval" = "yes" ; then 1378251881Speter do_javahl_build="yes" 1379251881Speter fi 1380251881Speter ]) 1381251881Speter 1382251881SpeterJAVAHL_OBJDIR="" 1383251881SpeterINSTALL_EXTRA_JAVAHL_LIB="" 1384251881SpeterFIX_JAVAHL_LIB="" 1385251881SpeterJAVAHL_TESTS_TARGET="" 1386251881SpeterJAVAHL_COMPAT_TESTS_TARGET="" 1387251881SpeterLT_CXX_LIBADD="" 1388251881Speterif test "$do_javahl_build" = "yes"; then 1389251881Speter dnl Check for suitable JDK 1390251881Speter if test "$JDK_SUITABLE" = "no"; then 1391251881Speter AC_MSG_ERROR([Cannot compile JavaHL without a suitable JDK. 1392251881Speter Please specify a suitable JDK using the --with-jdk option.]) 1393251881Speter fi 1394251881Speter 1395251881Speter dnl The temporary directory where libtool compiles libsvnjavahl. 1396251881Speter JAVAHL_OBJDIR='$(libsvnjavahl_PATH)/.libs' 1397251881Speter 1398251881Speter os_arch=`uname` 1399251881Speter if test "$os_arch" = "Darwin"; then 1400251881Speter dnl On Darwin, JNI libs must be installed as .jnilib 1401251881Speter INSTALL_EXTRA_JAVAHL_LIB='ln -sf $(libdir)/libsvnjavahl-1.dylib $(libdir)/libsvnjavahl-1.jnilib' 1402251881Speter FIX_JAVAHL_LIB="ln -sf libsvnjavahl-1.dylib $JAVAHL_OBJDIR/libsvnjavahl-1.jnilib" 1403251881Speter fi 1404251881Speter # This segment (and the rest of r10800) is very likely unnecessary 1405251881Speter # with libtool 1.5, which automatically adds libstdc++ as a 1406251881Speter # dependency to the C++ libraries it builds. So at some future time 1407251881Speter # when autogen.sh requires libtool 1.5 or higher, we can get rid of 1408251881Speter # it. 1409251881Speter AC_MSG_CHECKING([for additional flags to link C++ libraries]) 1410251881Speter if test "x$ac_compiler_gnu" = "xyes"; then 1411251881Speter LT_CXX_LIBADD="-lstdc++" 1412251881Speter AC_MSG_RESULT([$LT_CXX_LIBADD]) 1413251881Speter else 1414251881Speter AC_MSG_RESULT([none needed]) 1415251881Speter fi 1416251881Speterfi 1417251881SpeterAC_SUBST(INSTALL_EXTRA_JAVAHL_LIB) 1418251881SpeterAC_SUBST(JAVAHL_OBJDIR) 1419251881SpeterAC_SUBST(FIX_JAVAHL_LIB) 1420251881SpeterAC_SUBST(LT_CXX_LIBADD) 1421251881Speter 1422251881SpeterAC_ARG_WITH(junit, 1423251881SpeterAS_HELP_STRING([--with-junit=PATH], 1424251881Speter [Specify a path to the junit JAR file.]), 1425251881Speter[ 1426251881Speter if test "$withval" != "no"; then 1427251881Speter if test -n "$JAVA_CLASSPATH"; then 1428251881Speter JAVA_CLASSPATH="$withval:$JAVA_CLASSPATH" 1429251881Speter else 1430251881Speter JAVA_CLASSPATH="$withval" 1431251881Speter fi 1432251881Speter JAVAHL_TESTS_TARGET="javahl-tests" 1433251881Speter JAVAHL_COMPAT_TESTS_TARGET="javahl-compat-tests" 1434251881Speter fi 1435251881Speter]) 1436251881SpeterAC_SUBST(JAVA_CLASSPATH) 1437251881SpeterAC_SUBST(JAVAHL_TESTS_TARGET) 1438251881SpeterAC_SUBST(JAVAHL_COMPAT_TESTS_TARGET) 1439251881Speter 1440251881Speter# ==== Miscellaneous bits ==================================================== 1441251881Speter 1442251881Speter# Strip '-no-cpp-precomp' from CPPFLAGS for the clang compiler 1443251881Speter### I think we get this flag from APR, so the fix probably belongs there 1444251881Speterif test "$CC" = "clang"; then 1445251881Speter SVN_STRIP_FLAG(CPPFLAGS, [-no-cpp-precomp ]) 1446251881Speterfi 1447251881Speter 1448251881Speterdnl Since this is used only on Unix-y systems, define the path separator as '/' 1449251881SpeterAC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/', 1450251881Speter [Defined to be the path separator used on your local filesystem]) 1451251881Speter 1452251881SpeterAC_DEFINE_UNQUOTED(SVN_NULL_DEVICE_NAME, "/dev/null", 1453251881Speter [Defined to be the null device for the system]) 1454251881Speter 1455251881SpeterDEFAULT_FS_TYPE="fsfs" 1456251881SpeterAC_DEFINE_UNQUOTED(DEFAULT_FS_TYPE, "$DEFAULT_FS_TYPE", 1457251881Speter [The fs type to use by default]) 1458251881Speter 1459251881SpeterDEFAULT_HTTP_LIBRARY="serf" 1460251881SpeterAC_DEFINE_UNQUOTED(DEFAULT_HTTP_LIBRARY, "$DEFAULT_HTTP_LIBRARY", 1461251881Speter [The http library to use by default]) 1462251881Speter 1463251881Speter# BSD/OS (BSDi) needs to use a different include syntax in Makefile 1464251881SpeterINCLUDE_OUTPUTS="include \$(top_srcdir)/build-outputs.mk" 1465251881Spetercase "$host" in 1466251881Speter *bsdi*) 1467251881Speter # Check whether they've installed GNU make 1468251881Speter if ! make --version > /dev/null 2>&1; then 1469251881Speter # BSDi make 1470251881Speter INCLUDE_OUTPUTS=".include \"\$(top_srcdir)/build-outputs.mk\"" 1471251881Speter fi 1472251881Speter ;; 1473251881Speteresac 1474251881SpeterAC_SUBST(INCLUDE_OUTPUTS) 1475251881Speter 1476251881Speter# ==== Detection complete - output and run config.status ===================== 1477251881Speter 1478251881SpeterAC_CONFIG_HEADERS(subversion/svn_private_config.h.tmp:subversion/svn_private_config.h.in) 1479251881SpeterAC_CONFIG_COMMANDS([svn_private_config.h.tmp], 1480251881Speter [svn_cf=subversion/svn_private_config.h; 1481251881Speter $SED -e "s/@SVN_DB_HEADER@/$SVN_DB_HEADER/" $svn_cf.tmp > $svn_cf.tmp.new 1482251881Speter cmp -s $svn_cf.tmp.new $svn_cf || mv -f $svn_cf.tmp.new $svn_cf 1483251881Speter rm -f $svn_cf.tmp.new $svn_cf.tmp], 1484251881Speter [SED="$SED" 1485251881Speter SVN_DB_HEADER="$SVN_DB_HEADER"]) 1486251881SpeterAC_CONFIG_FILES([Makefile]) 1487251881Speter 1488251881SpeterSVN_CONFIG_SCRIPT(tools/backup/hot-backup.py) 1489251881SpeterSVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl) 1490251881SpeterSVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL) 1491251881Speterif test -e packages/solaris/pkginfo.in; then 1492251881Speter SVN_CONFIG_SCRIPT(packages/solaris/pkginfo) 1493251881Speterfi 1494251881SpeterAC_SUBST(SVN_CONFIG_SCRIPT_FILES) 1495251881Speter 1496251881Speter# Ensure that SWIG is checked after reconfiguration. 1497251881Speterrm -f .swig_checked 1498251881Speter 1499251881Speterdnl Provide ${host} for use in compiled code (for svn --version) 1500251881SpeterAC_DEFINE_UNQUOTED([SVN_BUILD_HOST], "${host}", 1501251881Speter [Defined to the config.guess name of the build system]) 1502251881Speter 1503251881Speterdnl Provide ${target} for use in compiled code (for user-agent string) 1504251881SpeterAC_DEFINE_UNQUOTED([SVN_BUILD_TARGET], "${target}", 1505251881Speter [Defined to the config.guess name of the build target]) 1506251881Speter 1507251881SpeterAC_OUTPUT 1508251881Speter 1509251881Speter# ==== Print final messages to user ========================================== 1510251881Speter 1511251881Speterdnl Configure is long - users tend to miss warnings printed during it. 1512251881Speterdnl Hence, print a warnings about what we did and didn't configure at the 1513251881Speterdnl end, where people will actually see them. 1514251881Speter 1515253734Speterif test "$svn_have_berkeley_db" = "no6" && test "$enable_bdb6" != "no"; then 1516253734Speter AC_MSG_WARN([We have configured without BDB filesystem support 1517251881Speter 1518251881Speter 1519253734SpeterBerkeley DB 6 was found, but not used. Please re-run configure (see 1520253734Speter./config.nice) with the '--enable-bdb6' flag to use it, 1521253734Speteror explicitly specify '--disable-bdb6' or '--without-berkeley-db' 1522253734Speterto silence this warning. 1523251881Speter 1524253734SpeterPlease note that some versions of Berkeley DB 6+ are under the GNU Affero 1525253734SpeterGeneral Public License, version 3: 1526253734Speterhttps://oss.oracle.com/pipermail/bdb/2013-June/000056.html 1527251881Speter 1528253734SpeterThe AGPL-3.0 licence may impose special requirements for making available 1529253734Spetersource code of server-side software. The text of the licence is: 1530253734Speterhttps://www.gnu.org/licenses/agpl-3.0.html 1531253734Speterhttp://opensource.org/licenses/AGPL-3.0 1532253734Speter 1533253734SpeterThe Berkeley DB backend to Subversion is deprecated; see 1534253734Speterhttp://subversion.apache.org/docs/release-notes/1.8#bdb-deprecated 1535253734Speter 1536253734SpeterThe Subversion developers have not tested Subversion with Berkeley DB 6 for 1537253734Spetertechnical problems or bugs. 1538251881Speter]) 1539251881Speterfi 1540