summaryrefslogtreecommitdiff
path: root/build/ac-macros
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-08-05 16:22:51 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-08-05 16:22:51 +0000
commitcf46733632c7279a9fd0fe6ce26f9185a4ae82a9 (patch)
treeda27775a2161723ef342e91af41a8b51fedef405 /build/ac-macros
parentbb0ef45f7c46b0ae221b26265ef98a768c33f820 (diff)
downloadsubversion-tarball-master.tar.gz
Diffstat (limited to 'build/ac-macros')
-rw-r--r--build/ac-macros/apache.m4104
-rw-r--r--build/ac-macros/apr.m42
-rw-r--r--build/ac-macros/compiler.m456
-rw-r--r--build/ac-macros/java.m415
-rw-r--r--build/ac-macros/kwallet.m4117
-rw-r--r--build/ac-macros/serf.m449
-rw-r--r--build/ac-macros/swig.m42
-rw-r--r--build/ac-macros/zlib.m486
8 files changed, 286 insertions, 145 deletions
diff --git a/build/ac-macros/apache.m4 b/build/ac-macros/apache.m4
index 610d956..8146425 100644
--- a/build/ac-macros/apache.m4
+++ b/build/ac-macros/apache.m4
@@ -89,6 +89,33 @@ else
AC_MSG_RESULT(no)
fi
+# check for some busted versions of mod_dav
+# in particular 2.2.25, 2.4.5, and 2.4.6 had the following bugs which are
+# troublesome for Subversion:
+# PR 55304: https://issues.apache.org/bugzilla/show_bug.cgi?id=55304
+# PR 55306: https://issues.apache.org/bugzilla/show_bug.cgi?id=55306
+# PR 55397: https://issues.apache.org/bugzilla/show_bug.cgi?id=55397
+if test -n "$APXS" && test "$APXS" != "no"; then
+ AC_MSG_CHECKING([mod_dav version])
+ HTTPD_MAJOR=`$SED -ne '/^#define AP_SERVER_MAJORVERSION_NUMBER/p' "$APXS_INCLUDE/ap_release.h" | $SED -e 's/^.*NUMBER *//'`
+ HTTPD_MINOR=`$SED -ne '/^#define AP_SERVER_MINORVERSION_NUMBER/p' "$APXS_INCLUDE/ap_release.h" | $SED -e 's/^.*NUMBER *//'`
+ HTTPD_PATCH=`$SED -ne '/^#define AP_SERVER_PATCHLEVEL_NUMBER/p' "$APXS_INCLUDE/ap_release.h" | $SED -e 's/^.*NUMBER *//'`
+ HTTPD_VERSION="${HTTPD_MAJOR}.${HTTPD_MINOR}.${HTTPD_PATCH}"
+ case "$HTTPD_VERSION" in
+ 2.2.25 | 2.4.[[5-6]])
+ AC_MSG_RESULT([broken])
+ AC_MSG_ERROR([Apache httpd version $HTTPD_VERSION includes a broken mod_dav; use a newer version of httpd])
+ ;;
+ 2.[[0-9]]*.[[0-9]]*)
+ AC_MSG_RESULT([acceptable])
+ ;;
+ *)
+ AC_MSG_RESULT([unrecognised])
+ AC_MSG_ERROR([Apache httpd version $HTTPD_VERSION not recognised])
+ ;;
+ esac
+fi
+
if test -n "$APXS" && test "$APXS" != "no"; then
AC_MSG_CHECKING([whether Apache version is compatible with APR version])
apr_major_version="${apr_version%%.*}"
@@ -106,37 +133,15 @@ if test -n "$APXS" && test "$APXS" != "no"; then
AC_MSG_ERROR([unknown APR version])
;;
esac
- old_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
- AC_EGREP_CPP([apache_minor_version= *\"$apache_minor_version_wanted_regex\"],
- [
-#include "$APXS_INCLUDE/ap_release.h"
-apache_minor_version=AP_SERVER_MINORVERSION],
- [AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])
- AC_MSG_ERROR([Apache version incompatible with APR version])])
- CPPFLAGS="$old_CPPFLAGS"
-fi
-
-# check for some busted versions of mod_dav
-# in particular 2.2.25, 2.4.5, and 2.4.6 had the following bugs which are
-# troublesome for Subversion:
-# PR 55304: https://issues.apache.org/bugzilla/show_bug.cgi?id=55304
-# PR 55306: https://issues.apache.org/bugzilla/show_bug.cgi?id=55306
-# PR 55397: https://issues.apache.org/bugzilla/show_bug.cgi?id=55397
-if test -n "$APXS" && test "$APXS" != "no"; then
- AC_MSG_CHECKING([mod_dav version])
- old_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
- blacklisted_versions_regex=["\"2\" \"\.\" (\"2\" \"\.\" \"25\"|\"4\" \"\.\" \"[56]\")"]
- AC_EGREP_CPP([apache_version= *$blacklisted_versions_regex],
- [
-#include "$APXS_INCLUDE/ap_release.h"
-apache_version=AP_SERVER_BASEREVISION],
- [AC_MSG_RESULT([broken])
- AC_MSG_ERROR([Apache httpd version includes a broken mod_dav; use a newer version of httpd])],
- [AC_MSG_RESULT([acceptable])])
- CPPFLAGS="$old_CPPFLAGS"
+ case $HTTPD_MINOR in
+ $apache_minor_version_wanted_regex)
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([Apache version $HTTPD_VERSION incompatible with APR version $apr_version])
+ ;;
+ esac
fi
AC_ARG_WITH(apache-libexecdir,
@@ -157,10 +162,44 @@ if test -n "$APXS" && test "$APXS" != "no"; then
APACHE_LIBEXECDIR="`$APXS -q libexecdir`"
fi
+ AC_CHECK_HEADERS(unistd.h, [AC_CHECK_FUNCS(getpid)], [])
+
+ MMN_MAJOR=`$SED -ne '/^#define MODULE_MAGIC_NUMBER_MAJOR/p' "$APXS_INCLUDE/ap_mmn.h" | $SED -e 's/^.*MAJOR *//'`
+ MMN_MINOR=`$SED -ne '/^#define MODULE_MAGIC_NUMBER_MINOR/p' "$APXS_INCLUDE/ap_mmn.h" | $SED -e 's/^.*MINOR *//' | $SED -e 's/ .*//'`
+ if test "$MMN_MAJOR" = "20120211" && test "$MMN_MINOR" -lt "47" ; then
+ # This is httpd 2.4 and it doesn't appear to have the required
+ # API but the installation may have been patched.
+ AC_ARG_ENABLE(broken-httpd-auth,
+ AS_HELP_STRING([--enable-broken-httpd-auth],
+ [Force build against httpd 2.4 with broken auth]),
+ [broken_httpd_auth=$enableval],[broken_httpd_auth=no])
+ AC_MSG_CHECKING([for ap_some_authn_required])
+ old_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $APACHE_INCLUDES $SVN_APR_INCLUDES"
+ AC_EGREP_CPP([int.*\sap_some_authn_required\s*\(],
+ [#include "http_request.h"],
+ [AC_MSG_RESULT([yes])
+ working_auth=yes],
+ [AC_MSG_RESULT([no])])
+ CPPFLAGS="$old_CPPFLAGS"
+ if test "$working_auth" = "yes" ; then
+ AC_DEFINE(SVN_USE_FORCE_AUTHN, 1,
+ [Defined to build with patched httpd 2.4 and working auth])
+ elif test "$enable_broken_httpd_auth" = "yes"; then
+ AC_MSG_WARN([==============================================])
+ AC_MSG_WARN([Apache httpd $HTTPD_VERSION MMN $MMN_MAJOR.$MMN_MINOR])
+ AC_MSG_WARN([Subversion will be vulnerable to CVE-2015-3184])
+ AC_MSG_WARN([==============================================])
+ AC_DEFINE(SVN_ALLOW_BROKEN_HTTPD_AUTH, 1,
+ [Defined to build against httpd 2.4 with broken auth])
+ else
+ AC_MSG_ERROR([Apache httpd $HTTPD_VERSION MMN $MMN_MAJOR.$MMN_MINOR has broken auth (CVE-2015-3184)])
+ fi
+ fi
+
BUILD_APACHE_RULE=apache-mod
INSTALL_APACHE_RULE=install-mods-shared
INSTALL_APACHE_MODS=true
-
case $host in
*-*-cygwin*)
APACHE_LDFLAGS="-shrext .so"
@@ -178,6 +217,7 @@ AC_SUBST(APACHE_LDFLAGS)
AC_SUBST(APACHE_INCLUDES)
AC_SUBST(APACHE_LIBEXECDIR)
AC_SUBST(INSTALL_APACHE_MODS)
+AC_SUBST(HTTPD_VERSION)
# there aren't any flags that interest us ...
#if test -n "$APXS" && test "$APXS" != "no"; then
diff --git a/build/ac-macros/apr.m4 b/build/ac-macros/apr.m4
index 49774ba..7054a6e 100644
--- a/build/ac-macros/apr.m4
+++ b/build/ac-macros/apr.m4
@@ -32,7 +32,7 @@ AC_DEFUN(SVN_LIB_APR,
AC_MSG_NOTICE([Apache Portable Runtime (APR) library configuration])
- APR_FIND_APR("", "", 1, [1 0])
+ APR_FIND_APR("", "", 1, [2 1 0])
if test $apr_found = "no"; then
AC_MSG_WARN([APR not found])
diff --git a/build/ac-macros/compiler.m4 b/build/ac-macros/compiler.m4
index 117bc18..98d9539 100644
--- a/build/ac-macros/compiler.m4
+++ b/build/ac-macros/compiler.m4
@@ -61,21 +61,36 @@ AC_DEFUN([SVN_CC_MODE_SETUP],
CFLAGS_KEEP="$CFLAGS"
CFLAGS=""
- dnl Find flags to force C90 mode
- dnl gcc and clang
- SVN_CFLAGS_ADD_IFELSE([-std=c90],[],[
- SVN_CFLAGS_ADD_IFELSE([-std=c89],[],[
- SVN_CFLAGS_ADD_IFELSE([-ansi])
+ if test "$GCC" = "yes"; then
+ dnl Find flags to force C90 mode
+ dnl gcc and clang
+ SVN_CFLAGS_ADD_IFELSE([-std=c90],[],[
+ SVN_CFLAGS_ADD_IFELSE([-std=c89],[],[
+ SVN_CFLAGS_ADD_IFELSE([-ansi])
+ ])
])
- ])
+ fi
CMODEFLAGS="$CFLAGS"
+ CFLAGS=""
+
+ if test "$GCC" = "yes"; then
+ dnl Find flags to silence all warnings
+ SVN_CFLAGS_ADD_IFELSE([-w])
+ fi
+
+ CNOWARNFLAGS="$CFLAGS"
CFLAGS="$CFLAGS_KEEP"
+
AC_SUBST(CMODEFLAGS)
+ AC_SUBST(CNOWARNFLAGS)
AC_SUBST(CMAINTAINERFLAGS)
+ AC_SUBST(CUSERFLAGS)
- dnl Tell clang to not accept unknown warning flags
- SVN_CFLAGS_ADD_IFELSE([-Werror=unknown-warning-option])
+ if test "$GCC" = "yes"; then
+ dnl Tell clang to not accept unknown warning flags
+ SVN_CFLAGS_ADD_IFELSE([-Werror=unknown-warning-option])
+ fi
])
@@ -84,15 +99,30 @@ AC_DEFUN([SVN_CXX_MODE_SETUP],
CXXFLAGS_KEEP="$CXXFLAGS"
CXXFLAGS=""
- dnl Find flags to force C++98 mode
- dnl g++ and clang++
- SVN_CXXFLAGS_ADD_IFELSE([-std=c++98])
+ if test "$GXX" = "yes"; then
+ dnl Find flags to force C++98 mode
+ dnl g++ and clang++
+ SVN_CXXFLAGS_ADD_IFELSE([-std=c++98])
+ fi
CXXMODEFLAGS="$CXXFLAGS"
+ CXXFLAGS=""
+
+ if test "$GXX" = "yes"; then
+ dnl Find flags to silence all warnings
+ SVN_CXXFLAGS_ADD_IFELSE([-w])
+ fi
+
+ CXXNOWARNFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS_KEEP"
+
AC_SUBST(CXXMODEFLAGS)
+ AC_SUBST(CXXNOWARNFLAGS)
AC_SUBST(CXXMAINTAINERFLAGS)
+ AC_SUBST(CXXUSERFLAGS)
- dnl Tell clang++ to not accept unknown warning flags
- SVN_CXXFLAGS_ADD_IFELSE([-Werror=unknown-warning-option])
+ if test "$GXX" = "yes"; then
+ dnl Tell clang++ to not accept unknown warning flags
+ SVN_CXXFLAGS_ADD_IFELSE([-Werror=unknown-warning-option])
+ fi
])
diff --git a/build/ac-macros/java.m4 b/build/ac-macros/java.m4
index 9ef4015..a45cee9 100644
--- a/build/ac-macros/java.m4
+++ b/build/ac-macros/java.m4
@@ -62,10 +62,13 @@ AC_DEFUN(SVN_FIND_JDK,
JDK_SUITABLE=no
AC_MSG_CHECKING([for JDK])
if test $where = check; then
- dnl Prefer /Library/Java/Home first to try to be nice on Darwin.
- dnl We'll correct later if we get caught in the tangled web of JAVA_HOME.
+ dnl Prefer /usr/libexec/java_home, then /Library/Java/Home first
+ dnl to try to be nice on Darwin. We'll correct later if we get
+ dnl caught in the tangled web of JAVA_HOME.
if test -x "$JAVA_HOME/bin/java"; then
JDK="$JAVA_HOME"
+ elif test -x "/usr/libexec/java_home"; then
+ JDK=`/usr/libexec/java_home`
elif test -x "/Library/Java/Home/bin/java"; then
JDK="/Library/Java/Home"
elif test -x "/usr/bin/java"; then
@@ -190,9 +193,12 @@ AC_DEFUN(SVN_FIND_JDK,
# The release for "-source" could actually be greater than that
# of "-target", if we want to cross-compile for lesser JVMs.
if test -z "$JAVAC_FLAGS"; then
- JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.5"
+ JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
if test "$enable_debugging" = "yes"; then
- JAVAC_FLAGS="-g -Xlint:unchecked $JAVAC_FLAGS"
+ JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
+ if test -z "$JAVAC_COMPAT_FLAGS"; then
+ JAVAC_COMPAT_FLAGS="$JAVAC_FLAGS -Xlint:-unchecked -Xlint:-deprecation -Xlint:-dep-ann -Xlint:-rawtypes"
+ fi
fi
fi
@@ -208,6 +214,7 @@ AC_DEFUN(SVN_FIND_JDK,
AC_SUBST(JAVA)
AC_SUBST(JAVAC)
AC_SUBST(JAVAC_FLAGS)
+ AC_SUBST(JAVAC_COMPAT_FLAGS)
AC_SUBST(JAVADOC)
AC_SUBST(JAVAH)
AC_SUBST(JAR)
diff --git a/build/ac-macros/kwallet.m4 b/build/ac-macros/kwallet.m4
index 0f0f6ac..2e2638a 100644
--- a/build/ac-macros/kwallet.m4
+++ b/build/ac-macros/kwallet.m4
@@ -33,78 +33,85 @@ AC_DEFUN(SVN_LIB_KWALLET,
AC_MSG_CHECKING([whether to look for KWallet])
if test "$svn_lib_kwallet" != "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
- if test "$HAVE_DBUS" = "yes"; then
- AC_MSG_CHECKING([for QtCore, QtDBus, QtGui])
- if $PKG_CONFIG --exists QtCore QtDBus QtGui; then
- AC_MSG_RESULT([yes])
- if test "$svn_lib_kwallet" != "yes"; then
- AC_MSG_CHECKING([for kde4-config])
- KDE4_CONFIG="$svn_lib_kwallet/bin/kde4-config"
- if test -f "$KDE4_CONFIG" && test -x "$KDE4_CONFIG"; then
- AC_MSG_RESULT([yes])
+ case "$host" in
+ *-*-darwin*)
+ AC_MSG_ERROR([--with-kwallet is not supported on Mac OS X.])
+ ;;
+ *)
+ if test "$svn_enable_shared" = "yes"; then
+ if test "$APR_HAS_DSO" = "yes"; then
+ if test -n "$PKG_CONFIG"; then
+ if test "$HAVE_DBUS" = "yes"; then
+ AC_MSG_CHECKING([for QtCore, QtDBus, QtGui])
+ if $PKG_CONFIG --exists QtCore QtDBus QtGui; then
+ AC_MSG_RESULT([yes])
+ if test "$svn_lib_kwallet" != "yes"; then
+ AC_MSG_CHECKING([for kde4-config])
+ KDE4_CONFIG="$svn_lib_kwallet/bin/kde4-config"
+ if test -f "$KDE4_CONFIG" && test -x "$KDE4_CONFIG"; then
+ AC_MSG_RESULT([yes])
+ else
+ KDE4_CONFIG=""
+ AC_MSG_RESULT([no])
+ fi
else
- KDE4_CONFIG=""
- AC_MSG_RESULT([no])
+ AC_PATH_PROG(KDE4_CONFIG, kde4-config)
fi
- else
- AC_PATH_PROG(KDE4_CONFIG, kde4-config)
- fi
- if test -n "$KDE4_CONFIG"; then
- AC_MSG_CHECKING([for KWallet])
- old_CXXFLAGS="$CXXFLAGS"
- old_LDFLAGS="$LDFLAGS"
- old_LIBS="$LIBS"
- for d in [`$PKG_CONFIG --cflags QtCore QtDBus QtGui`]; do
- if test -n ["`echo "$d" | $EGREP -- '^-D[^[:space:]]*'`"]; then
- CPPFLAGS="$CPPFLAGS $d"
- fi
- done
- qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
- kde_dir="`$KDE4_CONFIG --prefix`"
- SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_dir/include"
- qt_libs_other_options="`$PKG_CONFIG --libs-only-other QtCore QtDBus QtGui`"
- SVN_KWALLET_LIBS="$DBUS_LIBS -lQtCore -lQtDBus -lQtGui -lkdecore -lkdeui $qt_libs_other_options"
- CXXFLAGS="$CXXFLAGS $SVN_KWALLET_INCLUDES"
- LIBS="$LIBS $SVN_KWALLET_LIBS"
- qt_lib_dirs="`$PKG_CONFIG --libs-only-L QtCore QtDBus QtGui`"
- kde_lib_suffix="`$KDE4_CONFIG --libsuffix`"
- LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs -L$kde_dir/lib$kde_lib_suffix)`"
- AC_LANG(C++)
- AC_LINK_IFELSE([AC_LANG_SOURCE([[
+ if test -n "$KDE4_CONFIG"; then
+ AC_MSG_CHECKING([for KWallet])
+ old_CXXFLAGS="$CXXFLAGS"
+ old_LDFLAGS="$LDFLAGS"
+ old_LIBS="$LIBS"
+ for d in [`$PKG_CONFIG --cflags QtCore QtDBus QtGui`]; do
+ if test -n ["`echo "$d" | $EGREP -- '^-D[^[:space:]]*'`"]; then
+ CPPFLAGS="$CPPFLAGS $d"
+ fi
+ done
+ qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
+ kde_incdir="`$KDE4_CONFIG --install include`"
+ SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_incdir"
+ qt_libs_other_options="`$PKG_CONFIG --libs-only-other QtCore QtDBus QtGui`"
+ SVN_KWALLET_LIBS="$DBUS_LIBS -lQtCore -lQtDBus -lQtGui -lkdecore -lkdeui $qt_libs_other_options"
+ CXXFLAGS="$CXXFLAGS $SVN_KWALLET_INCLUDES"
+ LIBS="$LIBS $SVN_KWALLET_LIBS"
+ qt_lib_dirs="`$PKG_CONFIG --libs-only-L QtCore QtDBus QtGui`"
+ kde_libdir="`$KDE4_CONFIG --install lib`"
+ LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs -L$kde_libdir)`"
+ AC_LANG(C++)
+ AC_LINK_IFELSE([AC_LANG_SOURCE([[
#include <kwallet.h>
int main()
{KWallet::Wallet::walletList();}]])], svn_lib_kwallet="yes", svn_lib_kwallet="no")
- AC_LANG(C)
- if test "$svn_lib_kwallet" = "yes"; then
- AC_MSG_RESULT([yes])
- CXXFLAGS="$old_CXXFLAGS"
- LIBS="$old_LIBS"
+ AC_LANG(C)
+ if test "$svn_lib_kwallet" = "yes"; then
+ AC_MSG_RESULT([yes])
+ CXXFLAGS="$old_CXXFLAGS"
+ LIBS="$old_LIBS"
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([cannot find KWallet])
+ fi
else
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([cannot find KWallet])
+ AC_MSG_ERROR([cannot find kde4-config])
fi
else
- AC_MSG_ERROR([cannot find kde4-config])
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([cannot find QtCore, QtDBus, QtGui])
fi
else
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([cannot find QtCore, QtDBus, QtGui])
+ AC_MSG_ERROR([cannot find D-Bus])
fi
else
- AC_MSG_ERROR([cannot find D-Bus])
+ AC_MSG_ERROR([cannot find pkg-config])
fi
else
- AC_MSG_ERROR([cannot find pkg-config])
+ AC_MSG_ERROR([APR does not have support for DSOs])
fi
else
- AC_MSG_ERROR([APR does not have support for DSOs])
+ AC_MSG_ERROR([--with-kwallet conflicts with --disable-shared])
fi
- else
- AC_MSG_ERROR([--with-kwallet conflicts with --disable-shared])
- fi
+ ;;
+ esac
else
AC_MSG_RESULT([no])
fi
diff --git a/build/ac-macros/serf.m4 b/build/ac-macros/serf.m4
index ae11e75..902e648 100644
--- a/build/ac-macros/serf.m4
+++ b/build/ac-macros/serf.m4
@@ -29,8 +29,14 @@ dnl performed with pkg-config. If --with-serf=yes was actually passed
dnl then we error if we can't actually find serf.
dnl
dnl If a --with-serf=PREFIX option is passed search for a suitable
-dnl serf installed on the system under that PREFIX. We will
-dnl error if we can't find serf.
+dnl serf installed on the system under that PREFIX. First we will
+dnl try to find a pc file for serf under the prefix or directly
+dnl in the prefix (allowing the path that the serf-?.pc file to be
+dnl passed to configure if the pc file is in a non-standard location)
+dnl and then use pkg-config to determine the options to use that library.
+dnl If pkg-confg can't provide us the options to use that library fall
+dnl back on trying to use the guess the options based on just the prefix.
+dnl We will error if we can't find serf.
dnl
dnl If a --with-serf=no option is passed then no search will be
dnl conducted.
@@ -58,13 +64,15 @@ AC_DEFUN(SVN_LIB_SERF,
elif test "$withval" = "no" ; then
serf_skip=yes
else
- SVN_SERF_PREFIX_CONFIG()
+ serf_required=yes
+ serf_prefix="$withval"
fi
])
if test "$serf_skip" = "no" ; then
- if test "$serf_found" = "no" ; then
- SVN_SERF_PKG_CONFIG()
+ SVN_SERF_PKG_CONFIG()
+ if test -n "$serf_prefix" && test "$serf_found" = "no" ; then
+ SVN_SERF_PREFIX_CONFIG()
fi
AC_MSG_CHECKING([was serf enabled])
@@ -91,7 +99,6 @@ AC_DEFUN(SVN_SERF_PREFIX_CONFIG,
[
AC_MSG_NOTICE([serf library configuration via prefix])
serf_required=yes
- serf_prefix=$withval
for serf_major in serf-2 serf-1; do
if ! test -d $serf_prefix/include/$serf_major; then continue; fi
save_cppflags="$CPPFLAGS"
@@ -134,17 +141,37 @@ AC_DEFUN(SVN_SERF_PKG_CONFIG,
if test -n "$PKG_CONFIG"; then
for serf_major in serf-2 serf-1; do
AC_MSG_CHECKING([for $serf_major library])
- if $PKG_CONFIG $serf_major --exists; then
+ if test -n "$serf_prefix" ; then
+ dnl User provided a prefix so we try to find the pc file under
+ dnl the prefix. PKG_CONFIG_PATH isn't useful for this because
+ dnl we want to make sure that we get the library in the prefix
+ dnl the user specifies and we want to allow the prefix path to
+ dnl point at the path for the pc file is in (if it's in some
+ dnl other path than $serf_prefx/lib/pkgconfig).
+ if test -e "$serf_prefix/$serf_major.pc" ; then
+ serf_pc_arg="$serf_prefix/$serf_major.pc"
+ elif test -e "$serf_prefix/lib/pkgconfig/$serf_major.pc" ; then
+ serf_pc_arg="$serf_prefix/lib/pkgconfig/$serf_major.pc"
+ else
+ AC_MSG_RESULT([no])
+ continue
+ fi
+ else
+ serf_pc_arg="$serf_major"
+ fi
+ if $PKG_CONFIG $serf_pc_arg --exists; then
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([serf library version])
- SERF_VERSION=`$PKG_CONFIG $serf_major --modversion`
+ SERF_VERSION=`$PKG_CONFIG $serf_pc_arg --modversion`
AC_MSG_RESULT([$SERF_VERSION])
AC_MSG_CHECKING([serf version is suitable])
- if $PKG_CONFIG $serf_major --atleast-version=$serf_check_version; then
+ if $PKG_CONFIG $serf_pc_arg --atleast-version=$serf_check_version; then
AC_MSG_RESULT([yes])
serf_found=yes
- SVN_SERF_INCLUDES=[`$PKG_CONFIG $serf_major --cflags | $SED -e 's/-D[^ ]*//g'`]
- SVN_SERF_LIBS=`$PKG_CONFIG $serf_major --libs`
+ SVN_SERF_INCLUDES=[`$PKG_CONFIG $serf_pc_arg --cflags | $SED -e 's/-D[^ ]*//g'`]
+ SVN_SERF_LIBS=`$PKG_CONFIG $serf_pc_arg --libs-only-l`
+ dnl don't use --libs-only-L because then we might miss some options
+ LDFLAGS=["$LDFLAGS `$PKG_CONFIG $serf_pc_arg --libs | $SED -e 's/-l[^ ]*//g'`"]
break
else
AC_MSG_RESULT([no])
diff --git a/build/ac-macros/swig.m4 b/build/ac-macros/swig.m4
index b7fec72..ae6cf10 100644
--- a/build/ac-macros/swig.m4
+++ b/build/ac-macros/swig.m4
@@ -97,7 +97,7 @@ AC_DEFUN(SVN_FIND_SWIG,
else
SWIG_SUITABLE=no
AC_MSG_WARN([Detected SWIG version $SWIG_VERSION_RAW])
- AC_MSG_WARN([Subversion requires SWIG 1.3.24 or later])
+ AC_MSG_WARN([Subversion requires SWIG >= 1.3.24])
fi
fi
diff --git a/build/ac-macros/zlib.m4 b/build/ac-macros/zlib.m4
index e6ad31c..978fb39 100644
--- a/build/ac-macros/zlib.m4
+++ b/build/ac-macros/zlib.m4
@@ -26,47 +26,77 @@ dnl
AC_DEFUN(SVN_LIB_Z,
[
zlib_found=no
+ zlib_skip=no
AC_ARG_WITH(zlib,AS_HELP_STRING([--with-zlib=PREFIX],
[zlib compression library]),
[
- if test "$withval" = "yes" ; then
- AC_CHECK_HEADER(zlib.h, [
- AC_CHECK_LIB(z, inflate, [zlib_found="builtin"])
- ])
- elif test "$withval" = "no" ; then
- AC_MSG_ERROR([cannot compile without zlib.])
+ if test "$withval" = "yes"; then
+ zlib_skip=no
+ elif test "$withval" = "no"; then
+ zlib_skip=yes
else
- AC_MSG_NOTICE([zlib library configuration])
- zlib_prefix=$withval
- save_cppflags="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -I$zlib_prefix/include"
- AC_CHECK_HEADERS(zlib.h,[
- save_ldflags="$LDFLAGS"
- LDFLAGS="$LDFLAGS -L$zlib_prefix/lib"
- AC_CHECK_LIB(z, inflate, [zlib_found="yes"])
- LDFLAGS="$save_ldflags"
- ])
- CPPFLAGS="$save_cppflags"
+ zlib_skip=no
+ zlib_prefix="$withval"
fi
- ],
- [
- AC_CHECK_HEADER(zlib.h, [
- AC_CHECK_LIB(z, inflate, [zlib_found="builtin"])
- ])
])
- if test "$zlib_found" = "no"; then
+ if test "$zlib_skip" = "yes"; then
AC_MSG_ERROR([subversion requires zlib])
fi
- if test "$zlib_found" = "yes"; then
- SVN_ZLIB_INCLUDES="-I$zlib_prefix/include"
- LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$zlib_prefix/lib)`"
- fi
+ if test -n "$zlib_prefix"; then
+ AC_MSG_NOTICE([zlib library configuration via prefix])
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -I$zlib_prefix/include"
+ AC_CHECK_HEADERS(zlib.h,[
+ save_ldflags="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -L$zlib_prefix/lib"
+ AC_CHECK_LIB(z, inflate, [
+ zlib_found="yes"
+ SVN_ZLIB_INCLUDES="-I$zlib_prefix/include"
+ SVN_ZLIB_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS(-L$zlib_prefix/lib)` -lz"
+ ])
+ LDFLAGS="$save_ldflags"
+ ])
+ CPPFLAGS="$save_cppflags"
+ else
+ SVN_ZLIB_PKG_CONFIG()
- SVN_ZLIB_LIBS="-lz"
+ if test "$zlib_found" = "no"; then
+ AC_MSG_NOTICE([zlib library configuration])
+ AC_CHECK_HEADER(zlib.h, [
+ AC_CHECK_LIB(z, inflate, [
+ zlib_found="builtin"
+ SVN_ZLIB_LIBS="-lz"
+ ])
+ ])
+ fi
+ fi
+
+ if test "$zlib_found" = "no"; then
+ AC_MSG_ERROR([subversion requires zlib])
+ fi
AC_SUBST(SVN_ZLIB_INCLUDES)
AC_SUBST(SVN_ZLIB_LIBS)
])
+
+dnl SVN_ZLIB_PKG_CONFIG()
+dnl Use pkg-config to try and detect and configure zlib
+AC_DEFUN(SVN_ZLIB_PKG_CONFIG,
+[
+ AC_MSG_NOTICE([zlib library configuration via pkg-config])
+ if test -n "$PKG_CONFIG"; then
+ AC_MSG_CHECKING([for zlib library])
+ if $PKG_CONFIG zlib --exists; then
+ AC_MSG_RESULT([yes])
+ zlib_found=yes
+ SVN_ZLIB_INCLUDES=`$PKG_CONFIG zlib --cflags`
+ SVN_ZLIB_LIBS=`$PKG_CONFIG zlib --libs`
+ SVN_ZLIB_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($SVN_ZLIB_LIBS)`"
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+])