| dnl Licensed to the Apache Software Foundation (ASF) under one |
| dnl or more contributor license agreements. See the NOTICE file |
| dnl distributed with this work for additional information |
| dnl regarding copyright ownership. The ASF licenses this file |
| dnl to you under the Apache License, Version 2.0 (the |
| dnl "License"); you may not use this file except in compliance |
| dnl with the License. You may obtain a copy of the License at |
| dnl |
| dnl http://www.apache.org/licenses/LICENSE-2.0 |
| dnl |
| dnl Unless required by applicable law or agreed to in writing, |
| dnl software distributed under the License is distributed on an |
| dnl "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| dnl KIND, either express or implied. See the License for the |
| dnl specific language governing permissions and limitations |
| dnl under the License. |
| |
| dnl configure.ac: Autoconfiscation for Subversion |
| dnl Process this file with autoconf to produce a configure script. |
| |
| AC_PREREQ(2.59) |
| |
| dnl Get the version of Subversion, using m4's esyscmd() command to do this |
| dnl at m4-time, since AC_INIT() requires it then. |
| AC_INIT([subversion], |
| [esyscmd(python build/getversion.py SVN subversion/include/svn_version.h)], |
| [http://subversion.apache.org/]) |
| |
| AC_CONFIG_SRCDIR(subversion/include/svn_types.h) |
| AC_CONFIG_AUX_DIR([build]) |
| |
| AC_MSG_NOTICE([Configuring Subversion ]AC_PACKAGE_VERSION) |
| |
| AC_SUBST([abs_srcdir], ["`cd $srcdir && pwd`"]) |
| AC_SUBST([abs_builddir], ["`pwd`"]) |
| if test "$abs_srcdir" = "$abs_builddir"; then |
| canonicalized_srcdir="" |
| else |
| canonicalized_srcdir="$srcdir/" |
| fi |
| AC_SUBST([canonicalized_srcdir]) |
| |
| SWIG_LDFLAGS="$LDFLAGS" |
| AC_SUBST([SWIG_LDFLAGS]) |
| |
| # Generate config.nice early (before the arguments are munged) |
| SVN_CONFIG_NICE(config.nice) |
| |
| # ==== Check for programs ==================================================== |
| |
| # Look for a C compiler (before anything can set CFLAGS) |
| AC_PROG_CC |
| |
| # Look for a C++ compiler |
| AC_PROG_CXX |
| |
| # Look for a C pre-processor |
| AC_PROG_CPP |
| |
| # Look for a good sed |
| # AC_PROG_SED was introduced in Autoconf 2.59b |
| m4_ifdef([AC_PROG_SED], [AC_PROG_SED], [SED="${SED:-sed}"]) |
| |
| # Grab target_cpu, so we can use it in the Solaris pkginfo file |
| AC_CANONICAL_TARGET |
| |
| # Look for an extended grep |
| AC_PROG_EGREP |
| |
| AC_PROG_LN_S |
| |
| AC_PROG_INSTALL |
| # If $INSTALL is relative path to our fallback install-sh, then convert |
| # to an absolute path, as in some cases (e.g. Solaris VPATH build), libtool |
| # may try to use it from a changed working directory. |
| if test "$INSTALL" = "build/install-sh -c"; then |
| INSTALL="$abs_srcdir/$INSTALL" |
| fi |
| |
| if test -z "$MKDIR"; then |
| MKDIR="$INSTALL -d" |
| fi |
| AC_SUBST([MKDIR]) |
| |
| # ==== Libraries, for which we may have source to build ====================== |
| |
| dnl verify apr version and set apr flags |
| dnl These regular expressions should not contain "\(" and "\)". |
| dnl The specific reason we require APR 0.9.7 is: |
| dnl It contains fixes to its file writing routines |
| dnl now generating errors instead of silently ignoring |
| dnl them. Only .7 and later can guarantee repository |
| dnl integrity with FSFS. |
| |
| APR_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\. 2\."] |
| |
| SVN_LIB_APR($APR_VER_REGEXES) |
| |
| if test `expr $apr_version : 2` -ne 0; then |
| dnl Bump the library so-version to 2 if using APR-2 |
| dnl (Debian uses so-version 1 for APR-1-with-largefile) |
| SVN_LT_SOVERSION="-version-info 2" |
| dnl APR-2 provides APRUTIL |
| apu_config=$apr_config |
| AC_SUBST(SVN_APRUTIL_INCLUDES) |
| AC_SUBST(SVN_APRUTIL_CONFIG, ["$apu_config"]) |
| AC_SUBST(SVN_APRUTIL_LIBS) |
| AC_SUBST(SVN_APRUTIL_PREFIX) |
| else |
| SVN_LT_SOVERSION="-version-info 0" |
| APU_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\."] |
| SVN_LIB_APRUTIL($APU_VER_REGEXES) |
| fi |
| AC_SUBST(SVN_LT_SOVERSION) |
| |
| dnl Search for pkg-config |
| AC_PATH_PROG(PKG_CONFIG, pkg-config) |
| |
| # Either a space-separated list of allowable Neon versions, or "any" to |
| # mean allow anything. |
| NEON_ALLOWED_LIST="0\.25 0\.26 0\.27\.2 0\.28 0\.29 0\.30" |
| NEON_RECOMMENDED_VER="0.29.6" |
| NEON_URL="http://www.webdav.org/neon/neon-${NEON_RECOMMENDED_VER}.tar.gz" |
| dnl You can skip the neon version check only if you know what you are doing |
| AC_ARG_ENABLE(neon-version-check, |
| AS_HELP_STRING([--disable-neon-version-check], |
| [do not check the Neon version]), |
| [ |
| if test "$enableval" = "no" ; then |
| NEON_ALLOWED_LIST="any" |
| fi |
| ], |
| []) |
| SVN_LIB_NEON($NEON_ALLOWED_LIST, $NEON_RECOMMENDED_VER, $NEON_URL) |
| |
| if test "$svn_lib_neon" = "yes"; then |
| AC_DEFINE([SVN_HAVE_NEON], 1, |
| [Defined if support for Neon is enabled]) |
| fi |
| |
| dnl Search for serf as an alternative to neon |
| SVN_LIB_SERF(0,7,1) |
| |
| if test "$svn_lib_serf" = "yes"; then |
| AC_DEFINE([SVN_HAVE_SERF], 1, |
| [Defined if support for Serf is enabled]) |
| fi |
| |
| dnl Search for GSSAPI |
| SVN_LIB_RA_SERF_GSSAPI |
| |
| if test "$svn_lib_gssapi" = "yes"; then |
| AC_DEFINE([SVN_RA_SERF_HAVE_GSSAPI], 1, |
| [Defined if support for GSSAPI is enabled]) |
| fi |
| |
| dnl Search for apr_memcache (only affects fs_fs) |
| SVN_LIB_APR_MEMCACHE |
| |
| if test "$svn_lib_apr_memcache" = "yes"; then |
| AC_DEFINE(SVN_HAVE_MEMCACHE, 1, |
| [Defined if apr_memcache (standalone or in apr-util) is present]) |
| fi |
| |
| |
| dnl Find Apache with a recent-enough magic module number |
| SVN_FIND_APACHE(20020903) |
| |
| dnl Search for SQLite |
| SQLITE_MINIMUM_VER="3.6.18" |
| SQLITE_RECOMMENDED_VER="3.7.6.3" |
| SQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-${SQLITE_RECOMMENDED_VER}.tar.gz" |
| SVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER}, |
| ${SQLITE_URL}) |
| |
| dnl Set up a number of directories --------------------- |
| |
| dnl Create SVN_BINDIR for proper substitution |
| if test "${bindir}" = '${exec_prefix}/bin'; then |
| if test "${exec_prefix}" = "NONE"; then |
| if test "${prefix}" = "NONE"; then |
| SVN_BINDIR="${ac_default_prefix}/bin" |
| else |
| SVN_BINDIR="${prefix}/bin" |
| fi |
| else |
| SVN_BINDIR="${exec_prefix}/bin" |
| fi |
| else |
| SVN_BINDIR="${bindir}" |
| fi |
| |
| dnl fully evaluate this value. when we substitute it into our tool scripts, |
| dnl they will not have things such as ${bindir} available |
| SVN_BINDIR="`eval echo ${SVN_BINDIR}`" |
| AC_SUBST(SVN_BINDIR) |
| |
| dnl provide ${bindir} in svn_private_config.h for use in compiled code |
| AC_DEFINE_UNQUOTED(SVN_BINDIR, "${SVN_BINDIR}", |
| [Defined to be the path to the installed binaries]) |
| |
| dnl This purposely does *not* allow for multiple parallel installs. |
| dnl However, it is compatible with most gettext usages. |
| localedir='${datadir}/locale' |
| AC_SUBST(localedir) |
| |
| dnl For SVN_LOCALE_DIR, we have to expand it to something. See SVN_BINDIR. |
| if test "${datadir}" = '${prefix}/share' && test "${prefix}" = "NONE"; then |
| exp_localedir='${ac_default_prefix}/share/locale' |
| else |
| exp_localedir=$localedir |
| fi |
| SVN_EXPAND_VAR(svn_localedir, "${exp_localedir}") |
| AC_DEFINE_UNQUOTED(SVN_LOCALE_DIR, "${svn_localedir}", |
| [Defined to be the path to the installed locale dirs]) |
| |
| dnl Check for libtool -- we'll definitely need it for all our shared libs! |
| AC_MSG_NOTICE([configuring libtool now]) |
| ifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL]) |
| AC_ARG_ENABLE(experimental-libtool, |
| AS_HELP_STRING([--enable-experimental-libtool],[Use APR's libtool]), |
| [experimental_libtool=$enableval],[experimental_libtool=no]) |
| |
| if test "$experimental_libtool" = "yes"; then |
| echo "using APR's libtool" |
| sh_libtool="`$apr_config --apr-libtool`" |
| LIBTOOL="$sh_libtool" |
| SVN_LIBTOOL="$sh_libtool" |
| else |
| sh_libtool="$abs_builddir/libtool" |
| SVN_LIBTOOL="\$(SHELL) $sh_libtool" |
| fi |
| AC_SUBST(SVN_LIBTOOL) |
| |
| dnl Determine the libtool version |
| changequote(, )dnl |
| lt_pversion=`$LIBTOOL --version 2>/dev/null|$SED -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` |
| lt_version=`echo $lt_pversion|$SED -e 's/\([a-z]*\)$/.\1/'` |
| lt_major_version=`echo $lt_version | cut -d'.' -f 1` |
| changequote([, ])dnl |
| |
| dnl set the default parameters |
| svn_enable_static=yes |
| svn_enable_shared=yes |
| |
| dnl check for --enable-static option |
| AC_ARG_ENABLE(static, |
| AS_HELP_STRING([--enable-static], |
| [Build static libraries]), |
| [svn_enable_static="$enableval"], [svn_enable_static="yes"]) |
| |
| dnl check for --enable-shared option |
| AC_ARG_ENABLE(shared, |
| AS_HELP_STRING([--enable-shared], |
| [Build shared libraries]), |
| [svn_enable_shared="$enableval"], [svn_enable_shared="yes"]) |
| |
| if test "$svn_enable_static" = "yes" && test "$svn_enable_shared" = "yes" ; then |
| AC_MSG_NOTICE([building both shared and static libraries]) |
| elif test "$svn_enable_static" = "yes" ; then |
| AC_MSG_NOTICE([building static libraries only]) |
| LT_CFLAGS="-static $LT_CFLAGS" |
| LT_LDFLAGS="-static $LT_LDFLAGS" |
| elif test "$svn_enable_shared" = "yes" ; then |
| AC_MSG_NOTICE([building shared libraries only]) |
| if test "$lt_major_version" = "1" ; then |
| LT_CFLAGS="-prefer-pic $LT_CFLAGS" |
| elif test "$lt_major_version" = "2" ; then |
| LT_CFLAGS="-shared $LT_CFLAGS" |
| fi |
| LT_LDFLAGS="-shared $LT_LDFLAGS" |
| else |
| AC_MSG_ERROR([cannot disable both shared and static libraries]) |
| fi |
| |
| dnl Check for --enable-all-static option |
| AC_ARG_ENABLE(all-static, |
| AS_HELP_STRING([--enable-all-static], |
| [Build completely static (standalone) binaries.]), |
| [ |
| if test "$enableval" = "yes" ; then |
| LT_LDFLAGS="-all-static $LT_LDFLAGS" |
| elif test "$enableval" != "no" ; then |
| AC_MSG_ERROR([--enable-all-static doesn't accept argument]) |
| fi |
| ]) |
| |
| AC_SUBST(LT_CFLAGS) |
| AC_SUBST(LT_LDFLAGS) |
| |
| AC_ARG_ENABLE(local-library-preloading, |
| AS_HELP_STRING([--enable-local-library-preloading], |
| [Enable preloading of locally built libraries in locally |
| built executables. This may be necessary for testing |
| prior to installation on some platforms. It does not |
| work on some platforms (Darwin, OpenBSD, ...).]), |
| [ |
| if test "$enableval" != "no"; then |
| if test "$svn_enable_shared" = "yes"; then |
| TRANSFORM_LIBTOOL_SCRIPTS="transform-libtool-scripts" |
| else |
| AC_MSG_ERROR([--enable-local-library-preloading conflicts with --disable-shared]) |
| fi |
| else |
| TRANSFORM_LIBTOOL_SCRIPTS="" |
| fi |
| ], [ |
| TRANSFORM_LIBTOOL_SCRIPTS="" |
| ]) |
| AC_SUBST(TRANSFORM_LIBTOOL_SCRIPTS) |
| |
| dnl Check if -no-undefined is needed for the platform. |
| dnl It should always work but with libtool 1.4.3 on OS X it breaks the build. |
| dnl So we only turn it on for platforms where we know we really need it. |
| AC_MSG_CHECKING([whether libtool needs -no-undefined]) |
| case $host in |
| *-*-cygwin*) |
| AC_MSG_RESULT([yes]) |
| LT_NO_UNDEFINED="-no-undefined" |
| ;; |
| *) |
| AC_MSG_RESULT([no]) |
| LT_NO_UNDEFINED="" |
| ;; |
| esac |
| AC_SUBST(LT_NO_UNDEFINED) |
| |
| AC_MSG_CHECKING([whether to avoid circular linkage at all costs]) |
| case $host in |
| *-*-cygwin*) |
| AC_MSG_RESULT([yes]) |
| AC_DEFINE([SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK], 1, |
| [Define if circular linkage is not possible on this platform.]) |
| ;; |
| *) |
| AC_MSG_RESULT([no]) |
| ;; |
| esac |
| |
| dnl Check for trang. |
| trang=yes |
| AC_ARG_WITH(trang, |
| AS_HELP_STRING([--with-trang=PATH], |
| [Specify the command to run the trang schema converter]), |
| [ |
| trang="$withval" |
| ]) |
| if test "$trang" = "yes"; then |
| AC_PATH_PROG(TRANG, trang, none) |
| else |
| TRANG="$trang" |
| AC_SUBST(TRANG) |
| fi |
| |
| dnl Check for doxygen |
| doxygen=yes |
| AC_ARG_WITH(doxygen, |
| AC_HELP_STRING([--with-doxygen=PATH], |
| [Specify the command to run doxygen]), |
| [ |
| doxygen="$withval" |
| ]) |
| if test "$doxygen" = "yes"; then |
| AC_PATH_PROG(DOXYGEN, doxygen, none) |
| else |
| DOXYGEN="$doxygen" |
| AC_SUBST(DOXYGEN) |
| fi |
| |
| |
| dnl Check for libraries -------------------- |
| |
| dnl Expat ------------------- |
| |
| AC_ARG_WITH(expat, |
| AS_HELP_STRING([--with-expat=INCLUDES:LIB_SEARCH_DIRS:LIBS], |
| [Specify location of Expat]), |
| [svn_lib_expat="$withval"], |
| [svn_lib_expat="::expat"]) |
| |
| AC_MSG_CHECKING([for Expat]) |
| if test -n "`echo "$svn_lib_expat" | $EGREP ":.*:"`"; then |
| SVN_XML_INCLUDES="" |
| for i in [`echo "$svn_lib_expat" | $SED -e "s/\([^:]*\):.*/\1/"`]; do |
| SVN_XML_INCLUDES="$SVN_XML_INCLUDES -I$i" |
| done |
| SVN_XML_INCLUDES="${SVN_XML_INCLUDES## }" |
| for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\):.*/\1/"`]; do |
| LDFLAGS="$LDFLAGS -L$l" |
| done |
| for l in [`echo "$svn_lib_expat" | $SED -e "s/.*:\([^:]*\)/\1/"`]; do |
| SVN_XML_LIBS="$SVN_XML_LIBS -l$l" |
| done |
| SVN_XML_LIBS="${SVN_XML_LIBS## }" |
| old_CPPFLAGS="$CPPFLAGS" |
| old_LIBS="$LIBS" |
| CPPFLAGS="$CPPFLAGS $SVN_XML_INCLUDES" |
| LIBS="$LIBS $SVN_XML_LIBS" |
| AC_LINK_IFELSE([AC_LANG_SOURCE([[ |
| #include <expat.h> |
| int main() |
| {XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no") |
| LIBS="$old_LIBS" |
| if test "$svn_lib_expat" = "yes"; then |
| AC_MSG_RESULT([yes]) |
| else |
| SVN_XML_INCLUDES="" |
| SVN_XML_LIBS="" |
| CPPFLAGS="$CPPFLAGS $SVN_APRUTIL_INCLUDES" |
| if test "$enable_all_static" != "yes"; then |
| SVN_APRUTIL_LIBS="$SVN_APRUTIL_LIBS `$apu_config --libs`" |
| fi |
| AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ |
| #include <expat.h> |
| int main() |
| {XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no") |
| if test "$svn_lib_expat" = "yes"; then |
| AC_MSG_RESULT([yes]) |
| 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.]) |
| else |
| AC_MSG_RESULT([no]) |
| AC_MSG_ERROR([Expat not found]) |
| fi |
| fi |
| CPPFLAGS="$old_CPPFLAGS" |
| else |
| AC_MSG_RESULT([no]) |
| if test "$svn_lib_expat" = "yes"; then |
| AC_MSG_ERROR([--with-expat option requires argument]) |
| elif test "$svn_lib_expat" = "no"; then |
| AC_MSG_ERROR([Expat is required]) |
| else |
| AC_MSG_ERROR([Invalid syntax of argument of --with-expat option]) |
| fi |
| fi |
| AC_SUBST(SVN_XML_INCLUDES) |
| AC_SUBST(SVN_XML_LIBS) |
| |
| dnl Berkeley DB ------------------- |
| |
| # Berkeley DB on SCO OpenServer needs -lsocket |
| AC_CHECK_LIB(socket, socket) |
| |
| # Build the BDB filesystem library only if we have an appropriate |
| # version of Berkeley DB. |
| case "$host" in |
| powerpc-apple-darwin*) |
| # Berkeley DB 4.0 does not work on OS X. |
| SVN_FS_WANT_DB_MAJOR=4 |
| SVN_FS_WANT_DB_MINOR=1 |
| SVN_FS_WANT_DB_PATCH=25 |
| ;; |
| *) |
| SVN_FS_WANT_DB_MAJOR=4 |
| SVN_FS_WANT_DB_MINOR=0 |
| SVN_FS_WANT_DB_PATCH=14 |
| ;; |
| esac |
| # Look for libdb4.so first: |
| SVN_LIB_BERKELEY_DB($SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MINOR, |
| $SVN_FS_WANT_DB_PATCH, [db4 db]) |
| |
| AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MAJOR, |
| [The desired major version for the Berkeley DB]) |
| AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_MINOR, $SVN_FS_WANT_DB_MINOR, |
| [The desired minor version for the Berkeley DB]) |
| AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_PATCH, $SVN_FS_WANT_DB_PATCH, |
| [The desired patch version for the Berkeley DB]) |
| |
| AC_SUBST(SVN_DB_INCLUDES) |
| AC_SUBST(SVN_DB_LIBS) |
| |
| SVN_LIB_SASL |
| |
| if test "$svn_lib_sasl" = "yes"; then |
| AC_DEFINE(SVN_HAVE_SASL, 1, |
| [Defined if Cyrus SASL v2 is present on the system]) |
| fi |
| |
| dnl Mac OS KeyChain ------------------- |
| |
| AC_ARG_ENABLE(keychain, |
| AS_HELP_STRING([--disable-keychain], |
| [Disable use of Mac OS KeyChain for auth credentials]), |
| [enable_keychain=$enableval],[enable_keychain=yes]) |
| |
| AC_MSG_CHECKING([for Mac OS KeyChain Services]) |
| |
| if test "$enable_keychain" = "yes"; then |
| AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <AvailabilityMacros.h> |
| #if !DARWIN || (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_2) |
| #error KeyChain API unavailable. |
| #endif]], [[]])],[],[enable_keychain=no]) |
| fi |
| |
| if test "$enable_keychain" = "yes"; then |
| dnl ### Hack. We should only need to pass the -framework options when |
| dnl linking libsvn_subr, since it is the only library that uses Keychain. |
| dnl |
| dnl Unfortunately, libtool 1.5.x doesn't track transitive dependencies for |
| dnl OS X frameworks like it does for normal libraries, so we need to |
| dnl explicitly pass the option to all the users of libsvn_subr to allow |
| dnl static builds to link successfully. |
| dnl |
| dnl This does mean that all executables we link will be linked directly |
| dnl to these frameworks - even when building shared libraries - but that |
| dnl shouldn't cause any problems. |
| LIBS="$LIBS -framework Security" |
| LIBS="$LIBS -framework CoreFoundation" |
| LIBS="$LIBS -framework CoreServices" |
| AC_DEFINE([SVN_HAVE_KEYCHAIN_SERVICES], [1], [Is Mac OS KeyChain support enabled?]) |
| AC_MSG_RESULT([yes]) |
| else |
| AC_MSG_RESULT([no]) |
| fi |
| |
| |
| dnl APR_HAS_DSO ------------------- |
| |
| AC_MSG_CHECKING([whether APR has support for DSOs]) |
| old_CPPFLAGS="$CPPFLAGS" |
| CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES" |
| AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ |
| #include <apr.h> |
| #if !APR_HAS_DSO |
| #error |
| #endif]])], |
| APR_HAS_DSO="yes" |
| AC_MSG_RESULT([yes]), |
| APR_HAS_DSO="no" |
| AC_MSG_RESULT([no])) |
| CPPFLAGS="$old_CPPFLAGS" |
| |
| |
| dnl D-Bus (required for support for KWallet) ------------------- |
| |
| if test -n "$PKG_CONFIG"; then |
| AC_MSG_CHECKING([for D-Bus .pc file]) |
| if $PKG_CONFIG --exists dbus-1; then |
| AC_MSG_RESULT([yes]) |
| old_CPPFLAGS="$CPPFLAGS" |
| old_LIBS="$LIBS" |
| DBUS_CPPFLAGS="`$PKG_CONFIG --cflags dbus-1`" |
| AC_MSG_CHECKING([D-Bus version]) |
| DBUS_VERSION="`$PKG_CONFIG --modversion dbus-1`" |
| AC_MSG_RESULT([$DBUS_VERSION]) |
| # D-Bus 0.* requires DBUS_API_SUBJECT_TO_CHANGE |
| if test -n ["`echo "$DBUS_VERSION" | $EGREP '^0\.[[:digit:]]+'`"]; then |
| DBUS_CPPFLAGS="$DBUS_CPPFLAGS -DDBUS_API_SUBJECT_TO_CHANGE" |
| fi |
| DBUS_LIBS="`$PKG_CONFIG --libs dbus-1`" |
| CPPFLAGS="$CPPFLAGS $DBUS_CPPFLAGS" |
| LIBS="$LIBS $DBUS_LIBS" |
| AC_MSG_CHECKING([for D-Bus]) |
| AC_LINK_IFELSE([AC_LANG_SOURCE([[ |
| #include <dbus/dbus.h> |
| int main() |
| {dbus_bus_get(DBUS_BUS_SESSION, NULL);}]])], HAVE_DBUS="yes", HAVE_DBUS="no") |
| if test "$HAVE_DBUS" = "yes"; then |
| AC_MSG_RESULT([yes]) |
| else |
| AC_MSG_RESULT([no]) |
| fi |
| CPPFLAGS="$old_CPPFLAGS" |
| LIBS="$old_LIBS" |
| else |
| AC_MSG_RESULT([no]) |
| fi |
| fi |
| |
| dnl GNOME Keyring ------------------- |
| |
| AC_ARG_WITH(gnome_keyring, |
| AS_HELP_STRING([--with-gnome-keyring], |
| [Enable use of GNOME Keyring for auth credentials]), |
| [with_gnome_keyring="$withval"], |
| [with_gnome_keyring=no]) |
| |
| AC_MSG_CHECKING([whether to look for GNOME Keyring]) |
| if test "$with_gnome_keyring" != "no"; then |
| AC_MSG_RESULT([yes]) |
| if test "$svn_enable_shared" = "yes"; then |
| if test "$APR_HAS_DSO" = "yes"; then |
| if test -n "$PKG_CONFIG"; then |
| AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files]) |
| if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then |
| AC_MSG_RESULT([yes]) |
| old_CPPFLAGS="$CPPFLAGS" |
| SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`" |
| CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES" |
| AC_CHECK_HEADER(gnome-keyring.h, with_gnome_keyring=yes, with_gnome_keyring=no) |
| AC_MSG_CHECKING([for GNOME Keyring]) |
| if test "$with_gnome_keyring" = "yes"; then |
| AC_MSG_RESULT([yes]) |
| AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1], |
| [Is GNOME Keyring support enabled?]) |
| CPPFLAGS="$old_CPPFLAGS" |
| SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`" |
| else |
| AC_MSG_RESULT([no]) |
| AC_MSG_ERROR([cannot find GNOME Keyring]) |
| fi |
| else |
| AC_MSG_RESULT([no]) |
| AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files]) |
| fi |
| else |
| AC_MSG_ERROR([cannot find pkg-config]) |
| fi |
| else |
| AC_MSG_ERROR([APR does not have support for DSOs]) |
| fi |
| else |
| AC_MSG_ERROR([--with-gnome-keyring conflicts with --disable-shared]) |
| fi |
| else |
| AC_MSG_RESULT([no]) |
| fi |
| AC_SUBST(SVN_GNOME_KEYRING_INCLUDES) |
| AC_SUBST(SVN_GNOME_KEYRING_LIBS) |
| |
| |
| dnl I18n ------------------- |
| |
| AC_ARG_ENABLE(nls, |
| AS_HELP_STRING([--disable-nls],[Disable gettext functionality]), |
| [enable_nls=$enableval],[enable_nls=yes]) |
| |
| USE_NLS="no" |
| if test "$enable_nls" = "yes"; then |
| dnl First, check to see if there is a working msgfmt. |
| AC_PATH_PROG(MSGFMT, msgfmt, none) |
| AC_PATH_PROG(MSGMERGE, msgmerge, none) |
| AC_PATH_PROG(XGETTEXT, xgettext, none) |
| if test "$MSGFMT" != "none"; then |
| AC_SEARCH_LIBS(bindtextdomain, [intl], [], |
| [ |
| enable_nls="no" |
| ]) |
| if test "$enable_nls" = "no"; then |
| # Destroy the cached result so we can test again |
| unset ac_cv_search_bindtextdomain |
| # On some systems, libintl needs libiconv to link properly, |
| # so try again with -liconv. |
| AC_SEARCH_LIBS(bindtextdomain, [intl], |
| [ |
| enable_nls="yes" |
| # This is here so that -liconv ends up in LIBS |
| # if it worked with -liconv. |
| AC_CHECK_LIB(iconv, libiconv_open) |
| ], |
| [ |
| AC_MSG_WARN([bindtextdomain() not found. Disabling NLS.]) |
| enable_nls="no" |
| ], -liconv) |
| fi |
| if test "$enable_nls" = "yes"; then |
| AC_DEFINE(ENABLE_NLS, 1, |
| [Define to 1 if translation of program messages to the user's |
| native language is requested.]) |
| USE_NLS="yes" |
| fi |
| fi |
| fi |
| |
| AH_BOTTOM( |
| #define N_(x) x |
| #define U_(x) x |
| #ifdef ENABLE_NLS |
| #include <locale.h> |
| #include <libintl.h> |
| #define _(x) dgettext(PACKAGE_NAME, x) |
| #define Q_(x1, x2, n) dngettext(PACKAGE_NAME, x1, x2, n) |
| #else |
| #define _(x) (x) |
| #define Q_(x1, x2, n) (((n) == 1) ? x1 : x2) |
| #define gettext(x) (x) |
| #define dgettext(domain, x) (x) |
| #endif |
| ) |
| |
| dnl Used to simulate makefile conditionals. |
| GETTEXT_CODESET=\# |
| NO_GETTEXT_CODESET=\# |
| if test $USE_NLS = "yes"; then |
| AC_CHECK_FUNCS(bind_textdomain_codeset, |
| [ GETTEXT_CODESET="" ], |
| [ NO_GETTEXT_CODESET="" ]) |
| fi |
| AC_SUBST(GETTEXT_CODESET) |
| AC_SUBST(NO_GETTEXT_CODESET) |
| |
| # Check if we are using GNU gettext. |
| GNU_GETTEXT=no |
| MSGFMTFLAGS='' |
| if test $USE_NLS = "yes"; then |
| AC_MSG_CHECKING(if we are using GNU gettext) |
| if $MSGFMT --version 2>&1 | $EGREP GNU > /dev/null; then |
| GNU_GETTEXT=yes |
| MSGFMTFLAGS='-c' |
| fi |
| AC_MSG_RESULT($GNU_GETTEXT) |
| fi |
| AC_SUBST(MSGFMTFLAGS) |
| |
| dnl libmagic ------------------- |
| |
| libmagic_found=no |
| |
| AC_ARG_WITH(libmagic,AS_HELP_STRING([--with-libmagic=PREFIX], |
| [libmagic filetype detection library]), |
| [ |
| if test "$withval" = "yes" ; then |
| AC_CHECK_HEADER(magic.h, [ |
| AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"]) |
| ]) |
| libmagic_prefix="the default locations" |
| elif test "$withval" != "no"; then |
| libmagic_prefix=$withval |
| save_cppflags="$CPPFLAGS" |
| CPPFLAGS="$CPPFLAGS -I$libmagic_prefix/include" |
| AC_CHECK_HEADERS(magic.h,[ |
| save_ldflags="$LDFLAGS" |
| LDFLAGS="-L$libmagic_prefix/lib $LDFLAGS" |
| AC_CHECK_LIB(magic, magic_open, [libmagic_found="yes"]) |
| LDFLAGS="$save_ldflags" |
| ]) |
| CPPFLAGS="$save_cppflags" |
| fi |
| if test "$withval" != "no" && test "$libmagic_found" = "no"; then |
| AC_MSG_ERROR([[--with-libmagic requested, but libmagic not found at $libmagic_prefix]]) |
| fi |
| ], |
| [ |
| AC_CHECK_HEADER(magic.h, [ |
| AC_CHECK_LIB(magic, magic_open, [libmagic_found="builtin"]) |
| ]) |
| ]) |
| |
| if test "$libmagic_found" != "no"; then |
| AC_DEFINE([SVN_HAVE_LIBMAGIC], [1], [Defined if libmagic support is enabled]) |
| SVN_MAGIC_LIBS="-lmagic" |
| fi |
| |
| if test "$libmagic_found" = "yes"; then |
| SVN_MAGIC_INCLUDES="-I$libmagic_prefix/include" |
| LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$libmagic_prefix/lib)`" |
| fi |
| |
| AC_SUBST(SVN_MAGIC_INCLUDES) |
| AC_SUBST(SVN_MAGIC_LIBS) |
| |
| dnl KWallet ------------------- |
| SVN_LIB_KWALLET |
| |
| if test "$svn_lib_kwallet" = "yes"; then |
| AC_DEFINE([SVN_HAVE_KWALLET], 1, |
| [Defined if KWallet support is enabled]) |
| fi |
| |
| |
| dnl Build and install rules ------------------- |
| |
| INSTALL_STATIC_RULES="install-bin install-docs" |
| INSTALL_RULES="install-fsmod-lib install-ramod-lib install-lib install-include install-static" |
| INSTALL_RULES="$INSTALL_RULES $INSTALL_APACHE_RULE" |
| BUILD_RULES="fsmod-lib ramod-lib lib bin test $BUILD_APACHE_RULE tools" |
| |
| if test "$svn_lib_berkeley_db" = "yes"; then |
| BUILD_RULES="$BUILD_RULES bdb-lib bdb-test" |
| INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-fsmod-lib/install-fsmod-lib install-bdb-lib/'`" |
| INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-bdb-lib" |
| BDB_TEST_DEPS="\$(BDB_TEST_DEPS)" |
| BDB_TEST_PROGRAMS="\$(BDB_TEST_PROGRAMS)" |
| fi |
| |
| if test "$svn_lib_neon" = "yes"; then |
| BUILD_RULES="$BUILD_RULES neon-lib" |
| INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-ramod-lib/install-ramod-lib install-neon-lib/'`" |
| INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-neon-lib" |
| fi |
| |
| if test "$svn_lib_serf" = "yes"; then |
| BUILD_RULES="$BUILD_RULES serf-lib" |
| INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-ramod-lib/install-ramod-lib install-serf-lib/'`" |
| INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-serf-lib" |
| fi |
| |
| if test "$svn_lib_kwallet" = "yes"; then |
| BUILD_RULES="$BUILD_RULES kwallet-lib" |
| INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-kwallet-lib/'`" |
| INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-kwallet-lib" |
| fi |
| |
| if test "$with_gnome_keyring" = "yes"; then |
| BUILD_RULES="$BUILD_RULES gnome-keyring-lib" |
| INSTALL_RULES="`echo $INSTALL_RULES | $SED 's/install-lib/install-lib install-gnome-keyring-lib/'`" |
| INSTALL_STATIC_RULES="$INSTALL_STATIC_RULES install-gnome-keyring-lib" |
| fi |
| |
| if test "$USE_NLS" = "yes"; then |
| BUILD_RULES="$BUILD_RULES locale" |
| INSTALL_RULES="$INSTALL_RULES install-locale" |
| fi |
| |
| AC_SUBST(BUILD_RULES) |
| AC_SUBST(INSTALL_STATIC_RULES) |
| AC_SUBST(INSTALL_RULES) |
| AC_SUBST(BDB_TEST_DEPS) |
| AC_SUBST(BDB_TEST_PROGRAMS) |
| |
| dnl Check for header files ---------------- |
| |
| dnl Standard C headers |
| AC_HEADER_STDC |
| |
| dnl Check for typedefs, structures, and compiler characteristics ---------- |
| |
| dnl if compiler doesn't understand `const', then define it empty |
| AC_C_CONST |
| |
| dnl if non-existent, define size_t to be `unsigned' |
| AC_TYPE_SIZE_T |
| |
| |
| dnl Check for library functions ---------- |
| |
| AC_FUNC_MEMCMP |
| |
| dnl svn_error's default warning handler uses vfprintf() |
| AC_FUNC_VPRINTF |
| |
| dnl check for functions needed in special file handling |
| AC_CHECK_FUNCS(symlink readlink) |
| |
| |
| dnl Process some configuration options ---------- |
| |
| AC_ARG_WITH(ssl, |
| AS_HELP_STRING([--with-ssl], |
| [This option does NOT affect the Subversion build process in any |
| way. It enables OpenSSL support in the Neon HTTP client |
| library. If and only if you are building Neon as an integrated |
| part of the Subversion build process, rather than linking to |
| an already installed version of Neon, you probably want to pass |
| this option so that Neon (and so indirectly, Subversion) will |
| be capable of https:// access via that library. (Note that |
| Subversion may also or alternatively be configured to use |
| the Serf library for http:// and https:// access; see the |
| --with-serf and --with-openssl options.)]), |
| []) |
| |
| AC_ARG_WITH(openssl, |
| AS_HELP_STRING([--with-openssl], |
| [This option does NOT affect the Subversion build process in any |
| way. It tells an integrated Serf HTTP client library build |
| process where to locate the OpenSSL library when (and only when) |
| building Serf as an integrated part of the Subversion build |
| process. When linking to a previously installed version of Serf |
| instead, you do not need to use this option. (Note that |
| Subversion may also or alternatively be configured to use the |
| Neon library for http:// and https:// access; see the |
| --with-neon and --with-ssl options.)]), |
| []) |
| |
| AC_ARG_ENABLE(debug, |
| AS_HELP_STRING([--enable-debug], |
| [Turn on debugging]), |
| [ |
| if test "$enableval" = "yes" ; then |
| enable_debugging="yes" |
| else |
| enable_debugging="no" |
| fi |
| ], |
| [ |
| # Neither --enable-debug nor --disable-debug was passed. |
| enable_debugging="maybe" |
| |
| # We leave this as 'maybe' because setting it to 'no' would modify the |
| # CFLAGS/CXXFLAGS later (just after the --enable-maintainer-mode block), |
| # and we don't want to force that. |
| # |
| # TODO: set enable_debugging='no' here, and provide another way to disable |
| # the CFLAGS/CXXFLAGS munging. |
| ]) |
| |
| |
| dnl Add -Werror=implicit-function-declaration to CFLAGS |
| CFLAGS_KEEP="$CFLAGS" |
| CFLAGS="$CFLAGS_KEEP -Werror=implicit-function-declaration" |
| AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])], [CFLAGS_KEEP="$CFLAGS"]) |
| CFLAGS="$CFLAGS_KEEP" |
| |
| |
| dnl Use -Wl,--no-undefined during linking of some libraries |
| AC_ARG_ENABLE(disallowing-of-undefined-references, |
| [AS_HELP_STRING([--enable-disallowing-of-undefined-references], |
| [Use -Wl,--no-undefined flag during linking of some libraries to disallow undefined references])]) |
| if test "$enable_disallowing_of_undefined_references" != "yes" && test "`uname`" != "Linux"; then |
| enable_disallowing_of_undefined_references="no" |
| fi |
| if test "$enable_disallowing_of_undefined_references" != "no"; then |
| AC_MSG_CHECKING([for -Wl,--no-undefined]) |
| old_LDFLAGS="$LDFLAGS" |
| LDFLAGS="$LDFLAGS -Wl,--no-undefined" |
| AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(){;}]])], [svn_wl_no_undefined="yes"], [svn_wl_no_undefined="no"]) |
| LDFLAGS="$old_LDFLAGS" |
| if test "$svn_wl_no_undefined" = "yes"; then |
| AC_MSG_RESULT([yes]) |
| for library_dir in "$abs_srcdir/subversion/libsvn_"*; do |
| eval "`basename $library_dir`_LDFLAGS=-Wl,--no-undefined" |
| done |
| else |
| AC_MSG_RESULT([no]) |
| if test "$enable_disallowing_of_undefined_references" = "yes"; then |
| AC_MSG_ERROR([--enable-disallowing-of-undefined-references explicitly requested, but -Wl,--no-undefined not supported]) |
| fi |
| fi |
| fi |
| AC_SUBST([libsvn_auth_gnome_keyring_LDFLAGS]) |
| AC_SUBST([libsvn_auth_kwallet_LDFLAGS]) |
| AC_SUBST([libsvn_client_LDFLAGS]) |
| AC_SUBST([libsvn_delta_LDFLAGS]) |
| AC_SUBST([libsvn_diff_LDFLAGS]) |
| AC_SUBST([libsvn_fs_LDFLAGS]) |
| AC_SUBST([libsvn_fs_base_LDFLAGS]) |
| AC_SUBST([libsvn_fs_fs_LDFLAGS]) |
| AC_SUBST([libsvn_fs_util_LDFLAGS]) |
| AC_SUBST([libsvn_ra_LDFLAGS]) |
| AC_SUBST([libsvn_ra_local_LDFLAGS]) |
| AC_SUBST([libsvn_ra_neon_LDFLAGS]) |
| AC_SUBST([libsvn_ra_serf_LDFLAGS]) |
| AC_SUBST([libsvn_ra_svn_LDFLAGS]) |
| AC_SUBST([libsvn_repos_LDFLAGS]) |
| AC_SUBST([libsvn_subr_LDFLAGS]) |
| AC_SUBST([libsvn_wc_LDFLAGS]) |
| |
| |
| AC_ARG_ENABLE(maintainer-mode, |
| AS_HELP_STRING([--enable-maintainer-mode], |
| [Turn on debugging and very strict compile-time warnings]), |
| [ |
| if test "$enableval" = "yes" ; then |
| if test "$enable_debugging" = "no" ; then |
| AC_MSG_ERROR([Can't have --disable-debug and --enable-maintainer-mode]) |
| fi |
| enable_debugging=yes |
| if test "$GCC" = "yes"; then |
| AC_MSG_NOTICE([maintainer-mode: adding GCC warning flags]) |
| dnl Enable some extra warnings. Put these before the user's flags |
| dnl so the user can specify flags that override these. |
| CFLAGS="-Wpointer-arith -Wwrite-strings -Wshadow -ansi -Wall -Wformat=2 -Wunused -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wno-multichar -Wredundant-decls -Wnested-externs -Wunreachable-code -Winline -Wno-long-long $CFLAGS" |
| CXXFLAGS="-Wpointer-arith -Wwrite-strings -Wshadow $CXXFLAGS" |
| |
| dnl some additional flags that can be handy for an occasional review, |
| dnl but throw too many warnings in svn code, of too little importance, |
| dnl to keep these enabled. Remove the "dnl" to do a run with these |
| dnl switches enabled. |
| dnl CFLAGS="-Wswitch-enum -Wswitch-default $CFLAGS" |
| |
| dnl Add each of the following flags only if the compiler accepts it. |
| |
| CFLAGS_KEEP="$CFLAGS" |
| AC_LANG_PUSH([C]) |
| |
| CFLAGS="-Werror=declaration-after-statement $CFLAGS_KEEP" |
| AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])], [CFLAGS_KEEP="$CFLAGS"]) |
| |
| CFLAGS="-Wextra-tokens $CFLAGS_KEEP" |
| AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])], [CFLAGS_KEEP="$CFLAGS"]) |
| |
| CFLAGS="-Wnewline-eof $CFLAGS_KEEP" |
| AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])], [CFLAGS_KEEP="$CFLAGS"]) |
| |
| CFLAGS="-Wshorten-64-to-32 $CFLAGS_KEEP" |
| AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])], [CFLAGS_KEEP="$CFLAGS"]) |
| |
| CFLAGS="-Wold-style-definition $CFLAGS_KEEP" |
| AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])], [CFLAGS_KEEP="$CFLAGS"]) |
| |
| CFLAGS="-Wno-system-headers $CFLAGS_KEEP" |
| AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])], [CFLAGS_KEEP="$CFLAGS"]) |
| |
| AC_LANG_POP([C]) |
| CFLAGS="$CFLAGS_KEEP" |
| fi |
| fi |
| ]) |
| |
| if test "$enable_debugging" = "yes" ; then |
| dnl At the moment, we don't want optimization, because we're |
| dnl debugging. |
| CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] |
| CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-O[^ ]* //g'`"] |
| dnl SVN_DEBUG enables specific features for developer builds |
| dnl AP_DEBUG enables specific (Apache) features for developer builds |
| CFLAGS="$CFLAGS -DSVN_DEBUG -DAP_DEBUG" |
| CXXFLAGS="$CXXFLAGS -DSVN_DEBUG -DAP_DEBUG" |
| elif test "$enable_debugging" = "no" ; then |
| CFLAGS=["`echo $CFLAGS' ' | $SED -e 's/-g[0-9] //g' | $SED -e 's/-g//g'`"] |
| CXXFLAGS=["`echo $CXXFLAGS' ' | $SED -e 's/-g[0-9] //g' | $SED -e 's/-g//g'`"] |
| dnl Compile with NDEBUG to get rid of assertions |
| CFLAGS="$CFLAGS -DNDEBUG" |
| CXXFLAGS="$CXXFLAGS -DNDEBUG" |
| # elif test "$enable_debugging" = "maybe" ; then |
| # # do nothing |
| fi |
| |
| AC_ARG_ENABLE(full-version-match, |
| AS_HELP_STRING([--disable-full-version-match], |
| [Disable the full version match rules when checking |
| Subversion library compatibility.]), |
| [ |
| if test "$enableval" = "no" ; then |
| AC_MSG_NOTICE([Disabling svn full version matching]) |
| AC_DEFINE(SVN_DISABLE_FULL_VERSION_MATCH, 1, |
| [Defined if the full version matching rules are disabled]) |
| fi |
| ]) |
| |
| AC_ARG_WITH(editor, |
| AS_HELP_STRING([--with-editor=PATH], |
| [Specify a default editor for the subversion client.]), |
| [ |
| |
| if test "$withval" = "yes" ; then |
| AC_MSG_ERROR([--with-editor requires an argument.]) |
| else |
| SVN_CLIENT_EDITOR=$withval |
| AC_DEFINE_UNQUOTED(SVN_CLIENT_EDITOR, "$SVN_CLIENT_EDITOR", |
| [The path of a default editor for the client.]) |
| |
| fi |
| |
| ]) |
| |
| SVN_LIB_Z |
| |
| MOD_ACTIVATION="" |
| AC_ARG_ENABLE(mod-activation, |
| AS_HELP_STRING([--enable-mod-activation], |
| [Enable mod_dav_svn in httpd.conf]), |
| [ |
| if test "$enableval" = "yes" ; then |
| MOD_ACTIVATION="-a" |
| AC_MSG_NOTICE([Enabling apache module activation]) |
| else |
| AC_MSG_NOTICE([Disabling apache module activation]) |
| fi |
| ]) |
| AC_SUBST(MOD_ACTIVATION) |
| |
| |
| |
| AC_ARG_ENABLE(gprof, |
| AS_HELP_STRING([--enable-gprof], |
| [Produce gprof profiling data in 'gmon.out' (GCC only).]), |
| [ |
| if test "$enableval" = "yes" ; then |
| dnl Probably other compilers support -pg or something similar; |
| dnl feel free to extend this to include them. |
| if test "$GCC" = "yes"; then |
| if test "$svn_enable_shared" = "yes" ; then |
| AC_MSG_ERROR([Can't have --enable-gprof without --disable-shared (we |
| recommend also using --enable-all-static).]) |
| fi |
| if test ! "$enable_all_static" = "yes" ; then |
| AC_MSG_WARN(We recommend --enable-all-static with --enable-gprof.) |
| fi |
| AC_MSG_NOTICE([Enabling gprof profiling data (to gmon.out).]) |
| CFLAGS="$CFLAGS -pg" |
| CXXFLAGS="$CXXFLAGS -pg" |
| LT_LDFLAGS="$LT_LDFLAGS -pg" |
| else |
| AC_MSG_ERROR([We only support --enable-gprof with GCC right now.]) |
| fi |
| fi |
| ]) |
| |
| |
| # Scripting and Bindings languages |
| |
| # Python: Used for testsuite, and bindings |
| |
| |
| PYTHON="`$abs_srcdir/build/find_python.sh`" |
| if test -z "$PYTHON"; then |
| AC_MSG_WARN([Python 2.4 or later is required to run the testsuite]) |
| AC_MSG_WARN([or to use the Subversion Python bindings]) |
| AC_MSG_WARN([]) |
| AC_MSG_WARN([If you have a suitable Python installed, but not on the]) |
| AC_MSG_WARN([PATH, set the environment variable PYTHON to the full path]) |
| AC_MSG_WARN([to the Python executable, and re-run configure]) |
| fi |
| AC_PATH_PROGS(PYTHON, "$PYTHON", none) |
| |
| # The minimum version for the JVM runtime for our Java bytecode. |
| JAVA_OLDEST_WORKING_VER='1.5' |
| # SVN_CHECK_JDK sets $JAVA_CLASSPATH |
| SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER) |
| |
| AC_PATH_PROG(PERL, perl, none) |
| |
| if test -n "$RUBY"; then |
| AC_PATH_PROG(RUBY, "$RUBY", none) |
| else |
| AC_PATH_PROGS(RUBY, ruby ruby1.8 ruby18, none) |
| fi |
| if test "$RUBY" != "none"; then |
| AC_MSG_CHECKING([rb_hash_foreach]) |
| if "$RUBY" -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)' >/dev/null; then |
| AC_MSG_RESULT([yes]) |
| if test -n "$RDOC"; then |
| AC_PATH_PROG(RDOC, "$RDOC", none) |
| else |
| AC_PATH_PROGS(RDOC, rdoc rdoc1.8 rdoc18, none) |
| fi |
| AC_CACHE_CHECK([for Ruby major version], [svn_cv_ruby_major],[ |
| svn_cv_ruby_major="`$RUBY -rrbconfig -e 'print Config::CONFIG.fetch(%q(MAJOR))'`" |
| ]) |
| RUBY_MAJOR="$svn_cv_ruby_major" |
| |
| AC_CACHE_CHECK([for Ruby minor version], [svn_cv_ruby_minor],[ |
| svn_cv_ruby_minor="`$RUBY -rrbconfig -e 'print Config::CONFIG.fetch(%q(MINOR))'`" |
| ]) |
| RUBY_MINOR="$svn_cv_ruby_minor" |
| |
| AC_SUBST(RUBY_MAJOR) |
| AC_SUBST(RUBY_MINOR) |
| if test ! \( "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -eq "8" \); then |
| # Disallow Ruby 1.9 or later until the binding tests get fixed |
| # to run with those versions. |
| RUBY="none" |
| AC_MSG_WARN([The detected Ruby is too new for Subversion to use]) |
| AC_MSG_WARN([Only 1.8.x releases are supported at this time]) |
| fi |
| else |
| AC_MSG_RESULT([no]) |
| RUBY="none" |
| AC_MSG_WARN([The detected Ruby is too old for Subversion to use]) |
| AC_MSG_WARN([A Ruby which has rb_hash_foreach is required to use the]) |
| AC_MSG_WARN([Subversion Ruby bindings]) |
| AC_MSG_WARN([Upgrade to the official 1.8.2 release, or later]) |
| fi |
| fi |
| |
| SVN_CHECK_SWIG |
| |
| SVN_CHECK_CTYPESGEN |
| |
| dnl decide whether we want to link against the RA/FS libraries |
| AC_ARG_ENABLE(runtime-module-search, |
| AS_HELP_STRING([--enable-runtime-module-search], |
| [Turn on dynamic loading of RA/FS libraries]), |
| [ |
| if test "$enableval" = "yes"; then |
| use_dso=yes |
| if test "$svn_enable_shared" = "no"; then |
| AC_MSG_ERROR([--enable-runtime-module-search conflicts with --disable-shared]) |
| fi |
| AC_DEFINE(SVN_USE_DSO, 1, |
| [Defined if svn should try to load DSOs]) |
| fi |
| ]) |
| |
| if test "$svn_enable_shared" = "no" || test "$use_dso" != "yes"; then |
| ### We want ra_local first to handle the following scenario: |
| ### user has neon and db3 in /usr/local, and db4 in |
| ### /usr/local/BerkeleyDB.4.0. If libsvn_ra_neon.la comes before |
| ### libsvn_fs.la then libtool ends up linking libsvn_fs to the db3 |
| ### in /usr/local/lib |
| AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL, 1, |
| [Defined if libsvn_client should link against libsvn_ra_local]) |
| svn_ra_lib_deps="\$(RA_LOCAL_DEPS)" |
| svn_ra_lib_install_deps="install-ramod-lib" |
| svn_ra_lib_link="\$(RA_LOCAL_LINK)" |
| |
| AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_SVN, 1, |
| [Defined if libsvn_client should link against libsvn_ra_svn]) |
| svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SVN_DEPS)" |
| svn_ra_lib_link="$svn_ra_lib_link \$(RA_SVN_LINK)" |
| |
| if test "$svn_lib_neon" = "yes"; then |
| AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_NEON, 1, |
| [Defined if libsvn_client should link against libsvn_ra_neon]) |
| svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_NEON_DEPS)" |
| svn_ra_lib_install_deps="$svn_ra_lib_install_deps install-neon-lib" |
| svn_ra_lib_link="$svn_ra_lib_link \$(RA_NEON_LINK)" |
| fi |
| |
| if test "$svn_lib_serf" = "yes"; then |
| AC_DEFINE(SVN_LIBSVN_CLIENT_LINKS_RA_SERF, 1, |
| [Defined if libsvn_client should link against libsvn_ra_serf]) |
| svn_ra_lib_deps="$svn_ra_lib_deps \$(RA_SERF_DEPS)" |
| svn_ra_lib_install_deps="$svn_ra_lib_install_deps install-serf-lib" |
| svn_ra_lib_link="$svn_ra_lib_link \$(RA_SERF_LINK)" |
| fi |
| |
| SVN_RA_LIB_DEPS=$svn_ra_lib_deps |
| SVN_RA_LIB_INSTALL_DEPS=$svn_ra_lib_install_deps |
| SVN_RA_LIB_LINK=$svn_ra_lib_link |
| |
| AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_FS, 1, |
| [Defined if libsvn_fs should link against libsvn_fs_fs]) |
| svn_fs_lib_deps="\$(FS_FS_DEPS)" |
| svn_fs_lib_install_deps="install-fsmod-lib" |
| svn_fs_lib_link="\$(FS_FS_LINK)" |
| |
| if test "$svn_lib_berkeley_db" = "yes"; then |
| AC_DEFINE(SVN_LIBSVN_FS_LINKS_FS_BASE, 1, |
| [Defined if libsvn_fs should link against libsvn_fs_base]) |
| svn_fs_lib_deps="$svn_fs_lib_deps \$(FS_BASE_DEPS)" |
| svn_fs_lib_install_deps="$svn_fs_lib_install_deps install-bdb-lib" |
| svn_fs_lib_link="$svn_fs_lib_link \$(FS_BASE_LINK)" |
| fi |
| |
| SVN_FS_LIB_DEPS=$svn_fs_lib_deps |
| SVN_FS_LIB_INSTALL_DEPS=$svn_fs_lib_install_deps |
| SVN_FS_LIB_LINK=$svn_fs_lib_link |
| fi |
| |
| AC_SUBST(SVN_RA_LIB_DEPS) |
| AC_SUBST(SVN_RA_LIB_INSTALL_DEPS) |
| AC_SUBST(SVN_RA_LIB_LINK) |
| AC_SUBST(SVN_FS_LIB_DEPS) |
| AC_SUBST(SVN_FS_LIB_INSTALL_DEPS) |
| AC_SUBST(SVN_FS_LIB_LINK) |
| |
| # ==== JavaHL ================================================================ |
| |
| dnl Possibly compile JavaHL |
| do_javahl_build=no |
| AC_ARG_ENABLE(javahl, |
| AS_HELP_STRING([--enable-javahl], |
| [Enable compilation of Java high-level bindings (requires C++)]), |
| [ if test "$enableval" = "yes" ; then |
| do_javahl_build="yes" |
| fi |
| ]) |
| |
| JAVAHL_OBJDIR="" |
| INSTALL_EXTRA_JAVAHL_LIB="" |
| FIX_JAVAHL_LIB="" |
| JAVAHL_TESTS_TARGET="" |
| JAVAHL_COMPAT_TESTS_TARGET="" |
| LT_CXX_LIBADD="" |
| if test "$do_javahl_build" = "yes"; then |
| dnl Check for suitable JDK |
| if test "$JDK_SUITABLE" = "no"; then |
| AC_MSG_ERROR([Cannot compile JavaHL without a suitable JDK. |
| Please specify a suitable JDK using the --with-jdk option.]) |
| fi |
| |
| dnl The temporary directory where libtool compiles libsvnjavahl. |
| JAVAHL_OBJDIR='$(libsvnjavahl_PATH)/.libs' |
| |
| os_arch=`uname` |
| if test "$os_arch" = "Darwin"; then |
| dnl On Darwin, JNI libs must be installed as .jnilib |
| INSTALL_EXTRA_JAVAHL_LIB='ln -sf $(libdir)/libsvnjavahl-1.dylib $(libdir)/libsvnjavahl-1.jnilib' |
| FIX_JAVAHL_LIB="ln -sf libsvnjavahl-1.dylib $JAVAHL_OBJDIR/libsvnjavahl-1.jnilib" |
| fi |
| # This segment (and the rest of r10800) is very likely unnecessary |
| # with libtool 1.5, which automatically adds libstdc++ as a |
| # dependency to the C++ libraries it builds. So at some future time |
| # when autogen.sh requires libtool 1.5 or higher, we can get rid of |
| # it. |
| AC_MSG_CHECKING([for additional flags to link C++ libraries]) |
| if test "x$ac_compiler_gnu" = "xyes"; then |
| LT_CXX_LIBADD="-lstdc++" |
| AC_MSG_RESULT([$LT_CXX_LIBADD]) |
| else |
| AC_MSG_RESULT([none needed]) |
| fi |
| fi |
| AC_SUBST(INSTALL_EXTRA_JAVAHL_LIB) |
| AC_SUBST(JAVAHL_OBJDIR) |
| AC_SUBST(FIX_JAVAHL_LIB) |
| AC_SUBST(LT_CXX_LIBADD) |
| |
| AC_ARG_WITH(junit, |
| AS_HELP_STRING([--with-junit=PATH], |
| [Specify a path to the junit JAR file.]), |
| [ |
| if test "$withval" != "no"; then |
| if test -n "$JAVA_CLASSPATH"; then |
| JAVA_CLASSPATH="$withval:$JAVA_CLASSPATH" |
| else |
| JAVA_CLASSPATH="$withval" |
| fi |
| JAVAHL_TESTS_TARGET="javahl-tests" |
| JAVAHL_COMPAT_TESTS_TARGET="javahl-compat-tests" |
| fi |
| ]) |
| AC_SUBST(JAVA_CLASSPATH) |
| AC_SUBST(JAVAHL_TESTS_TARGET) |
| AC_SUBST(JAVAHL_COMPAT_TESTS_TARGET) |
| |
| # ==== Miscellaneous bits ==================================================== |
| |
| dnl Since this is used only on Unix-y systems, define the path separator as '/' |
| AC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/', |
| [Defined to be the path separator used on your local filesystem]) |
| |
| AC_DEFINE_UNQUOTED(SVN_NULL_DEVICE_NAME, "/dev/null", |
| [Defined to be the null device for the system]) |
| |
| DEFAULT_FS_TYPE="fsfs" |
| AC_DEFINE_UNQUOTED(DEFAULT_FS_TYPE, "$DEFAULT_FS_TYPE", |
| [The fs type to use by default]) |
| |
| DEFAULT_HTTP_LIBRARY="neon" |
| AC_DEFINE_UNQUOTED(DEFAULT_HTTP_LIBRARY, "$DEFAULT_HTTP_LIBRARY", |
| [The http library to use by default]) |
| |
| # BSD/OS (BSDi) needs to use a different include syntax in Makefile |
| INCLUDE_OUTPUTS="include \$(top_srcdir)/build-outputs.mk" |
| case "$host" in |
| *bsdi*) |
| # Check whether they've installed GNU make |
| if ! make --version > /dev/null 2>&1; then |
| # BSDi make |
| INCLUDE_OUTPUTS=".include \"\$(top_srcdir)/build-outputs.mk\"" |
| fi |
| ;; |
| esac |
| AC_SUBST(INCLUDE_OUTPUTS) |
| |
| # ==== Detection complete - output and run config.status ===================== |
| |
| AC_CONFIG_HEADERS(subversion/svn_private_config.h.tmp:subversion/svn_private_config.h.in) |
| AC_CONFIG_COMMANDS([svn_private_config.h.tmp], |
| [svn_cf=subversion/svn_private_config.h; |
| $SED -e "s/@SVN_DB_HEADER@/$SVN_DB_HEADER/" $svn_cf.tmp > $svn_cf.tmp.new |
| cmp -s $svn_cf.tmp.new $svn_cf || mv -f $svn_cf.tmp.new $svn_cf |
| rm -f $svn_cf.tmp.new $svn_cf.tmp], |
| [SED="$SED" |
| SVN_DB_HEADER="$SVN_DB_HEADER"]) |
| AC_CONFIG_FILES([Makefile]) |
| |
| SVN_CONFIG_SCRIPT(tools/backup/hot-backup.py) |
| SVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl) |
| SVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL) |
| if test -e packages/solaris/pkginfo.in; then |
| SVN_CONFIG_SCRIPT(packages/solaris/pkginfo) |
| fi |
| AC_SUBST(SVN_CONFIG_SCRIPT_FILES) |
| |
| # Ensure that SWIG is checked after reconfiguration. |
| rm -f .swig_checked |
| |
| AC_OUTPUT |
| |
| # ==== Print final messages to user ========================================== |
| |
| dnl Configure is long - users tend to miss warnings printed during it. |
| dnl Hence, print a warnings about what we did and didn't configure at the |
| dnl end, where people will actually see them. |
| |
| if test "$svn_lib_berkeley_db" = "no" && test "$with_berkeley_db" != "no"; then |
| db_version="$SVN_FS_WANT_DB_MAJOR.$SVN_FS_WANT_DB_MINOR.$SVN_FS_WANT_DB_PATCH" |
| AC_MSG_WARN([we have configured without BDB filesystem support |
| |
| |
| You don't seem to have Berkeley DB version $db_version or newer |
| installed and linked to APR-UTIL. We have created Makefile which will build |
| Subversion without support for the Berkeley DB back-end. You can find the |
| latest version of Berkeley DB here: |
| http://www.oracle.com/technology/software/products/berkeley-db/index.html |
| ]) |
| fi |