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