summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-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
-rwxr-xr-xbuild/buildcheck.sh7
-rwxr-xr-xbuild/config.guess15
-rwxr-xr-xbuild/config.sub12
-rwxr-xr-xbuild/find_python.sh4
-rwxr-xr-xbuild/generator/extractor.py7
-rw-r--r--build/generator/gen_base.py222
-rw-r--r--build/generator/gen_make.py92
-rw-r--r--build/generator/gen_msvc_dsp.py9
-rw-r--r--build/generator/gen_vcnet_vcproj.py20
-rw-r--r--build/generator/gen_win.py1245
-rw-r--r--build/generator/gen_win_dependencies.py1465
-rw-r--r--build/generator/swig/__init__.py17
-rwxr-xr-xbuild/generator/swig/external_runtime.py33
-rw-r--r--build/generator/templates/build-outputs.mk.ezt16
-rw-r--r--build/generator/templates/build_locale.ezt2
-rw-r--r--build/generator/templates/build_zlib.ezt134
-rw-r--r--build/generator/templates/msvc_dsp.ezt4
-rw-r--r--build/generator/templates/pkg-config.in.ezt12
-rw-r--r--build/generator/templates/serf.dsp.ezt96
-rw-r--r--build/generator/templates/serf.vcproj.ezt85
-rw-r--r--build/generator/templates/serf.vcxproj.ezt65
-rw-r--r--build/generator/templates/vcnet_vcproj.ezt30
-rw-r--r--build/generator/templates/vcnet_vcxproj.ezt53
-rw-r--r--build/generator/templates/zlib.dsp.ezt99
-rw-r--r--build/generator/templates/zlib.vcproj.ezt85
-rw-r--r--build/generator/templates/zlib.vcxproj.ezt64
-rwxr-xr-xbuild/getversion.py13
-rw-r--r--build/libtool.m4534
-rw-r--r--build/ltmain.sh143
-rw-r--r--build/ltoptions.m457
-rw-r--r--build/ltsugar.m42
-rw-r--r--build/ltversion.m412
-rw-r--r--build/lt~obsolete.m42
-rwxr-xr-xbuild/run_tests.py556
-rwxr-xr-xbuild/transform_libtool_scripts.sh138
-rwxr-xr-xbuild/transform_sql.py12
-rw-r--r--build/win32/svn.rc4
45 files changed, 3492 insertions, 2305 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
+])
diff --git a/build/buildcheck.sh b/build/buildcheck.sh
index 6053e58..9b0eb18 100755
--- a/build/buildcheck.sh
+++ b/build/buildcheck.sh
@@ -97,14 +97,15 @@ else
esac
fi
-libtool=${LIBTOOL:-`./build/PrintPath glibtool libtool libtool15`}
+# Much like APR except we do not prefer libtool 1 over libtool 2.
+libtoolize=${LIBTOOLIZE:-`./build/PrintPath glibtoolize libtoolize glibtoolize1 libtoolize15 libtoolize14`}
# Extract the libtool version number: everything from the first number in
# the version text until a hyphen or space.
-lt_pversion=`$libtool --version 2>/dev/null |
+lt_pversion=`$libtoolize --version 2>/dev/null |
sed -e 's/^[^0-9]*//' -e 's/[- ].*//' -e '/^$/d' |
sed -e 1q`
if test -z "$lt_pversion"; then
- echo "buildcheck: libtool not found."
+ echo "buildcheck: libtoolize not found."
echo " You need libtool version $LIBTOOL_WANTED_VERSION or newer installed"
exit 1
fi
diff --git a/build/config.guess b/build/config.guess
index 1f5c50c..dbfb978 100755
--- a/build/config.guess
+++ b/build/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2014 Free Software Foundation, Inc.
+# Copyright 1992-2015 Free Software Foundation, Inc.
-timestamp='2014-03-23'
+timestamp='2015-01-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -24,12 +24,12 @@ timestamp='2014-03-23'
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
-# Originally written by Per Bothner.
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
#
-# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+# Please send patches to <config-patches@gnu.org>.
me=`echo "$0" | sed -e 's,.*/,,'`
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2014 Free Software Foundation, Inc.
+Copyright 1992-2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -579,8 +579,9 @@ EOF
else
IBM_ARCH=powerpc
fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
+ if [ -x /usr/bin/lslpp ] ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
diff --git a/build/config.sub b/build/config.sub
index d4c8338..6d2e94c 100755
--- a/build/config.sub
+++ b/build/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2014 Free Software Foundation, Inc.
+# Copyright 1992-2015 Free Software Foundation, Inc.
-timestamp='2014-09-26'
+timestamp='2015-01-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@ timestamp='2014-09-26'
# of the GNU General Public License, version 3 ("GPLv3").
-# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+# Please send patches to <config-patches@gnu.org>.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
@@ -68,7 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2014 Free Software Foundation, Inc.
+Copyright 1992-2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -260,7 +260,7 @@ case $basic_machine in
| c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
- | fido | fr30 | frv \
+ | fido | fr30 | frv | ft32 \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia64 \
@@ -313,6 +313,7 @@ case $basic_machine in
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+ | visium \
| we32k \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
@@ -440,6 +441,7 @@ case $basic_machine in
| ubicom32-* \
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
+ | visium-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
diff --git a/build/find_python.sh b/build/find_python.sh
index 61601f3..d4ca2f7 100755
--- a/build/find_python.sh
+++ b/build/find_python.sh
@@ -21,9 +21,7 @@
#
# Required version of Python
-# Python 2.0 = 0x2000000
-# Python 2.4 = 0x2040000
-VERSION=${1:-0x2050000}
+VERSION=${1:-0x2070000}
for pypath in "$PYTHON" "$PYTHON2" "$PYTHON3" python python2 python3; do
if [ "x$pypath" != "x" ]; then
diff --git a/build/generator/extractor.py b/build/generator/extractor.py
index a182911..63921f3 100755
--- a/build/generator/extractor.py
+++ b/build/generator/extractor.py
@@ -57,13 +57,6 @@ _filter_names = [
'svn_auth_kwallet_version',
'svn_auth_get_gpg_agent_simple_provider',
'svn_auth_gpg_agent_version',
- # -DSVN_FS_INFO:
- 'svn_repos_capabilities',
- 'svn_repos_info_format',
- 'svn_fs_info_format',
- 'svn_fs_info_config_files',
- 'svn_fs_info',
- 'svn_fs_info_dup',
]
if __name__ == '__main__':
diff --git a/build/generator/gen_base.py b/build/generator/gen_base.py
index 19b0dc3..02c8ed2 100644
--- a/build/generator/gen_base.py
+++ b/build/generator/gen_base.py
@@ -22,6 +22,7 @@
# gen_base.py -- infrastructure for generating makefiles, dependencies, etc.
#
+import collections
import os
import sys
import glob
@@ -75,7 +76,7 @@ class GeneratorBase:
# Now read and parse build.conf
parser = configparser.ConfigParser()
- parser.read(fname)
+ parser.readfp(open(fname))
self.conf = build_path(os.path.abspath(fname))
@@ -239,6 +240,178 @@ class GeneratorBase:
except: pass
os.rename(new_hdrfile, hdrfile)
+ def write_file_if_changed(self, fname, new_contents):
+ """Rewrite the file if NEW_CONTENTS are different than its current content.
+
+ If you have your windows projects open and generate the projects
+ it's not a small thing for windows to re-read all projects so
+ only update those that have changed.
+
+ Under Python >=3, NEW_CONTENTS must be a 'str', not a 'bytes'.
+ """
+ if sys.version_info[0] >= 3:
+ new_contents = new_contents.encode()
+
+ try:
+ old_contents = open(fname, 'rb').read()
+ except IOError:
+ old_contents = None
+ if old_contents != new_contents:
+ open(fname, 'wb').write(new_contents)
+ print("Wrote: %s" % fname)
+
+
+ def write_errno_table(self):
+ # ### We generate errorcode.inc at autogen.sh time (here!).
+ # ###
+ # ### Currently it's only used by maintainer-mode builds. If this
+ # ### functionality ever moves to release builds, it will have to move
+ # ### to configure-time (but remember that Python cannot be assumed to
+ # ### be available from 'configure').
+ import errno
+
+ lines = [
+ '/* This file was generated by build/generator/gen_base.py */',
+ ''
+ ]
+
+ def write_struct(name, codes):
+ lines.extend([
+ 'static struct {',
+ ' int errcode;',
+ ' const char *errname;',
+ '} %s[] = {' % (name,),
+ ])
+
+ for num, val in sorted(codes):
+ lines.extend([
+ ' { %d, "%s" },' % (num, val),
+ ])
+
+ # Remove ',' for c89 compatibility
+ lines[-1] = lines[-1][0:-1]
+
+ lines.extend([
+ '};',
+ '',
+ ])
+
+ write_struct('svn__errno', errno.errorcode.items())
+
+ # Fetch and write apr_errno.h codes.
+ aprerr = []
+ for line in open(os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),
+ 'tools', 'dev', 'aprerr.txt')):
+ # aprerr.txt parsing duplicated in which-error.py
+ if line.startswith('#'):
+ continue
+ key, _, val = line.split()
+ aprerr += [(int(val), key)]
+ write_struct('svn__apr_errno', aprerr)
+ aprdict = dict(aprerr)
+ del aprerr
+
+ ## sanity check
+ intersection = set(errno.errorcode.keys()) & set(aprdict.keys())
+ intersection = filter(lambda x: errno.errorcode[x] != aprdict[x],
+ intersection)
+ if self.errno_filter(intersection):
+ print("WARNING: errno intersects APR error codes; "
+ "runtime computation of symbolic error names for the following numeric codes might be wrong: "
+ "%r" % (intersection,))
+
+ self.write_file_if_changed('subversion/libsvn_subr/errorcode.inc',
+ '\n'.join(lines))
+
+ def errno_filter(self, codes):
+ return codes
+
+ class FileSectionOptionEnum(object):
+ # These are accessed via getattr() later on
+ file = object()
+ section = object()
+ option = object()
+
+ def _client_configuration_defines(self):
+ """Return an iterator over SVN_CONFIG_* #define's in the "Client
+ configuration files strings" section of svn_config.h."""
+
+ pattern = re.compile(
+ r'^\s*#\s*define\s+'
+ r'(?P<macro>SVN_CONFIG_(?P<kind>CATEGORY|SECTION|OPTION)_[A-Z0-9a-z_]+)'
+ )
+ kind = {
+ 'CATEGORY': self.FileSectionOptionEnum.file,
+ 'SECTION': self.FileSectionOptionEnum.section,
+ 'OPTION': self.FileSectionOptionEnum.option,
+ }
+
+ fname = os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),
+ 'subversion', 'include', 'svn_config.h')
+ lines = iter(open(fname))
+ for line in lines:
+ if "@name Client configuration files strings" in line:
+ break
+ else:
+ raise Exception("Unable to parse svn_config.h")
+
+ for line in lines:
+ if "@{" in line:
+ break
+ else:
+ raise Exception("Unable to parse svn_config.h")
+
+ for line in lines:
+ if "@}" in line:
+ break
+ match = pattern.match(line)
+ if match:
+ yield (
+ match.group('macro'),
+ kind[match.group('kind')],
+ )
+ else:
+ raise Exception("Unable to parse svn_config.h")
+
+ def write_config_keys(self):
+ groupby = collections.defaultdict(list)
+ empty_sections = []
+ previous = (None, None)
+ for macro, kind in self._client_configuration_defines():
+ if kind is previous[1] is self.FileSectionOptionEnum.section:
+ empty_sections.append(previous[0])
+ groupby[kind].append(macro)
+ previous = (macro, kind)
+ else:
+ # If the last (macro, kind) is a section, then it's an empty section.
+ if kind is self.FileSectionOptionEnum.section:
+ empty_sections.append(macro)
+
+ lines = []
+ lines.append('/* Automatically generated by %s:write_config_keys() */'
+ % (__file__,))
+ lines.append('')
+
+ for kind in ('file', 'section', 'option'):
+ macros = groupby[getattr(self.FileSectionOptionEnum, kind)]
+ lines.append('static const char *svn__valid_config_%ss[] = {' % (kind,))
+ for macro in macros:
+ lines.append(' %s,' % (macro,))
+ # Remove ',' for c89 compatibility
+ lines[-1] = lines[-1][0:-1]
+ lines.append('};')
+ lines.append('')
+
+ lines.append('static const char *svn__empty_config_sections[] = {');
+ for section in empty_sections:
+ lines.append(' %s,' % (section,))
+ # Remove ',' for c89 compatibility
+ lines[-1] = lines[-1][0:-1]
+ lines.append('};')
+ lines.append('')
+
+ self.write_file_if_changed('subversion/libsvn_subr/config_keys.inc',
+ '\n'.join(lines))
class DependencyGraph:
"""Record dependencies between build items.
@@ -259,6 +432,10 @@ class DependencyGraph:
else:
self.deps[type][target] = [ source ]
+ def remove(self, type, target, source):
+ if target in self.deps[type] and source in self.deps[type][target]:
+ self.deps[type][target].remove(source)
+
def bulk_add(self, type, target, sources):
if target in self.deps[type]:
self.deps[type][target].extend(sources)
@@ -429,13 +606,14 @@ class TargetLinked(Target):
# the specified install area depends upon this target
self.gen_obj.graph.add(DT_INSTALL, self.install, self)
- sources = sorted(_collect_paths(self.sources or '*.c' or '*.cpp', self.path))
+ sources = sorted(_collect_paths(self.sources, self.path))
- for srcs, reldir in sources:
- for src in srcs.split(" "):
+ for src, reldir in sources:
if glob.glob(src):
if src[-2:] == '.c':
objname = src[:-2] + self.objext
+ elif src[-3:] == '.cc':
+ objname = src[:-3] + self.objext
elif src[-4:] == '.cpp':
objname = src[:-4] + self.objext
else:
@@ -470,6 +648,8 @@ class TargetExe(TargetLinked):
self.manpages = options.get('manpages', '')
self.testing = options.get('testing')
+ self.msvc_force_static = options.get('msvc-force-static') == 'yes'
+
def add_dependencies(self):
TargetLinked.add_dependencies(self)
@@ -519,6 +699,11 @@ class TargetLib(TargetLinked):
self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
self.msvc_export = options.get('msvc-export', '').split()
+ def disable_shared(self):
+ "tries to disable building as a shared library,"
+
+ self.msvc_static = True
+
class TargetApacheMod(TargetLib):
def __init__(self, name, options, gen_obj):
@@ -580,7 +765,6 @@ class TargetSWIG(TargetLib):
TargetLib.__init__(self, name, options, gen_obj)
self.lang = lang
self.desc = self.desc + ' for ' + lang_full_name[lang]
- self.include_runtime = options.get('include-runtime') == 'yes'
### hmm. this is Makefile-specific
self.link_cmd = '$(LINK_%s_WRAPPER)' % lang_abbrev[lang].upper()
@@ -604,13 +788,16 @@ class TargetSWIG(TargetLib):
module_name = iname[:4] != 'svn_' and iname[:-2] or iname[4:-2]
lib_extension = self.gen_obj._extension_map['lib', 'target']
- if self.lang == "ruby":
+ if self.lang == "python":
+ lib_extension = self.gen_obj._extension_map['pyd', 'target']
+ lib_filename = '_' + module_name + lib_extension
+ elif self.lang == "ruby":
+ lib_extension = self.gen_obj._extension_map['so', 'target']
lib_filename = module_name + lib_extension
elif self.lang == "perl":
lib_filename = '_' + module_name.capitalize() + lib_extension
else:
- lib_extension = self.gen_obj._extension_map['pyd', 'target']
- lib_filename = '_' + module_name + lib_extension
+ lib_filename = module_name + lib_extension
self.name = self.lang + '_' + module_name
self.path = build_path_join(self.path, self.lang)
@@ -662,6 +849,12 @@ class TargetSWIGLib(TargetLib):
return [ self.target ]
return [ ]
+ def disable_shared(self):
+ "disables building shared libraries"
+
+ return # Explicit NO-OP
+
+
class TargetProject(Target):
def __init__(self, name, options, gen_obj):
Target.__init__(self, name, options, gen_obj)
@@ -914,10 +1107,13 @@ def _collect_paths(pats, path=None):
path (string), if specified, is a path that will be prepended to each
glob pattern before it is evaluated
- If path is none the return value is a list of filenames, otherwise
+ If path is None the return value is a list of filenames, otherwise
the return value is a list of 2-tuples. The first element in each tuple
is a matching filename and the second element is the portion of the
glob pattern which matched the file before its last forward slash (/)
+
+ If no files are found matching a pattern, then include the pattern itself
+ as a filename in the results.
"""
result = [ ]
for base_pat in pats.split():
@@ -1107,7 +1303,13 @@ class IncludeDependencyInfo:
direct_possibility_fname = os.path.normpath(os.path.join(
os.path.dirname(fname), include_param))
domain_fnames = self._domain.get(os.path.basename(include_param), [])
- if direct_possibility_fname in domain_fnames:
+ if os.sep.join(['libsvn_subr', 'error.c']) in fname \
+ and 'errorcode.inc' == include_param:
+ continue # generated by GeneratorBase.write_errno_table
+ if os.sep.join(['libsvn_subr', 'cmdline.c']) in fname \
+ and 'config_keys.inc' == include_param:
+ continue # generated by GeneratorBase.write_config_keys
+ elif direct_possibility_fname in domain_fnames:
self._upd_dep_hash(hdrs, direct_possibility_fname, type_code)
elif (len(domain_fnames) == 1
and (include_param.find(os.sep) == -1
diff --git a/build/generator/gen_make.py b/build/generator/gen_make.py
index 5c2db16..b2a7787 100644
--- a/build/generator/gen_make.py
+++ b/build/generator/gen_make.py
@@ -53,6 +53,12 @@ from gen_base import build_path_join, build_path_strip, build_path_splitfile, \
build_path_basename, build_path_dirname, build_path_retreat, unique
+def _normstr(x):
+ if os.sep == '/':
+ return os.path.normpath(str(x))
+ else:
+ return os.path.normpath(str(x).replace('/', os.sep)).replace(os.sep, '/')
+
class Generator(gen_base.GeneratorBase):
_extension_map = {
@@ -62,6 +68,8 @@ class Generator(gen_base.GeneratorBase):
('lib', 'object'): '.lo',
('pyd', 'target'): '.la',
('pyd', 'object'): '.lo',
+ ('so', 'target'): '.la',
+ ('so', 'object'): '.lo',
}
def __init__(self, fname, verfname, options=None):
@@ -230,12 +238,14 @@ class Generator(gen_base.GeneratorBase):
# get the source items (.o and .la) for the link unit
objects = [ ]
+ objdeps = [ ]
object_srcs = [ ]
headers = [ ]
header_classes = [ ]
header_class_filenames = [ ]
deps = [ ]
libs = [ ]
+ add_deps = target_ob.add_deps.split()
for link_dep in self.graph.get_sources(gen_base.DT_LINK, target_ob.name):
if isinstance(link_dep, gen_base.TargetJava):
@@ -260,6 +270,7 @@ class Generator(gen_base.GeneratorBase):
elif isinstance(link_dep, gen_base.ObjectFile):
# link in the object file
objects.append(link_dep.filename)
+ objdeps.append(_normstr(link_dep.filename))
for dep in self.graph.get_sources(gen_base.DT_OBJECT, link_dep, gen_base.SourceFile):
object_srcs.append(
build_path_join('$(abs_srcdir)', dep.filename))
@@ -286,8 +297,9 @@ class Generator(gen_base.GeneratorBase):
varname=targ_varname,
path=path,
install=None,
- add_deps=target_ob.add_deps,
+ add_deps=add_deps,
objects=objects,
+ objdeps=objdeps,
deps=deps,
when=target_ob.when,
)
@@ -379,7 +391,10 @@ class Generator(gen_base.GeneratorBase):
dirname, fname = build_path_splitfile(file.filename)
return _eztdata(mode=None,
dirname=dirname, fullname=file.filename,
- filename=fname, when=file.when)
+ filename=fname, when=file.when,
+ pc_fullname=None,
+ pc_installdir=None,
+ pc_install_fname=None,)
def apache_file_to_eztdata(file):
# cd to dirname before install to work around libtool 1.4.2 bug.
@@ -412,6 +427,15 @@ class Generator(gen_base.GeneratorBase):
else:
ezt_file.install_fname = build_path_join('$(%sdir)' % area_var,
ezt_file.filename)
+
+ # Install pkg-config files
+ if (isinstance(file.target, gen_base.TargetLib) and
+ ezt_file.fullname.startswith('subversion/libsvn_')):
+ ezt_file.pc_fullname = ezt_file.fullname.replace('-1.la', '.pc')
+ ezt_file.pc_installdir = '$(pkgconfig_dir)'
+ pc_install_fname = ezt_file.filename.replace('-1.la', '.pc')
+ ezt_file.pc_install_fname = build_path_join(ezt_file.pc_installdir,
+ pc_install_fname)
ezt_area.files.append(ezt_file)
# certain areas require hooks for extra install rules defined
@@ -452,11 +476,11 @@ class Generator(gen_base.GeneratorBase):
key=lambda t: t[0].filename)
for objname, sources in obj_deps:
- dep = _eztdata(name=str(objname),
+ dep = _eztdata(name=_normstr(objname),
when=objname.when,
- deps=list(map(str, sources)),
+ deps=list(map(_normstr, sources)),
cmd=objname.compile_cmd,
- source=str(sources[0]))
+ source=_normstr(sources[0]))
data.deps.append(dep)
dep.generated = ezt.boolean(getattr(objname, 'source_generated', 0))
@@ -469,6 +493,8 @@ class Generator(gen_base.GeneratorBase):
self.write_transform_libtool_scripts(install_sources)
+ self.write_pkg_config_dot_in_files(install_sources)
+
def write_standalone(self):
"""Write autogen-standalone.mk"""
@@ -580,6 +606,62 @@ DIR=`pwd`
libdep_cache[target_name] = sorted(libs)
return libdep_cache[target_name]
+ def write_pkg_config_dot_in_files(self, install_sources):
+ """Write pkg-config .pc.in files for Subversion libraries."""
+ for target_ob in install_sources:
+ if not (isinstance(target_ob, gen_base.TargetLib) and
+ target_ob.path.startswith('subversion/libsvn_')):
+ continue
+
+ lib_name = target_ob.name
+ lib_path = self.sections[lib_name].options.get('path')
+ lib_deps = self.sections[lib_name].options.get('libs')
+ lib_desc = self.sections[lib_name].options.get('description')
+ output_path = build_path_join(lib_path, lib_name + '.pc.in')
+ template = ezt.Template(os.path.join('build', 'generator', 'templates',
+ 'pkg-config.in.ezt'),
+ compress_whitespace=False)
+ class _eztdata(object):
+ def __init__(self, **kw):
+ vars(self).update(kw)
+
+ data = _eztdata(
+ lib_name=lib_name,
+ lib_desc=lib_desc,
+ lib_deps=[],
+ lib_required=[],
+ lib_required_private=[],
+ )
+ # libsvn_foo -> -lsvn_foo
+ data.lib_deps.append('-l%s' % lib_name.replace('lib', '', 1))
+ for lib_dep in lib_deps.split():
+ if lib_dep == 'apriconv':
+ # apriconv is part of apr-util, skip it
+ continue
+ external_lib = self.sections[lib_dep].options.get('external-lib')
+ if external_lib:
+ ### Some of Subversion's internal libraries can appear as external
+ ### libs to handle conditional compilation. Skip these for now.
+ if external_lib in ['$(SVN_RA_LIB_LINK)', '$(SVN_FS_LIB_LINK)']:
+ continue
+ # If the external library is known to support pkg-config,
+ # add it to the Required: or Required.private: section.
+ # Otherwise, add the external library to linker flags.
+ pkg_config = self.sections[lib_dep].options.get('pkg-config')
+ if pkg_config:
+ private = self.sections[lib_dep].options.get('pkg-config-private')
+ if private:
+ data.lib_required_private.append(pkg_config)
+ else:
+ data.lib_required.append(pkg_config)
+ else:
+ # $(EXTERNAL_LIB) -> @EXTERNAL_LIB@
+ data.lib_deps.append('@%s@' % external_lib[2:-1])
+ else:
+ data.lib_required_private.append(lib_dep)
+
+ template.generate(open(output_path, 'w'), data)
+
class UnknownDependency(Exception):
"We don't know how to deal with the dependent to link it in."
pass
diff --git a/build/generator/gen_msvc_dsp.py b/build/generator/gen_msvc_dsp.py
index 854b8fa..e2bd40d 100644
--- a/build/generator/gen_msvc_dsp.py
+++ b/build/generator/gen_msvc_dsp.py
@@ -82,7 +82,6 @@ class Generator(gen_win.WinGeneratorBase):
'rootpath' : self.rootpath,
'platforms' : self.platforms,
'configs' : configs,
- 'includes' : self.get_win_includes(target),
'sources' : sources,
'default_platform' : self.platforms[0],
'default_config' : configs[0].name,
@@ -128,8 +127,6 @@ class Generator(gen_win.WinGeneratorBase):
(
('project_guid', self.makeguid('svn_locale')),
))
- self.write_zlib_project_file('zlib.dsp')
- self.write_serf_project_file('serf.dsp')
install_targets = self.get_install_targets()
targets = [ ]
@@ -151,9 +148,9 @@ class Generator(gen_win.WinGeneratorBase):
depends = [ ]
if not isinstance(target, gen_base.TargetI18N):
depends = self.adjust_win_depends(target, name)
- #print name
- #for dep in depends:
- # print " ",dep.name
+ #print name
+ #for dep in depends:
+ # print " ",dep.name
dep_names = [ ]
for dep in depends:
diff --git a/build/generator/gen_vcnet_vcproj.py b/build/generator/gen_vcnet_vcproj.py
index d951bb9..0ab4604 100644
--- a/build/generator/gen_vcnet_vcproj.py
+++ b/build/generator/gen_vcnet_vcproj.py
@@ -38,6 +38,23 @@ class Generator(gen_win.WinGeneratorBase):
def quote(self, str):
return '"%s"' % str
+ def gen_proj_names(self, install_targets):
+ "Generate project file names for the targets"
+
+ if float(self.vcproj_version) < 11.0:
+ gen_win.WinGeneratorBase.gen_proj_names(self, install_targets)
+ return
+
+ # With VS2012 we can assume that even the light versions
+ # support proper project nesting in the UI
+
+ for target in install_targets:
+ if target.msvc_name:
+ target.proj_name = target.msvc_name
+ continue
+
+ target.proj_name = target.name
+
def get_external_project(self, target, proj_ext):
"Link project files: prefer vcproj's, but if don't exist, try dsp's."
vcproj = gen_win.WinGeneratorBase.get_external_project(self, target,
@@ -100,7 +117,6 @@ class Generator(gen_win.WinGeneratorBase):
'platforms' : self.platforms,
'config_type' : config_type,
'configs' : configs,
- 'includes' : self.get_win_includes(target),
'sources' : sources,
'default_platform' : self.platforms[0],
'default_config' : configs[0].name,
@@ -155,8 +171,6 @@ class Generator(gen_win.WinGeneratorBase):
(
('project_guid', self.makeguid('svn_locale')),
))
- self.write_zlib_project_file('zlib' + self.vcproj_extension)
- self.write_serf_project_file('serf' + self.vcproj_extension)
install_targets = self.get_install_targets()
diff --git a/build/generator/gen_win.py b/build/generator/gen_win.py
index 5fdf77a..de693de 100644
--- a/build/generator/gen_win.py
+++ b/build/generator/gen_win.py
@@ -38,6 +38,7 @@ import string
import generator.swig.header_wrappers
import generator.swig.checkout_swig_header
import generator.swig.external_runtime
+import gen_win_dependencies
if sys.version_info[0] >= 3:
# Python >=3.0
@@ -52,186 +53,7 @@ else:
import gen_base
import ezt
-
-class GeneratorBase(gen_base.GeneratorBase):
- """This intermediate base class exists to be instantiated by win-tests.py,
- in order to obtain information from build.conf and library paths without
- actually doing any generation."""
- _extension_map = {
- ('exe', 'target'): '.exe',
- ('exe', 'object'): '.obj',
- ('lib', 'target'): '.dll',
- ('lib', 'object'): '.obj',
- ('pyd', 'target'): '.pyd',
- ('pyd', 'object'): '.obj',
- }
-
- def parse_options(self, options):
- self.apr_path = 'apr'
- self.apr_util_path = 'apr-util'
- self.apr_iconv_path = 'apr-iconv'
- self.serf_path = None
- self.serf_lib = None
- self.bdb_path = 'db4-win32'
- self.httpd_path = None
- self.libintl_path = None
- self.zlib_path = 'zlib'
- self.openssl_path = None
- self.jdk_path = None
- self.junit_path = None
- self.swig_path = None
- self.vs_version = '2002'
- self.sln_version = '7.00'
- self.vcproj_version = '7.00'
- self.vcproj_extension = '.vcproj'
- self.sqlite_path = 'sqlite-amalgamation'
- self.skip_sections = { 'mod_dav_svn': None,
- 'mod_authz_svn': None,
- 'mod_dontdothat' : None,
- 'libsvn_auth_kwallet': None,
- 'libsvn_auth_gnome_keyring': None }
-
- # Instrumentation options
- self.disable_shared = None
- self.static_apr = None
- self.static_openssl = None
- self.instrument_apr_pools = None
- self.instrument_purify_quantify = None
- self.configure_apr_util = None
- self.sasl_path = None
-
- # NLS options
- self.enable_nls = None
-
- # ML (assembler) is disabled by default; use --enable-ml to detect
- self.enable_ml = None
-
- for opt, val in options:
- if opt == '--with-berkeley-db':
- self.bdb_path = val
- elif opt == '--with-apr':
- self.apr_path = val
- elif opt == '--with-apr-util':
- self.apr_util_path = val
- elif opt == '--with-apr-iconv':
- self.apr_iconv_path = val
- elif opt == '--with-serf':
- self.serf_path = val
- elif opt == '--with-httpd':
- self.httpd_path = val
- del self.skip_sections['mod_dav_svn']
- del self.skip_sections['mod_authz_svn']
- del self.skip_sections['mod_dontdothat']
- elif opt == '--with-libintl':
- self.libintl_path = val
- self.enable_nls = 1
- elif opt == '--with-jdk':
- self.jdk_path = val
- elif opt == '--with-junit':
- self.junit_path = val
- elif opt == '--with-zlib':
- self.zlib_path = val
- elif opt == '--with-swig':
- self.swig_path = val
- elif opt == '--with-sqlite':
- self.sqlite_path = val
- elif opt == '--with-sasl':
- self.sasl_path = val
- elif opt == '--with-openssl':
- self.openssl_path = val
- elif opt == '--enable-purify':
- self.instrument_purify_quantify = 1
- self.instrument_apr_pools = 1
- elif opt == '--enable-quantify':
- self.instrument_purify_quantify = 1
- elif opt == '--enable-pool-debug':
- self.instrument_apr_pools = 1
- elif opt == '--enable-nls':
- self.enable_nls = 1
- elif opt == '--enable-bdb-in-apr-util':
- self.configure_apr_util = 1
- elif opt == '--enable-ml':
- self.enable_ml = 1
- elif opt == '--disable-shared':
- self.disable_shared = 1
- elif opt == '--with-static-apr':
- self.static_apr = 1
- elif opt == '--with-static-openssl':
- self.static_openssl = 1
- elif opt == '--vsnet-version':
- if val == '2002' or re.match('7(\.\d+)?$', val):
- self.vs_version = '2002'
- self.sln_version = '7.00'
- self.vcproj_version = '7.00'
- self.vcproj_extension = '.vcproj'
- elif val == '2003' or re.match('8(\.\d+)?$', val):
- self.vs_version = '2003'
- self.sln_version = '8.00'
- self.vcproj_version = '7.10'
- self.vcproj_extension = '.vcproj'
- elif val == '2005' or re.match('9(\.\d+)?$', val):
- self.vs_version = '2005'
- self.sln_version = '9.00'
- self.vcproj_version = '8.00'
- self.vcproj_extension = '.vcproj'
- elif val == '2008' or re.match('10(\.\d+)?$', val):
- self.vs_version = '2008'
- self.sln_version = '10.00'
- self.vcproj_version = '9.00'
- self.vcproj_extension = '.vcproj'
- elif val == '2010':
- self.vs_version = '2010'
- self.sln_version = '11.00'
- self.vcproj_version = '10.0'
- self.vcproj_extension = '.vcxproj'
- elif val == '2012' or val == '11':
- self.vs_version = '2012'
- self.sln_version = '12.00'
- self.vcproj_version = '11.0'
- self.vcproj_extension = '.vcxproj'
- elif val == '2013' or val == '12':
- self.vs_version = '2013'
- self.sln_version = '12.00'
- self.vcproj_version = '12.0'
- self.vcproj_extension = '.vcxproj'
- elif re.match('^1\d+$', val):
- self.vs_version = val
- self.sln_version = '12.00'
- self.vcproj_version = val + '.0'
- self.vcproj_extension = '.vcxproj'
- else:
- print('WARNING: Unknown VS.NET version "%s",'
- ' assuming "%s"\n' % (val, '7.00'))
-
-
- def __init__(self, fname, verfname, options):
-
- # parse (and save) the options that were passed to us
- self.parse_options(options)
-
- # Initialize parent
- gen_base.GeneratorBase.__init__(self, fname, verfname, options)
-
- # Find Berkeley DB
- self._find_bdb()
-
- def _find_bdb(self):
- "Find the Berkeley DB library and version"
- # Before adding "60" to this list, see build/ac-macros/berkeley-db.m4.
- for ver in ("53", "52", "51", "50", "48", "47", "46",
- "45", "44", "43", "42", "41", "40"):
- lib = "libdb" + ver
- path = os.path.join(self.bdb_path, "lib")
- if os.path.exists(os.path.join(path, lib + ".lib")):
- self.bdb_lib = lib
- break
- elif os.path.exists(os.path.join(path, lib + "d.lib")):
- self.bdb_lib = lib
- break
- else:
- self.bdb_lib = None
-
-class WinGeneratorBase(GeneratorBase):
+class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase):
"Base class for all Windows project files generators"
def __init__(self, fname, verfname, options, subdir):
@@ -243,48 +65,30 @@ class WinGeneratorBase(GeneratorBase):
"""
# Initialize parent
- GeneratorBase.__init__(self, fname, verfname, options)
+ gen_win_dependencies.GenDependenciesBase.__init__(self, fname, verfname,
+ options, find_libs=False)
- if self.bdb_lib is not None:
- print("Found %s.lib or %sd.lib in %s\n" % (self.bdb_lib, self.bdb_lib,
- self.bdb_path))
- else:
- print("BDB not found, BDB fs will not be built\n")
+ # On Windows we create svn_private_config.h in the output directory since
+ # r1370526.
+ #
+ # Without this replacement all projects include a not-existing file,
+ # which makes the MSBuild calculation to see whether a project is changed
+ # far more expensive than necessary.
+ self.private_built_includes.append('$(Configuration)/svn_private_config.h')
+ self.private_built_includes.remove('subversion/svn_private_config.h')
if subdir == 'vcnet-vcproj':
print('Generating for Visual Studio %s\n' % self.vs_version)
- # Find the right Ruby include and libraries dirs and
- # library name to link SWIG bindings with
- self._find_ruby()
+ self.find_libraries(True)
- # Find the right Perl library name to link SWIG bindings with
- self._find_perl()
-
- # Find the right Python include and libraries dirs for SWIG bindings
- self._find_python()
-
- # Find the installed SWIG version to adjust swig options
- self._find_swig()
-
- # Find the installed Java Development Kit
- self._find_jdk()
-
- # Find APR and APR-util version
- self._find_apr()
- self._find_apr_util()
-
- # Find Sqlite
- self._find_sqlite()
-
- # Look for ZLib and ML
- if self.zlib_path:
- self._find_zlib()
- self._find_ml()
-
- # Find serf and its dependencies
- if self.serf_path:
- self._find_serf()
+ # Print list of identified libraries
+ printed = []
+ for lib in sorted(self._libraries.values(), key = lambda s: s.name):
+ if lib.name in printed:
+ continue
+ printed.append(lib.name)
+ print('Found %s %s' % (lib.name, lib.version))
#Make some files for the installer so that we don't need to
#require sed or some other command to do it
@@ -307,25 +111,17 @@ class WinGeneratorBase(GeneratorBase):
if not os.path.exists(self.projfilesdir):
os.makedirs(self.projfilesdir)
- # Generate the build_zlib.bat file
- if self.zlib_path:
- data = {'zlib_path': os.path.relpath(self.zlib_path, self.projfilesdir),
- 'zlib_version': self.zlib_version,
- 'use_ml': self.have_ml and 1 or None}
- bat = os.path.join(self.projfilesdir, 'build_zlib.bat')
- self.write_with_template(bat, 'templates/build_zlib.ezt', data)
-
# Generate the build_locale.bat file
- pofiles = []
if self.enable_nls:
+ pofiles = []
for po in os.listdir(os.path.join('subversion', 'po')):
if fnmatch.fnmatch(po, '*.po'):
pofiles.append(POFile(po[:-3]))
- data = {'pofiles': pofiles}
- self.write_with_template(os.path.join(self.projfilesdir,
- 'build_locale.bat'),
- 'templates/build_locale.ezt', data)
+ data = {'pofiles': pofiles}
+ self.write_with_template(os.path.join(self.projfilesdir,
+ 'build_locale.bat'),
+ 'templates/build_locale.ezt', data)
#Here we can add additional platforms to compile for
self.platforms = ['Win32']
@@ -338,7 +134,7 @@ class WinGeneratorBase(GeneratorBase):
#Here we can add additional modes to compile for
self.configs = ['Debug','Release']
- if self.swig_libdir:
+ if 'swig' in self._libraries:
# Generate SWIG header wrappers and external runtime
for swig in (generator.swig.header_wrappers,
generator.swig.checkout_swig_header,
@@ -347,6 +143,11 @@ class WinGeneratorBase(GeneratorBase):
else:
print("%s not found; skipping SWIG file generation..." % self.swig_exe)
+ def errno_filter(self, codes):
+ "Callback for gen_base.write_errno_table()."
+ # Filter out python's SOC* codes, which alias the windows API names.
+ return set(filter(lambda code: not (10000 <= code <= 10100), codes))
+
def find_rootpath(self):
"Gets the root path as understand by the project system"
return os.path.relpath('.', self.projfilesdir) + "\\"
@@ -386,36 +187,35 @@ class WinGeneratorBase(GeneratorBase):
install_targets = self.graph.get_all_sources(gen_base.DT_INSTALL) \
+ self.projects
+ install_targets = [x for x in install_targets if not x.when or
+ x.when in self._windows_when]
+
# Don't create projects for scripts
install_targets = [x for x in install_targets if not isinstance(x, gen_base.TargetScript)]
+ if not self.enable_nls:
+ install_targets = [x for x in install_targets if x.name != 'locale']
+
# Drop the libsvn_fs_base target and tests if we don't have BDB
- if not self.bdb_lib:
+ if 'db' not in self._libraries:
install_targets = [x for x in install_targets if x.name != 'libsvn_fs_base']
install_targets = [x for x in install_targets if not (isinstance(x, gen_base.TargetExe)
and x.install == 'bdb-test')]
- # Don't build serf when we don't have it or for 1.3+
- if not self.serf_lib or (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
- install_targets = [x for x in install_targets if x.name != 'serf']
-
- # Drop the serf target if we don't have both serf and openssl
- if not self.serf_lib:
+ # Drop the ra_serf target if we don't have serf
+ if 'serf' not in self._libraries:
install_targets = [x for x in install_targets if x.name != 'libsvn_ra_serf']
- # Don't build zlib if we have an already compiled serf
- if self.serf_lib and (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
- install_targets = [x for x in install_targets if x.name != 'zlib']
-
- # Drop the swig targets if we don't have swig
- if not self.swig_path and not self.swig_libdir:
- install_targets = [x for x in install_targets
- if not (isinstance(x, gen_base.TargetSWIG)
- or isinstance(x, gen_base.TargetSWIGLib)
- or isinstance(x, gen_base.TargetSWIGProject))]
+ # Drop the swig targets if we don't have swig or language support
+ install_targets = [x for x in install_targets
+ if (not (isinstance(x, gen_base.TargetSWIG)
+ or isinstance(x, gen_base.TargetSWIGLib)
+ or isinstance(x, gen_base.TargetSWIGProject))
+ or (x.lang in self._libraries
+ and 'swig' in self._libraries))]
# Drop the Java targets if we don't have a JDK
- if not self.jdk_path:
+ if 'java_sdk' not in self._libraries:
install_targets = [x for x in install_targets
if not (isinstance(x, gen_base.TargetJava)
or isinstance(x, gen_base.TargetJavaHeaders)
@@ -423,6 +223,7 @@ class WinGeneratorBase(GeneratorBase):
or x.name == '__JAVAHL_TESTS__'
or x.name == 'libsvnjavahl')]
+ # Create DLL targets for libraries
dll_targets = []
for target in install_targets:
if isinstance(target, gen_base.TargetLib):
@@ -430,11 +231,26 @@ class WinGeneratorBase(GeneratorBase):
install_targets.append(self.create_fake_target(target))
if target.msvc_export:
if self.disable_shared:
- target.msvc_static = True
+ target.disable_shared()
else:
dll_targets.append(self.create_dll_target(target))
install_targets.extend(dll_targets)
+ # Fix up targets that can't be linked to libraries
+ if not self.disable_shared:
+ for target in install_targets:
+ if isinstance(target, gen_base.TargetExe) and target.msvc_force_static:
+
+ # Make direct dependencies of all the indirect dependencies
+ linked_deps = {}
+ self.get_linked_win_depends(target, linked_deps)
+
+ for lk in linked_deps.keys():
+ if not isinstance(lk, gen_base.TargetLib) or not lk.msvc_export:
+ self.graph.add(gen_base.DT_LINK, target.name, lk)
+ else:
+ self.graph.remove(gen_base.DT_LINK, target.name, lk)
+
for target in install_targets:
target.project_guid = self.makeguid(target.name)
@@ -485,9 +301,7 @@ class WinGeneratorBase(GeneratorBase):
# against the static libraries because they sometimes access internal
# library functions.
- # ### The magic behavior for 'test' in a name and 'entries-dump' should
- # ### move to another option in build.conf
- if dep in deps[key] and key.find("test") == -1 and key != 'entries-dump':
+ if dep in deps[key]:
deps[key].remove(dep)
deps[key].append(target)
@@ -506,6 +320,9 @@ class WinGeneratorBase(GeneratorBase):
defines=self.get_win_defines(target, cfg),
libdirs=self.get_win_lib_dirs(target, cfg),
libs=self.get_win_libs(target, cfg),
+ includes=self.get_win_includes(target, cfg),
+ forced_include_files
+ =self.get_win_forced_includes(target, cfg),
))
return configs
@@ -526,6 +343,7 @@ class WinGeneratorBase(GeneratorBase):
cbuild = None
ctarget = None
cdesc = None
+ cignore = None
if isinstance(target, gen_base.TargetJavaHeaders):
classes = self.path(target.classes)
if self.junit_path is not None:
@@ -548,11 +366,21 @@ class WinGeneratorBase(GeneratorBase):
sourcepath = self.path(source.sourcepath)
- cbuild = "%s -g -target 1.5 -source 1.5 -classpath %s -d %s " \
- "-sourcepath %s $(InputPath)" \
+ per_project_flags = ""
+
+ if target.name.find("-compat-"):
+ per_project_flags += "-Xlint:-deprecation -Xlint:-dep-ann" \
+ " -Xlint:-rawtypes"
+
+ cbuild = ("%s -g -Xlint -Xlint:-options " +
+ per_project_flags +
+ " -target 1.5 -source 1.5 -classpath "
+ " %s -d %s "
+ " -sourcepath %s $(InputPath)") \
% tuple(map(self.quote, (javac_exe, classes,
targetdir, sourcepath)))
+
ctarget = self.path(object.filename)
cdesc = "Compiling %s" % (source)
@@ -560,9 +388,18 @@ class WinGeneratorBase(GeneratorBase):
if quote_path and '-' in rsrc:
rsrc = '"%s"' % rsrc
+ if (not isinstance(source, gen_base.SourceFile)
+ and cbuild is None and ctarget is None and cdesc is None
+ and source in self._excluded_from_build):
+ # Make sure include dependencies are excluded from the build.
+ # This is an 'orrible 'ack that relies on the source being a
+ # string if it's an include dependency, or a SourceFile object
+ # otherwise.
+ cignore = 'yes'
+
sources.append(ProjectItem(path=rsrc, reldir=reldir, user_deps=[],
custom_build=cbuild, custom_target=ctarget,
- custom_desc=cdesc,
+ custom_desc=cdesc, ignored = cignore,
extension=os.path.splitext(rsrc)[1]))
if isinstance(target, gen_base.TargetJavaClasses) and target.jar:
@@ -683,8 +520,7 @@ class WinGeneratorBase(GeneratorBase):
return self.get_output_dir(target)
def get_def_file(self, target):
- if isinstance(target, gen_base.TargetLib) and target.msvc_export \
- and not self.disable_shared:
+ if isinstance(target, gen_base.TargetLib) and target.msvc_export:
return target.name + ".def"
return None
@@ -714,7 +550,7 @@ class WinGeneratorBase(GeneratorBase):
and target.external_project):
return None
- if target.external_project[:5] == 'serf/' and self.serf_lib:
+ if target.external_project[:5] == 'serf/' and 'serf' in self._libraries:
path = self.serf_path + target.external_project[4:]
elif target.external_project.find('/') != -1:
path = target.external_project
@@ -737,10 +573,6 @@ class WinGeneratorBase(GeneratorBase):
if self.enable_nls and name == '__ALL__':
depends.extend(self.sections['locale'].get_targets())
- # Build ZLib as a dependency of Serf if we have it
- if self.zlib_path and name == 'serf':
- depends.extend(self.sections['zlib'].get_targets())
-
# To set the correct build order of the JavaHL targets, the javahl-javah
# and libsvnjavahl targets are defined with extra dependencies in build.conf
# like this:
@@ -760,7 +592,9 @@ class WinGeneratorBase(GeneratorBase):
dep_dict = {}
- if isinstance(target, gen_base.TargetLib) and target.msvc_static:
+ if mode == FILTER_EXTERNALLIBS:
+ self.get_externallib_depends(target, dep_dict)
+ elif isinstance(target, gen_base.TargetLib) and target.msvc_static:
self.get_static_win_depends(target, dep_dict)
else:
self.get_linked_win_depends(target, dep_dict)
@@ -771,10 +605,13 @@ class WinGeneratorBase(GeneratorBase):
for dep, (is_proj, is_lib, is_static) in dep_dict.items():
if is_proj:
deps.append(dep)
- elif mode == FILTER_LIBS:
+ elif mode == FILTER_LIBS or mode == FILTER_EXTERNALLIBS:
for dep, (is_proj, is_lib, is_static) in dep_dict.items():
if is_static or (is_lib and not is_proj):
- deps.append(dep)
+ # Filter explicit msvc libraries of optional dependencies
+ if (dep.name in self._libraries
+ or dep.name not in self._optional_libraries):
+ deps.append(dep)
else:
raise NotImplementedError
@@ -840,7 +677,7 @@ class WinGeneratorBase(GeneratorBase):
# every dll dependency we first check to see if its corresponding
# static library is already in the list of dependencies. If it is,
# we don't add the dll to the list.
- if is_lib and dep.msvc_export and not self.disable_shared:
+ if is_lib and dep.msvc_export:
static_dep = self.graph.get_sources(gen_base.DT_LINK, dep.name)[0]
if static_dep in deps:
continue
@@ -858,6 +695,21 @@ class WinGeneratorBase(GeneratorBase):
elif is_static:
self.get_linked_win_depends(dep, deps, 1)
+ # and recurse over the external library dependencies for swig libraries,
+ # to include the language runtime
+ elif isinstance(dep, gen_base.TargetSWIGLib):
+ self.get_externallib_depends(dep, deps)
+
+ def get_externallib_depends(self, target, deps):
+ """Find externallib dependencies for a project"""
+
+ direct_deps = self.get_direct_depends(target)
+ for dep, dep_kind in direct_deps:
+ self.get_externallib_depends(dep, deps)
+
+ if isinstance(target, gen_base.TargetLinked) and dep.external_lib:
+ deps[dep] = dep_kind
+
def get_win_defines(self, target, cfg):
"Return the list of defines for target"
@@ -866,206 +718,142 @@ class WinGeneratorBase(GeneratorBase):
"_CRT_NONSTDC_NO_DEPRECATE=",
"_CRT_SECURE_NO_WARNINGS="]
- if self.sqlite_inline:
- fakedefines.append("SVN_SQLITE_INLINE")
+ if cfg == 'Debug':
+ fakedefines.extend(["_DEBUG","SVN_DEBUG"])
+ elif cfg == 'Release':
+ fakedefines.append("NDEBUG")
if isinstance(target, gen_base.TargetApacheMod):
if target.name == 'mod_dav_svn':
fakedefines.extend(["AP_DECLARE_EXPORT"])
- if target.name.find('ruby') == -1:
- fakedefines.append("snprintf=_snprintf")
+ if self.cpp_defines:
+ fakedefines.extend(self.cpp_defines)
if isinstance(target, gen_base.TargetSWIG):
fakedefines.append("SWIG_GLOBAL")
- # Expect rb_errinfo() to be avilable in Ruby 1.9+,
- # rather than ruby_errinfo.
- if (self.ruby_major_version > 1 or self.ruby_minor_version > 8):
- fakedefines.extend(["HAVE_RB_ERRINFO"])
+ for dep in self.get_win_depends(target, FILTER_EXTERNALLIBS):
+ if dep.external_lib:
+ for elib in re.findall('\$\(SVN_([^\)]*)_LIBS\)', dep.external_lib):
+ external_lib = elib.lower()
- if cfg == 'Debug':
- fakedefines.extend(["_DEBUG","SVN_DEBUG"])
- elif cfg == 'Release':
- fakedefines.append("NDEBUG")
+ if external_lib in self._libraries:
+ lib = self._libraries[external_lib]
- if self.static_apr:
- fakedefines.extend(["APR_DECLARE_STATIC", "APU_DECLARE_STATIC"])
-
- # XXX: Check if db is present, and if so, let apr-util know
- # XXX: This is a hack until the apr build system is improved to
- # XXX: know these things for itself.
- if self.bdb_lib:
- fakedefines.append("APU_HAVE_DB=1")
- fakedefines.append("SVN_LIBSVN_FS_LINKS_FS_BASE=1")
+ if lib.defines:
+ fakedefines.extend(lib.defines)
# check if they wanted nls
if self.enable_nls:
fakedefines.append("ENABLE_NLS")
- if self.serf_lib:
- fakedefines.append("SVN_HAVE_SERF")
- fakedefines.append("SVN_LIBSVN_CLIENT_LINKS_RA_SERF")
-
- # check we have sasl
- if self.sasl_path:
- fakedefines.append("SVN_HAVE_SASL")
-
if target.name.endswith('svn_subr'):
fakedefines.append("SVN_USE_WIN32_CRASHHANDLER")
- # use static linking to Expat
- fakedefines.append("XML_STATIC")
-
return fakedefines
- def get_win_includes(self, target):
+ def get_win_includes(self, target, cfg='Release'):
"Return the list of include directories for target"
- fakeincludes = [ self.path("subversion/include"),
- self.path("subversion"),
- self.apath(self.apr_path, "include"),
- self.apath(self.apr_util_path, "include") ]
+ fakeincludes = [ "subversion/include" ]
- if target.name == 'mod_authz_svn':
- fakeincludes.extend([ self.apath(self.httpd_path, "modules/aaa") ])
+ for dep in self.get_win_depends(target, FILTER_EXTERNALLIBS):
+ if dep.external_lib:
+ for elib in re.findall('\$\(SVN_([^\)]*)_LIBS\)', dep.external_lib):
+ external_lib = elib.lower()
- if isinstance(target, gen_base.TargetApacheMod):
- fakeincludes.extend([ self.apath(self.apr_util_path, "xml/expat/lib"),
- self.apath(self.httpd_path, "include"),
- self.apath(self.bdb_path, "include") ])
- elif isinstance(target, gen_base.TargetSWIG):
+ if external_lib in self._libraries:
+ lib = self._libraries[external_lib]
+
+ fakeincludes.extend(lib.include_dirs)
+
+ if (isinstance(target, gen_base.TargetSWIG)
+ or isinstance(target, gen_base.TargetSWIGLib)):
util_includes = "subversion/bindings/swig/%s/libsvn_swig_%s" \
% (target.lang,
gen_base.lang_utillib_suffix[target.lang])
- fakeincludes.extend([ self.path("subversion/bindings/swig"),
- self.path("subversion/bindings/swig/proxy"),
- self.path("subversion/bindings/swig/include"),
- self.path(util_includes) ])
- else:
- fakeincludes.extend([ self.apath(self.apr_util_path, "xml/expat/lib"),
- self.path("subversion/bindings/swig/proxy"),
- self.apath(self.bdb_path, "include") ])
-
- if self.libintl_path:
- fakeincludes.append(self.apath(self.libintl_path, 'inc'))
-
- if self.serf_lib:
- fakeincludes.append(self.apath(self.serf_path))
-
- if self.openssl_path and self.openssl_inc_dir:
- fakeincludes.append(self.apath(self.openssl_inc_dir))
-
- if self.swig_libdir \
- and (isinstance(target, gen_base.TargetSWIG)
- or isinstance(target, gen_base.TargetSWIGLib)):
- if self.swig_vernum >= 103028:
- fakeincludes.append(self.apath(self.swig_libdir, target.lang))
- if target.lang == 'perl':
- # At least swigwin 1.3.38+ uses perl5 as directory name. Just add it
- # to the list to make sure we don't break old versions
- fakeincludes.append(self.apath(self.swig_libdir, 'perl5'))
- else:
- fakeincludes.append(self.swig_libdir)
- if target.lang == "perl":
- fakeincludes.extend(self.perl_includes)
- if target.lang == "python":
- fakeincludes.extend(self.python_includes)
- if target.lang == "ruby":
- fakeincludes.extend(self.ruby_includes)
-
- fakeincludes.append(self.apath(self.zlib_path))
-
- if self.sqlite_inline:
- fakeincludes.append(self.apath(self.sqlite_path))
- else:
- fakeincludes.append(self.apath(self.sqlite_path, 'inc'))
+ fakeincludes.append(util_includes)
- if self.sasl_path:
- fakeincludes.append(self.apath(self.sasl_path, 'include'))
+ if (isinstance(target, gen_base.TargetSWIG)
+ or isinstance(target, gen_base.TargetSWIGLib)):
- if target.name == "libsvnjavahl" and self.jdk_path:
- fakeincludes.append(os.path.join(self.jdk_path, 'include'))
- fakeincludes.append(os.path.join(self.jdk_path, 'include', 'win32'))
+ # Projects aren't generated unless we have swig
+ assert self.swig_libdir
+
+ if target.lang == "perl" and self.swig_version >= (1, 3, 28):
+ # At least swigwin 1.3.38+ uses perl5 as directory name.
+ lang_subdir = 'perl5'
+ else:
+ lang_subdir = target.lang
- if target.name.find('cxxhl') != -1:
- fakeincludes.append(self.path("subversion/bindings/cxxhl/include"))
+ # After the language specific includes include the generic libdir,
+ # to allow overriding a generic with a per language include
+ fakeincludes.append(os.path.join(self.swig_libdir, lang_subdir))
+ fakeincludes.append(self.swig_libdir)
- return fakeincludes
+ if 'cxxhl' in target.name:
+ fakeincludes.append("subversion/bindings/cxxhl/include")
+
+ return gen_base.unique(map(self.apath, fakeincludes))
def get_win_lib_dirs(self, target, cfg):
"Return the list of library directories for target"
- expatlibcfg = cfg.replace("Debug", "LibD").replace("Release", "LibR")
- if self.static_apr:
- libcfg = expatlibcfg
- else:
- libcfg = cfg
-
- fakelibdirs = [ self.apath(self.bdb_path, "lib"),
- self.apath(self.zlib_path),
- ]
-
- if not self.sqlite_inline:
- fakelibdirs.append(self.apath(self.sqlite_path, "lib"))
-
- if self.sasl_path:
- fakelibdirs.append(self.apath(self.sasl_path, "lib"))
- if self.serf_lib:
- if (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
- fakelibdirs.append(self.apath(self.serf_path))
-
- if self.openssl_path and self.openssl_lib_dir:
- fakelibdirs.append(self.apath(self.openssl_lib_dir))
+ debug = (cfg == 'Debug')
+
+ if not isinstance(target, gen_base.TargetLinked):
+ return []
+
+ if isinstance(target, gen_base.TargetLib) and target.msvc_static:
+ return []
+
+ fakelibdirs = []
+
+ # When nls is enabled, all our projects use it directly via the _() macro,
+ # even though only libsvn_subr references it in build.conf
+ if self.enable_nls:
+ lib = self._libraries['intl']
+ if debug and lib.debug_lib_dir:
+ fakelibdirs.append(lib.debug_lib_dir)
else:
- fakelibdirs.append(self.apath(msvc_path_join(self.serf_path, cfg)))
+ fakelibdirs.append(lib.lib_dir)
- fakelibdirs.append(self.apath(self.apr_path, libcfg))
- fakelibdirs.append(self.apath(self.apr_util_path, libcfg))
- fakelibdirs.append(self.apath(self.apr_util_path, 'xml', 'expat',
- 'lib', expatlibcfg))
+ if (isinstance(target, gen_base.TargetSWIG)
+ or isinstance(target, gen_base.TargetSWIGLib)):
+ if target.lang in self._libraries:
+ lib = self._libraries[target.lang]
- if isinstance(target, gen_base.TargetApacheMod):
- fakelibdirs.append(self.apath(self.httpd_path, cfg))
- if target.name == 'mod_dav_svn':
- fakelibdirs.append(self.apath(self.httpd_path, "modules/dav/main",
- cfg))
- if self.swig_libdir \
- and (isinstance(target, gen_base.TargetSWIG)
- or isinstance(target, gen_base.TargetSWIGLib)):
- if target.lang == "perl" and self.perl_libdir:
- fakelibdirs.append(self.perl_libdir)
- if target.lang == "python" and self.python_libdir:
- fakelibdirs.append(self.python_libdir)
- if target.lang == "ruby" and self.ruby_libdir:
- fakelibdirs.append(self.ruby_libdir)
-
- return fakelibdirs
+ if debug and lib.debug_lib_dir:
+ fakelibdirs.append(lib.debug_lib_dir)
+ elif lib.lib_dir:
+ fakelibdirs.append(lib.lib_dir)
- def get_win_libs(self, target, cfg):
- "Return the list of external libraries needed for target"
+ for dep in self.get_win_depends(target, FILTER_LIBS):
+ if dep.external_lib:
+ for elib in re.findall('\$\(SVN_([^\)]*)_LIBS\)', dep.external_lib):
+ external_lib = elib.lower()
- dblib = None
- if self.bdb_lib:
- dblib = self.bdb_lib+(cfg == 'Debug' and 'd.lib' or '.lib')
+ if external_lib not in self._libraries:
+ continue
- if self.serf_lib:
- if self.serf_ver_maj != 0:
- serflib = 'serf-%d.lib' % self.serf_ver_maj
- else:
- serflib = 'serf.lib'
+ lib = self._libraries[external_lib]
- if self.serf_lib and (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
- # We don't build zlib ourselves, so use the standard name
- # (zdll.lib would link to zlib.dll)
- zlib = 'zlib.lib'
- else:
- # We compile zlib ourselves to these explicit (non-standard) names
- zlib = (cfg == 'Debug' and 'zlibstatD.lib' or 'zlibstat.lib')
-
- sasllib = None
- if self.sasl_path:
- sasllib = 'libsasl.lib'
+ if debug and lib.debug_lib_dir:
+ lib_dir = self.apath(lib.debug_lib_dir)
+ elif lib.lib_dir:
+ lib_dir = self.apath(lib.lib_dir)
+ else:
+ continue # Dependency without library (E.g. JDK)
+
+ fakelibdirs.append(lib_dir)
+
+ return gen_base.unique(fakelibdirs)
+
+ def get_win_libs(self, target, cfg):
+ "Return the list of external libraries needed for target"
+
+ debug = (cfg == 'Debug')
if not isinstance(target, gen_base.TargetLinked):
return []
@@ -1074,53 +862,45 @@ class WinGeneratorBase(GeneratorBase):
return []
nondeplibs = target.msvc_libs[:]
- nondeplibs.append(zlib)
+
+ # When nls is enabled, all our projects use it directly via the _() macro,
+ # even though only libsvn_subr references it in build.conf
if self.enable_nls:
- if self.libintl_path:
- nondeplibs.append(self.apath(self.libintl_path,
- 'lib', 'intl3_svn.lib'))
+ lib = self._libraries['intl']
+ if debug and lib.debug_lib_name:
+ nondeplibs.append(lib.debug_lib_name)
else:
- nondeplibs.append('intl3_svn.lib')
-
- if isinstance(target, gen_base.TargetExe):
- nondeplibs.append('setargv.obj')
+ nondeplibs.append(lib.lib_name)
- if ((isinstance(target, gen_base.TargetSWIG)
- or isinstance(target, gen_base.TargetSWIGLib))
- and target.lang == 'perl'):
- nondeplibs.append(self.perl_lib)
-
- if ((isinstance(target, gen_base.TargetSWIG)
- or isinstance(target, gen_base.TargetSWIGLib))
- and target.lang == 'ruby'):
- nondeplibs.append(self.ruby_lib)
+ if (isinstance(target, gen_base.TargetSWIG)
+ or isinstance(target, gen_base.TargetSWIGLib)):
+ if target.lang in self._libraries:
+ lib = self._libraries[target.lang]
+ if debug and lib.debug_lib_name:
+ nondeplibs.append(lib.debug_lib_name)
+ elif lib.lib_name:
+ nondeplibs.append(lib.lib_name)
for dep in self.get_win_depends(target, FILTER_LIBS):
nondeplibs.extend(dep.msvc_libs)
- if dep.external_lib == '$(SVN_DB_LIBS)':
- nondeplibs.append(dblib)
-
- if dep.external_lib == '$(SVN_SQLITE_LIBS)' and not self.sqlite_inline:
- nondeplibs.append('sqlite3.lib')
+ if dep.external_lib:
+ for elib in re.findall('\$\(SVN_([^\)]*)_LIBS\)', dep.external_lib):
- if self.serf_lib and dep.external_lib == '$(SVN_SERF_LIBS)':
- nondeplibs.append(serflib)
- if (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
- nondeplibs.append('ssleay32.lib')
- nondeplibs.append('libeay32.lib')
+ external_lib = elib.lower()
- if dep.external_lib == '$(SVN_SASL_LIBS)':
- nondeplibs.append(sasllib)
-
- if dep.external_lib == '$(SVN_APR_LIBS)':
- nondeplibs.append(self.apr_lib)
+ if external_lib not in self._libraries:
+ if external_lib not in self._optional_libraries:
+ print('Warning: Using undeclared dependency \'$(SVN_%s_LIBS)\'.'
+ % (elib,))
+ continue
- if dep.external_lib == '$(SVN_APRUTIL_LIBS)':
- nondeplibs.append(self.aprutil_lib)
+ lib = self._libraries[external_lib]
- if dep.external_lib == '$(SVN_XML_LIBS)':
- nondeplibs.append('xml.lib')
+ if debug:
+ nondeplibs.append(lib.debug_lib_name)
+ else:
+ nondeplibs.append(lib.lib_name)
return gen_base.unique(nondeplibs)
@@ -1148,21 +928,23 @@ class WinGeneratorBase(GeneratorBase):
return list(sources.values())
- def write_file_if_changed(self, fname, new_contents):
- """Rewrite the file if new_contents are different than its current content.
+ def get_win_forced_includes(self, target, cfg):
+ """Return a list of include files that need to be included before any
+ other header in every c/c++ file"""
- If you have your windows projects open and generate the projects
- it's not a small thing for windows to re-read all projects so
- only update those that have changed.
- """
+ fakeincludes = []
+
+ for dep in self.get_win_depends(target, FILTER_EXTERNALLIBS):
+ if dep.external_lib:
+ for elib in re.findall('\$\(SVN_([^\)]*)_LIBS\)', dep.external_lib):
+ external_lib = elib.lower()
- try:
- old_contents = open(fname, 'rb').read()
- except IOError:
- old_contents = None
- if old_contents != new_contents:
- open(fname, 'wb').write(new_contents)
- print("Wrote: %s" % fname)
+ if external_lib in self._libraries:
+ lib = self._libraries[external_lib]
+
+ fakeincludes.extend(lib.forced_includes)
+
+ return gen_base.unique(fakeincludes)
def write_with_template(self, fname, tname, data):
fout = StringIO()
@@ -1172,67 +954,6 @@ class WinGeneratorBase(GeneratorBase):
template.generate(fout, data)
self.write_file_if_changed(fname, fout.getvalue())
- def write_zlib_project_file(self, name):
- if not self.zlib_path:
- return
- zlib_path = os.path.abspath(self.zlib_path)
- zlib_sources = map(lambda x : os.path.relpath(x, self.projfilesdir),
- glob.glob(os.path.join(zlib_path, '*.c')) +
- glob.glob(os.path.join(zlib_path,
- 'contrib/masmx86/*.c')) +
- glob.glob(os.path.join(zlib_path,
- 'contrib/masmx86/*.asm')))
- zlib_headers = map(lambda x : os.path.relpath(x, self.projfilesdir),
- glob.glob(os.path.join(zlib_path, '*.h')))
-
- self.move_proj_file(self.projfilesdir, name,
- (('zlib_path', os.path.relpath(zlib_path,
- self.projfilesdir)),
- ('zlib_sources', zlib_sources),
- ('zlib_headers', zlib_headers),
- ('zlib_version', self.zlib_version),
- ('project_guid', self.makeguid('zlib')),
- ('use_ml', self.have_ml and 1 or None),
- ))
-
- def write_serf_project_file(self, name):
- if not self.serf_lib:
- return
-
- serf_path = os.path.abspath(self.serf_path)
- serf_sources = map(lambda x : os.path.relpath(x, self.serf_path),
- glob.glob(os.path.join(serf_path, '*.c'))
- + glob.glob(os.path.join(serf_path, 'auth', '*.c'))
- + glob.glob(os.path.join(serf_path, 'buckets',
- '*.c')))
- serf_headers = map(lambda x : os.path.relpath(x, self.serf_path),
- glob.glob(os.path.join(serf_path, '*.h'))
- + glob.glob(os.path.join(serf_path, 'auth', '*.h'))
- + glob.glob(os.path.join(serf_path, 'buckets', '*.h')))
- if self.serf_ver_maj != 0:
- serflib = 'serf-%d.lib' % self.serf_ver_maj
- else:
- serflib = 'serf.lib'
-
- apr_static = self.static_apr and 'APR_STATIC=1' or ''
- openssl_static = self.static_openssl and 'OPENSSL_STATIC=1' or ''
- self.move_proj_file(self.serf_path, name,
- (('serf_sources', serf_sources),
- ('serf_headers', serf_headers),
- ('zlib_path', os.path.relpath(self.zlib_path,
- self.serf_path)),
- ('openssl_path', os.path.relpath(self.openssl_path,
- self.serf_path)),
- ('apr_path', os.path.relpath(self.apr_path,
- self.serf_path)),
- ('apr_util_path', os.path.relpath(self.apr_util_path,
- self.serf_path)),
- ('project_guid', self.makeguid('serf')),
- ('apr_static', apr_static),
- ('openssl_static', openssl_static),
- ('serf_lib', serflib),
- ))
-
def move_proj_file(self, path, name, params=()):
### Move our slightly templatized pre-built project files into place --
### these projects include zlib, serf, locale, config, etc.
@@ -1254,471 +975,17 @@ class WinGeneratorBase(GeneratorBase):
raise NotImplementedError
- def _find_perl(self):
- "Find the right perl library name to link swig bindings with"
- self.perl_includes = []
- self.perl_libdir = None
- fp = os.popen('perl -MConfig -e ' + escape_shell_arg(
- 'print "$Config{PERL_REVISION}$Config{PERL_VERSION}"'), 'r')
- try:
- line = fp.readline()
- if line:
- msg = 'Found installed perl version number.'
- self.perl_lib = 'perl' + line.rstrip() + '.lib'
- else:
- msg = 'Could not detect perl version.'
- self.perl_lib = 'perl56.lib'
- print('%s\n Perl bindings will be linked with %s\n'
- % (msg, self.perl_lib))
- finally:
- fp.close()
-
- fp = os.popen('perl -MConfig -e ' + escape_shell_arg(
- 'print $Config{archlib}'), 'r')
- try:
- line = fp.readline()
- if line:
- self.perl_libdir = os.path.join(line, 'CORE')
- self.perl_includes = [os.path.join(line, 'CORE')]
- finally:
- fp.close()
-
- def _find_ruby(self):
- "Find the right Ruby library name to link swig bindings with"
- self.ruby_includes = []
- self.ruby_libdir = None
- self.ruby_version = None
- self.ruby_major_version = None
- self.ruby_minor_version = None
- # Pass -W0 to stifle the "-e:1: Use RbConfig instead of obsolete
- # and deprecated Config." warning if we are using Ruby 1.9.
- proc = os.popen('ruby -rrbconfig -W0 -e ' + escape_shell_arg(
- "puts Config::CONFIG['ruby_version'];"
- "puts Config::CONFIG['LIBRUBY'];"
- "puts Config::CONFIG['archdir'];"
- "puts Config::CONFIG['libdir'];"), 'r')
- try:
- rubyver = proc.readline()[:-1]
- if rubyver:
- self.ruby_version = rubyver
- self.ruby_major_version = string.atoi(self.ruby_version[0])
- self.ruby_minor_version = string.atoi(self.ruby_version[2])
- libruby = proc.readline()[:-1]
- if libruby:
- msg = 'Found installed ruby %s' % rubyver
- self.ruby_lib = libruby
- self.ruby_includes.append(proc.readline()[:-1])
- self.ruby_libdir = proc.readline()[:-1]
- else:
- msg = 'Could not detect Ruby version, assuming 1.8.'
- self.ruby_version = "1.8"
- self.ruby_major_version = 1
- self.ruby_minor_version = 8
- self.ruby_lib = 'msvcrt-ruby18.lib'
- print('%s\n Ruby bindings will be linked with %s\n'
- % (msg, self.ruby_lib))
- finally:
- proc.close()
-
- def _find_python(self):
- "Find the appropriate options for creating SWIG-based Python modules"
- self.python_includes = []
- self.python_libdir = ""
- try:
- from distutils import sysconfig
- inc = sysconfig.get_python_inc()
- plat = sysconfig.get_python_inc(plat_specific=1)
- self.python_includes.append(inc)
- if inc != plat:
- self.python_includes.append(plat)
- self.python_libdir = self.apath(sysconfig.PREFIX, "libs")
- except ImportError:
- pass
-
- def _find_jdk(self):
- if not self.jdk_path:
- jdk_ver = None
- try:
- try:
- # Python >=3.0
- import winreg
- except ImportError:
- # Python <3.0
- import _winreg as winreg
- key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
- r"SOFTWARE\JavaSoft\Java Development Kit")
- # Find the newest JDK version.
- num_values = winreg.QueryInfoKey(key)[1]
- for i in range(num_values):
- (name, value, key_type) = winreg.EnumValue(key, i)
- if name == "CurrentVersion":
- jdk_ver = value
- break
-
- # Find the JDK path.
- if jdk_ver is not None:
- key = winreg.OpenKey(key, jdk_ver)
- num_values = winreg.QueryInfoKey(key)[1]
- for i in range(num_values):
- (name, value, key_type) = winreg.EnumValue(key, i)
- if name == "JavaHome":
- self.jdk_path = value
- break
- winreg.CloseKey(key)
- except (ImportError, EnvironmentError):
- pass
- if self.jdk_path:
- print("Found JDK version %s in %s\n" % (jdk_ver, self.jdk_path))
- else:
- print("Using JDK in %s\n" % (self.jdk_path))
-
- def _find_swig(self):
- # Require 1.3.24. If not found, assume 1.3.25.
- default_version = '1.3.25'
- minimum_version = '1.3.24'
- vernum = 103025
- minimum_vernum = 103024
- libdir = ''
-
- if self.swig_path is not None:
- self.swig_exe = os.path.abspath(os.path.join(self.swig_path, 'swig'))
- else:
- self.swig_exe = 'swig'
-
- try:
- outfp = subprocess.Popen([self.swig_exe, '-version'], stdout=subprocess.PIPE, universal_newlines=True).stdout
- txt = outfp.read()
- if txt:
- vermatch = re.compile(r'^SWIG\ Version\ (\d+)\.(\d+)\.(\d+)$', re.M) \
- .search(txt)
- else:
- vermatch = None
-
- if vermatch:
- version = tuple(map(int, vermatch.groups()))
- # build/ac-macros/swig.m4 explains the next incantation
- vernum = int('%d%02d%03d' % version)
- print('Found installed SWIG version %d.%d.%d\n' % version)
- if vernum < minimum_vernum:
- print('WARNING: Subversion requires version %s\n'
- % minimum_version)
-
- libdir = self._find_swig_libdir()
- else:
- print('Could not find installed SWIG,'
- ' assuming version %s\n' % default_version)
- self.swig_libdir = ''
- outfp.close()
- except OSError:
- print('Could not find installed SWIG,'
- ' assuming version %s\n' % default_version)
- self.swig_libdir = ''
-
- self.swig_vernum = vernum
- self.swig_libdir = libdir
-
- def _find_swig_libdir(self):
- fp = os.popen(self.swig_exe + ' -swiglib', 'r')
- try:
- libdir = fp.readline().rstrip()
- if libdir:
- print('Using SWIG library directory %s\n' % libdir)
- return libdir
- else:
- print('WARNING: could not find SWIG library directory\n')
- finally:
- fp.close()
- return ''
-
- def _find_ml(self):
- "Check if the ML assembler is in the path"
- if not self.enable_ml:
- self.have_ml = 0
- return
- fp = os.popen('ml /help', 'r')
- try:
- line = fp.readline()
- if line:
- msg = 'Found ML, ZLib build will use ASM sources'
- self.have_ml = 1
- else:
- msg = 'Could not find ML, ZLib build will not use ASM sources'
- self.have_ml = 0
- print('%s\n' % (msg,))
- finally:
- fp.close()
-
- def _get_serf_version(self):
- "Retrieves the serf version from serf.h"
-
- # shouldn't be called unless serf is there
- assert self.serf_path and os.path.exists(self.serf_path)
-
- self.serf_ver_maj = None
- self.serf_ver_min = None
- self.serf_ver_patch = None
-
- # serf.h should be present
- if not os.path.exists(os.path.join(self.serf_path, 'serf.h')):
- return None, None, None
-
- txt = open(os.path.join(self.serf_path, 'serf.h')).read()
-
- maj_match = re.search(r'SERF_MAJOR_VERSION\s+(\d+)', txt)
- min_match = re.search(r'SERF_MINOR_VERSION\s+(\d+)', txt)
- patch_match = re.search(r'SERF_PATCH_VERSION\s+(\d+)', txt)
- if maj_match:
- self.serf_ver_maj = int(maj_match.group(1))
- if min_match:
- self.serf_ver_min = int(min_match.group(1))
- if patch_match:
- self.serf_ver_patch = int(patch_match.group(1))
-
- return self.serf_ver_maj, self.serf_ver_min, self.serf_ver_patch
-
- def _find_serf(self):
- "Check if serf and its dependencies are available"
-
- minimal_serf_version = (1, 2, 1)
-
- if self.openssl_path and os.path.exists(self.openssl_path):
- version_path = os.path.join(self.openssl_path, 'inc32/openssl/opensslv.h')
- if os.path.isfile(version_path):
- # We have an OpenSSL Source location (legacy handling)
- self.openssl_inc_dir = os.path.join(self.openssl_path, 'inc32')
- if self.static_openssl:
- self.openssl_lib_dir = os.path.join(self.openssl_path, 'out32')
- else:
- self.openssl_lib_dir = os.path.join(self.openssl_path, 'out32dll')
- elif os.path.isfile(os.path.join(self.openssl_path,
- 'include/openssl/opensslv.h')):
- self.openssl_inc_dir = os.path.join(self.openssl_path, 'include')
- self.openssl_lib_dir = os.path.join(self.openssl_path, 'lib')
- else:
- print('WARNING: \'opensslv.h\' not found')
- self.openssl_path = None
-
- self.serf_lib = None
- if self.serf_path and os.path.exists(self.serf_path):
- if self.openssl_path and os.path.exists(self.openssl_path):
- self.serf_lib = 'serf'
- version = self._get_serf_version()
- if None in version:
- msg = 'Unknown serf version found; but, will try to build ' \
- 'ra_serf.'
- else:
- self.serf_ver = '.'.join(str(v) for v in version)
- if version < minimal_serf_version:
- self.serf_lib = None
- msg = 'Found serf %s, but >= %s is required. ra_serf will not be built.\n' % \
- (self.serf_ver, '.'.join(str(v) for v in minimal_serf_version))
- else:
- msg = 'Found serf %s' % self.serf_ver
- print(msg)
- else:
- print('openssl not found, ra_serf will not be built\n')
- else:
- print('serf not found, ra_serf will not be built\n')
-
- def _find_apr(self):
- "Find the APR library and version"
-
- minimal_apr_version = (0, 9, 0)
-
- version_file_path = os.path.join(self.apr_path, 'include',
- 'apr_version.h')
-
- if not os.path.exists(version_file_path):
- sys.stderr.write("ERROR: '%s' not found.\n" % version_file_path);
- sys.stderr.write("Use '--with-apr' option to configure APR location.\n");
- sys.exit(1)
-
- fp = open(version_file_path)
- txt = fp.read()
- fp.close()
-
- vermatch = re.search(r'^\s*#define\s+APR_MAJOR_VERSION\s+(\d+)', txt, re.M)
- major = int(vermatch.group(1))
-
- vermatch = re.search(r'^\s*#define\s+APR_MINOR_VERSION\s+(\d+)', txt, re.M)
- minor = int(vermatch.group(1))
-
- vermatch = re.search(r'^\s*#define\s+APR_PATCH_VERSION\s+(\d+)', txt, re.M)
- patch = int(vermatch.group(1))
-
- version = (major, minor, patch)
- self.apr_version = '%d.%d.%d' % version
-
- suffix = ''
- if major > 0:
- suffix = '-%d' % major
-
- if self.static_apr:
- self.apr_lib = 'apr%s.lib' % suffix
- else:
- self.apr_lib = 'libapr%s.lib' % suffix
-
- if version < minimal_apr_version:
- sys.stderr.write("ERROR: apr %s or higher is required "
- "(%s found)\n" % (
- '.'.join(str(v) for v in minimal_apr_version),
- self.apr_version))
- sys.exit(1)
- else:
- print('Found apr %s' % self.apr_version)
-
- def _find_apr_util(self):
- "Find the APR-util library and version"
-
- minimal_aprutil_version = (0, 9, 0)
- version_file_path = os.path.join(self.apr_util_path, 'include',
- 'apu_version.h')
-
- if not os.path.exists(version_file_path):
- sys.stderr.write("ERROR: '%s' not found.\n" % version_file_path);
- sys.stderr.write("Use '--with-apr-util' option to configure APR-Util location.\n");
- sys.exit(1)
-
- fp = open(version_file_path)
- txt = fp.read()
- fp.close()
-
- vermatch = re.search(r'^\s*#define\s+APU_MAJOR_VERSION\s+(\d+)', txt, re.M)
- major = int(vermatch.group(1))
-
- vermatch = re.search(r'^\s*#define\s+APU_MINOR_VERSION\s+(\d+)', txt, re.M)
- minor = int(vermatch.group(1))
-
- vermatch = re.search(r'^\s*#define\s+APU_PATCH_VERSION\s+(\d+)', txt, re.M)
- patch = int(vermatch.group(1))
-
- version = (major, minor, patch)
- self.aprutil_version = '%d.%d.%d' % version
-
- suffix = ''
- if major > 0:
- suffix = '-%d' % major
-
- if self.static_apr:
- self.aprutil_lib = 'aprutil%s.lib' % suffix
- else:
- self.aprutil_lib = 'libaprutil%s.lib' % suffix
-
- if version < minimal_aprutil_version:
- sys.stderr.write("ERROR: aprutil %s or higher is required "
- "(%s found)\n" % (
- '.'.join(str(v) for v in minimal_aprutil_version),
- self.aprutil_version))
- sys.exit(1)
- else:
- print('Found aprutil %s' % self.aprutil_version)
-
- def _find_sqlite(self):
- "Find the Sqlite library and version"
-
- minimal_sqlite_version = (3, 7, 12)
-
- header_file = os.path.join(self.sqlite_path, 'inc', 'sqlite3.h')
-
- # First check for compiled version of SQLite.
- if os.path.exists(header_file):
- # Compiled SQLite seems found, check for sqlite3.lib file.
- lib_file = os.path.join(self.sqlite_path, 'lib', 'sqlite3.lib')
- if not os.path.exists(lib_file):
- sys.stderr.write("ERROR: '%s' not found.\n" % lib_file)
- sys.stderr.write("Use '--with-sqlite' option to configure sqlite location.\n");
- sys.exit(1)
- self.sqlite_inline = False
- else:
- # Compiled SQLite not found. Try amalgamation version.
- amalg_file = os.path.join(self.sqlite_path, 'sqlite3.c')
- if not os.path.exists(amalg_file):
- sys.stderr.write("ERROR: SQLite not found in '%s' directory.\n" % self.sqlite_path)
- sys.stderr.write("Use '--with-sqlite' option to configure sqlite location.\n");
- sys.exit(1)
- header_file = os.path.join(self.sqlite_path, 'sqlite3.h')
- self.sqlite_inline = True
-
- fp = open(header_file)
- txt = fp.read()
- fp.close()
- vermatch = re.search(r'^\s*#define\s+SQLITE_VERSION\s+"(\d+)\.(\d+)\.(\d+)(?:\.(\d))?"', txt, re.M)
-
- version = vermatch.groups()
-
- # Sqlite doesn't add patch numbers for their ordinary releases
- if not version[3]:
- version = version[0:3]
-
- version = tuple(map(int, version))
-
- self.sqlite_version = '.'.join(str(v) for v in version)
-
- if version < minimal_sqlite_version:
- sys.stderr.write("ERROR: sqlite %s or higher is required "
- "(%s found)\n" % (
- '.'.join(str(v) for v in minimal_sqlite_version),
- self.sqlite_version))
- sys.exit(1)
- else:
- print('Found SQLite %s' % self.sqlite_version)
-
- def _find_zlib(self):
- "Find the ZLib library and version"
-
- if not self.zlib_path:
- self.zlib_version = '1'
- return
-
- header_file = os.path.join(self.zlib_path, 'zlib.h')
-
- if not os.path.exists(header_file):
- self.zlib_version = '1'
- return
-
- fp = open(header_file)
- txt = fp.read()
- fp.close()
- vermatch = re.search(r'^\s*#define\s+ZLIB_VERSION\s+"(\d+)\.(\d+)\.(\d+)(?:\.\d)?"', txt, re.M)
-
- version = tuple(map(int, vermatch.groups()))
-
- self.zlib_version = '%d.%d.%d' % version
-
- print('Found ZLib %s' % self.zlib_version)
-
class ProjectItem:
"A generic item class for holding sources info, config info, etc for a project"
def __init__(self, **kw):
+ self.ignored = None
vars(self).update(kw)
# ============================================================================
-# This is a cut-down and modified version of code from:
-# subversion/subversion/bindings/swig/python/svn/core.py
-#
-if sys.platform == "win32":
- _escape_shell_arg_re = re.compile(r'(\\+)(\"|$)')
-
- def escape_shell_arg(arg):
- # The (very strange) parsing rules used by the C runtime library are
- # described at:
- # http://msdn.microsoft.com/library/en-us/vclang/html/_pluslang_Parsing_C.2b2b_.Command.2d.Line_Arguments.asp
-
- # double up slashes, but only if they are followed by a quote character
- arg = re.sub(_escape_shell_arg_re, r'\1\1\2', arg)
-
- # surround by quotes and escape quotes inside
- arg = '"' + arg.replace('"', '"^""') + '"'
- return arg
-
-else:
- def escape_shell_arg(str):
- return "'" + str.replace("'", "'\\''") + "'"
-
-# ============================================================================
FILTER_LIBS = 1
FILTER_PROJECTS = 2
+FILTER_EXTERNALLIBS = 3
class POFile:
"Item class for holding po file info"
diff --git a/build/generator/gen_win_dependencies.py b/build/generator/gen_win_dependencies.py
new file mode 100644
index 0000000..68a1784
--- /dev/null
+++ b/build/generator/gen_win_dependencies.py
@@ -0,0 +1,1465 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+#
+# gen_win_dependencies.py
+#
+# base class for generating windows projects, containing the
+# dependency locator code shared between the test runner and
+# the make file generators
+#
+
+import os
+import sys
+import fnmatch
+import re
+import subprocess
+import string
+
+if sys.version_info[0] >= 3:
+ # Python >=3.0
+ from io import StringIO
+else:
+ # Python <3.0
+ try:
+ from cStringIO import StringIO
+ except ImportError:
+ from StringIO import StringIO
+
+import gen_base
+import ezt
+
+class SVNCommonLibrary:
+
+ def __init__(self, name, include_dirs, lib_dir, lib_name, version=None,
+ debug_lib_dir=None, debug_lib_name=None, dll_dir=None,
+ dll_name=None, debug_dll_dir=None, debug_dll_name=None,
+ defines=[], forced_includes=[], extra_bin=[]):
+ self.name = name
+ if include_dirs:
+ self.include_dirs = include_dirs if isinstance(include_dirs, list) \
+ else [include_dirs]
+ else:
+ self.include_dirs = []
+ self.defines = defines if not defines or isinstance(defines, list) else [defines]
+ self.lib_dir = lib_dir
+ self.lib_name = lib_name
+ self.version = version
+ self.dll_dir = dll_dir
+ self.dll_name = dll_name
+
+ self.forced_includes = forced_includes if not forced_includes \
+ or isinstance(forced_includes, list) \
+ else [forced_includes]
+
+ if debug_lib_dir:
+ self.debug_lib_dir = debug_lib_dir
+ else:
+ self.debug_lib_dir = lib_dir
+
+ if debug_lib_name:
+ self.debug_lib_name = debug_lib_name
+ else:
+ self.debug_lib_name = lib_name
+
+ if debug_dll_dir:
+ self.debug_dll_dir = debug_dll_dir
+ else:
+ self.debug_dll_dir = dll_dir
+
+ if debug_dll_name:
+ self.debug_dll_name = debug_dll_name
+ else:
+ self.debug_dll_name = dll_name
+
+ self.extra_bin = extra_bin
+
+class GenDependenciesBase(gen_base.GeneratorBase):
+ """This intermediate base class exists to be instantiated by win-tests.py,
+ in order to obtain information from build.conf and library paths without
+ actually doing any generation."""
+ _extension_map = {
+ ('exe', 'target'): '.exe',
+ ('exe', 'object'): '.obj',
+ ('lib', 'target'): '.dll',
+ ('lib', 'object'): '.obj',
+ ('pyd', 'target'): '.pyd',
+ ('pyd', 'object'): '.obj',
+ ('so', 'target'): '.so',
+ ('so', 'object'): '.obj',
+ }
+
+ _libraries = {} # Dict of SVNCommonLibrary instances of found libraries
+
+ _optional_libraries = [ # List of optional libraries to suppress warnings
+ 'db',
+ 'intl',
+ 'serf',
+ 'sasl',
+ 'swig',
+ 'perl',
+ 'python',
+ 'ruby',
+ 'java_sdk',
+ 'openssl',
+ 'apr_memcache',
+
+ # So optional, we don't even have any code to detect them on Windows
+ 'magic',
+ ]
+
+ # When build.conf contains a 'when = SOMETHING' where SOMETHING is not in
+ # this list, then the project is not generated on Windows.
+ _windows_when = [
+ 'INSTALL_APACHE_MODS',
+ # not 'SVN_USE_GMOCK',
+ ]
+
+ def parse_options(self, options):
+ self.apr_path = 'apr'
+ self.apr_util_path = 'apr-util'
+ self.apr_iconv_path = 'apr-iconv'
+ self.serf_path = None
+ self.bdb_path = None
+ self.httpd_path = None
+ self.libintl_path = None
+ self.zlib_path = 'zlib'
+ self.openssl_path = None
+ self.jdk_path = None
+ self.junit_path = None
+ self.swig_path = None
+ self.vs_version = '2002'
+ self.sln_version = '7.00'
+ self.vcproj_version = '7.00'
+ self.vcproj_extension = '.vcproj'
+ self.sqlite_path = 'sqlite-amalgamation'
+ self.skip_sections = { 'mod_dav_svn': None,
+ 'mod_authz_svn': None,
+ 'mod_dontdothat' : None,
+ 'libsvn_auth_kwallet': None,
+ 'libsvn_auth_gnome_keyring': None }
+
+ # Instrumentation options
+ self.disable_shared = None
+ self.static_apr = None
+ self.static_openssl = None
+ self.instrument_apr_pools = None
+ self.instrument_purify_quantify = None
+ self.sasl_path = None
+ self.cpp_defines = []
+
+ # NLS options
+ self.enable_nls = None
+
+ for opt, val in options:
+ if opt == '--with-berkeley-db':
+ self.bdb_path = val
+ elif opt == '--with-apr':
+ self.apr_path = val
+ elif opt == '--with-apr-util':
+ self.apr_util_path = val
+ elif opt == '--with-apr-iconv':
+ self.apr_iconv_path = val
+ elif opt == '--with-serf':
+ self.serf_path = val
+ elif opt == '--with-httpd':
+ self.httpd_path = val
+ del self.skip_sections['mod_dav_svn']
+ del self.skip_sections['mod_authz_svn']
+ del self.skip_sections['mod_dontdothat']
+ elif opt == '--with-libintl':
+ self.libintl_path = val
+ self.enable_nls = 1
+ elif opt == '--with-jdk':
+ self.jdk_path = val
+ elif opt == '--with-junit':
+ self.junit_path = val
+ elif opt == '--with-zlib':
+ self.zlib_path = val
+ elif opt == '--with-swig':
+ self.swig_path = val
+ elif opt == '--with-sqlite':
+ self.sqlite_path = val
+ elif opt == '--with-sasl':
+ self.sasl_path = val
+ elif opt == '--with-openssl':
+ self.openssl_path = val
+ elif opt == '--enable-purify':
+ self.instrument_purify_quantify = 1
+ self.instrument_apr_pools = 1
+ elif opt == '--enable-quantify':
+ self.instrument_purify_quantify = 1
+ elif opt == '--enable-pool-debug':
+ self.instrument_apr_pools = 1
+ elif opt == '--enable-nls':
+ self.enable_nls = 1
+ elif opt == '--disable-shared':
+ self.disable_shared = 1
+ elif opt == '--with-static-apr':
+ self.static_apr = 1
+ elif opt == '--with-static-openssl':
+ self.static_openssl = 1
+ elif opt == '-D':
+ self.cpp_defines.append(val)
+ elif opt == '--vsnet-version':
+ if val == '2002' or re.match('^7(\.\d+)?$', val):
+ self.vs_version = '2002'
+ self.sln_version = '7.00'
+ self.vcproj_version = '7.00'
+ self.vcproj_extension = '.vcproj'
+ elif val == '2003' or re.match('^8(\.\d+)?$', val):
+ self.vs_version = '2003'
+ self.sln_version = '8.00'
+ self.vcproj_version = '7.10'
+ self.vcproj_extension = '.vcproj'
+ elif val == '2005' or re.match('^9(\.\d+)?$', val):
+ self.vs_version = '2005'
+ self.sln_version = '9.00'
+ self.vcproj_version = '8.00'
+ self.vcproj_extension = '.vcproj'
+ elif val == '2008' or re.match('^10(\.\d+)?$', val):
+ self.vs_version = '2008'
+ self.sln_version = '10.00'
+ self.vcproj_version = '9.00'
+ self.vcproj_extension = '.vcproj'
+ elif val == '2010':
+ self.vs_version = '2010'
+ self.sln_version = '11.00'
+ self.vcproj_version = '10.0'
+ self.vcproj_extension = '.vcxproj'
+ elif val == '2012' or val == '11':
+ self.vs_version = '2012'
+ self.sln_version = '12.00'
+ self.vcproj_version = '11.0'
+ self.vcproj_extension = '.vcxproj'
+ elif val == '2013' or val == '12':
+ self.vs_version = '2013'
+ self.sln_version = '12.00'
+ self.vcproj_version = '12.0'
+ self.vcproj_extension = '.vcxproj'
+ elif val == '2015' or val == '14':
+ self.vs_version = '2015'
+ self.sln_version = '12.00'
+ self.vcproj_version = '14.0'
+ self.vcproj_extension = '.vcxproj'
+ elif re.match('^20\d+$', val):
+ print('WARNING: Unknown VS.NET version "%s",'
+ ' assuming VS2012. Your VS can probably upgrade')
+ self.vs_version = '2012'
+ self.sln_version = '12.00'
+ self.vcproj_version = '11.0'
+ self.vcproj_extension = '.vcxproj'
+ elif re.match('^1\d+$', val):
+ self.vs_version = val
+ self.sln_version = '12.00'
+ self.vcproj_version = val + '.0'
+ self.vcproj_extension = '.vcxproj'
+ else:
+ print('WARNING: Unknown VS.NET version "%s",'
+ ' assuming "%s"\n' % (val, '7.00'))
+
+
+ def __init__(self, fname, verfname, options, find_libs=True):
+
+ # parse (and save) the options that were passed to us
+ self.parse_options(options)
+
+ # Initialize parent
+ gen_base.GeneratorBase.__init__(self, fname, verfname, options)
+
+ # These files will be excluded from the build when they're not
+ # explicitly listed as project sources.
+ self._excluded_from_build = frozenset(self.private_includes
+ + self.private_built_includes)
+
+ if find_libs:
+ self.find_libraries(False)
+
+ def find_libraries(self, show_warnings):
+ "find required and optional libraries"
+
+ # Required dependencies
+ self._find_apr()
+ self._find_apr_util_etc()
+ self._find_zlib()
+ self._find_sqlite(show_warnings)
+
+ # Optional dependencies
+ self._find_httpd(show_warnings)
+ self._find_bdb(show_warnings)
+ self._find_openssl(show_warnings)
+ self._find_serf(show_warnings)
+ self._find_sasl(show_warnings)
+ self._find_libintl(show_warnings)
+
+ self._find_jdk(show_warnings)
+
+ # Swig (optional) dependencies
+ if self._find_swig(show_warnings):
+ self._find_perl(show_warnings)
+ self._find_python(show_warnings)
+ self._find_ruby(show_warnings)
+
+ def _find_apr(self):
+ "Find the APR library and version"
+
+ minimal_apr_version = (1, 3, 0)
+
+ if not self.apr_path:
+ sys.stderr.write("ERROR: Use '--with-apr' option to configure APR " + \
+ "location.\n")
+ sys.exit(1)
+
+ inc_base = os.path.join(self.apr_path, 'include')
+
+ if os.path.isfile(os.path.join(inc_base, 'apr-1', 'apr_version.h')):
+ inc_path = os.path.join(inc_base, 'apr-1')
+ elif os.path.isfile(os.path.join(inc_base, 'apr_version.h')):
+ inc_path = inc_base
+ else:
+ sys.stderr.write("ERROR: 'apr_version' not found.\n")
+ sys.stderr.write("Use '--with-apr' option to configure APR location.\n")
+ sys.exit(1)
+
+ version_file_path = os.path.join(inc_path, 'apr_version.h')
+ txt = open(version_file_path).read()
+
+ vermatch = re.search(r'^\s*#define\s+APR_MAJOR_VERSION\s+(\d+)', txt, re.M)
+ major = int(vermatch.group(1))
+
+ vermatch = re.search(r'^\s*#define\s+APR_MINOR_VERSION\s+(\d+)', txt, re.M)
+ minor = int(vermatch.group(1))
+
+ vermatch = re.search(r'^\s*#define\s+APR_PATCH_VERSION\s+(\d+)', txt, re.M)
+ patch = int(vermatch.group(1))
+
+ version = (major, minor, patch)
+ self.apr_version = apr_version = '%d.%d.%d' % version
+
+ if version < minimal_apr_version:
+ sys.stderr.write("ERROR: apr %s or higher is required "
+ "(%s found)\n" % (
+ '.'.join(str(v) for v in minimal_apr_version),
+ self.apr_version))
+ sys.exit(1)
+
+ suffix = ''
+ if major > 0:
+ suffix = '-%d' % major
+
+ defines = []
+ if self.static_apr:
+ lib_name = 'apr%s.lib' % suffix
+ lib_dir = os.path.join(self.apr_path, 'LibR')
+ dll_dir = None
+ debug_dll_dir = None
+ dll_name = None
+ defines.extend(["APR_DECLARE_STATIC"])
+
+ if not os.path.isdir(lib_dir) and \
+ os.path.isfile(os.path.join(self.apr_path, 'lib', lib_name)):
+ # Installed APR instead of APR-Source
+ lib_dir = os.path.join(self.apr_path, 'lib')
+ debug_lib_dir = None
+ else:
+ debug_lib_dir = os.path.join(self.apr_path, 'LibD')
+ else:
+ lib_name = 'libapr%s.lib' % suffix
+
+ if os.path.isfile(os.path.join(self.apr_path, 'lib', lib_name)):
+ # Installed APR instead of APR-Source
+ lib_dir = os.path.join(self.apr_path, 'lib')
+ debug_lib_dir = None
+ else:
+ lib_dir = os.path.join(self.apr_path, 'Release')
+ if os.path.isfile(os.path.join(self.apr_path, 'Debug', lib_name)):
+ debug_lib_dir = os.path.join(self.apr_path, 'Debug')
+ else:
+ debug_lib_dir = None
+
+ dll_name = 'libapr%s.dll' % suffix
+ if os.path.isfile(os.path.join(lib_dir, dll_name)):
+ dll_dir = lib_dir
+ debug_dll_dir = debug_lib_dir
+ else:
+ dll_dir = os.path.join(self.apr_path, 'bin')
+ debug_dll_dir = None
+
+ extra_bin = []
+
+ if dll_dir:
+ bin_files = os.listdir(dll_dir)
+ if debug_dll_dir and os.path.isdir(debug_dll_dir):
+ debug_bin_files = os.listdir(debug_dll_dir)
+ else:
+ debug_bin_files = bin_files
+
+ for bin in bin_files:
+ if bin in debug_bin_files:
+ if re.match('^(lib)?apr[-_].*' + suffix + '(d)?.dll$', bin):
+ extra_bin.append(bin)
+
+ self._libraries['apr'] = SVNCommonLibrary('apr', inc_path, lib_dir, lib_name,
+ apr_version,
+ debug_lib_dir=debug_lib_dir,
+ dll_dir=dll_dir,
+ dll_name=dll_name,
+ debug_dll_dir=debug_dll_dir,
+ defines=defines,
+ extra_bin=extra_bin)
+
+ def _find_apr_util_etc(self):
+ "Find the APR-util library and version"
+
+ minimal_aprutil_version = (1, 3, 0)
+
+ inc_base = os.path.join(self.apr_util_path, 'include')
+
+ if os.path.isfile(os.path.join(inc_base, 'apr-1', 'apu_version.h')):
+ inc_path = os.path.join(inc_base, 'apr-1')
+ elif os.path.isfile(os.path.join(inc_base, 'apu_version.h')):
+ inc_path = inc_base
+ else:
+ sys.stderr.write("ERROR: 'apu_version' not found.\n")
+ sys.stderr.write("Use '--with-apr-util' option to configure APR-Util location.\n")
+ sys.exit(1)
+
+ version_file_path = os.path.join(inc_path, 'apu_version.h')
+ txt = open(version_file_path).read()
+
+ vermatch = re.search(r'^\s*#define\s+APU_MAJOR_VERSION\s+(\d+)', txt, re.M)
+ major = int(vermatch.group(1))
+
+ vermatch = re.search(r'^\s*#define\s+APU_MINOR_VERSION\s+(\d+)', txt, re.M)
+ minor = int(vermatch.group(1))
+
+ vermatch = re.search(r'^\s*#define\s+APU_PATCH_VERSION\s+(\d+)', txt, re.M)
+ patch = int(vermatch.group(1))
+
+ version = (major, minor, patch)
+ self.aprutil_version = aprutil_version = '%d.%d.%d' % version
+
+ if version < minimal_aprutil_version:
+ sys.stderr.write("ERROR: apr-util %s or higher is required "
+ "(%s found)\n" % (
+ '.'.join(str(v) for v in minimal_aprutil_version),
+ aprutil_version))
+ sys.exit(1)
+
+ suffix = ''
+ if major > 0:
+ suffix = '-%d' % major
+
+ defines = []
+ if self.static_apr:
+ lib_name = 'aprutil%s.lib' % suffix
+ lib_dir = os.path.join(self.apr_util_path, 'LibR')
+ dll_dir = None
+ debug_dll_dir = None
+ dll_name = None
+ defines.extend(["APU_DECLARE_STATIC"])
+
+ if not os.path.isdir(lib_dir) and \
+ os.path.isfile(os.path.join(self.apr_util_path, 'lib', lib_name)):
+ # Installed APR-Util instead of APR-Util-Source
+ lib_dir = os.path.join(self.apr_util_path, 'lib')
+ debug_lib_dir = None
+ else:
+ debug_lib_dir = os.path.join(self.apr_util_path, 'LibD')
+ else:
+ lib_name = 'libaprutil%s.lib' % suffix
+ lib_dir = os.path.join(self.apr_util_path, 'Release')
+
+ if not os.path.isdir(lib_dir) and \
+ os.path.isfile(os.path.join(self.apr_util_path, 'lib', lib_name)):
+ # Installed APR-Util instead of APR-Util-Source
+ lib_dir = os.path.join(self.apr_util_path, 'lib')
+ debug_lib_dir = lib_dir
+ else:
+ debug_lib_dir = os.path.join(self.apr_util_path, 'Debug')
+
+ dll_name = 'libaprutil%s.dll' % suffix
+ if os.path.isfile(os.path.join(lib_dir, dll_name)):
+ dll_dir = lib_dir
+ debug_dll_dir = debug_lib_dir
+ else:
+ dll_dir = os.path.join(self.apr_util_path, 'bin')
+ debug_dll_dir = None
+
+ extra_bin = []
+
+ if dll_dir:
+ bin_files = os.listdir(dll_dir)
+ if debug_dll_dir and os.path.isdir(debug_dll_dir):
+ debug_bin_files = os.listdir(debug_dll_dir)
+ else:
+ debug_bin_files = bin_files
+
+ for bin in bin_files:
+ if bin in debug_bin_files:
+ if re.match('^(lib)?aprutil[-_].*' + suffix + '(d)?.dll$', bin):
+ extra_bin.append(bin)
+
+ self._libraries['aprutil'] = SVNCommonLibrary('apr-util', inc_path, lib_dir,
+ lib_name,
+ aprutil_version,
+ debug_lib_dir=debug_lib_dir,
+ dll_dir=dll_dir,
+ dll_name=dll_name,
+ debug_dll_dir=debug_dll_dir,
+ defines=defines,
+ extra_bin=extra_bin)
+
+ # Perhaps apr-util can also provide memcached support
+ if version >= (1, 3, 0) :
+ self._libraries['apr_memcache'] = SVNCommonLibrary(
+ 'apr_memcache', inc_path, lib_dir,
+ None, aprutil_version,
+ defines=['SVN_HAVE_MEMCACHE'])
+
+ # And now find expat
+ # If we have apr-util as a source location, it is in a subdir.
+ # If we have an install package it is in the lib subdir
+ if os.path.exists(os.path.join(self.apr_util_path, 'xml/expat')):
+ inc_path = os.path.join(self.apr_util_path, 'xml/expat/lib')
+ lib_dir = os.path.join(self.apr_util_path, 'xml/expat/lib/LibR')
+ debug_lib_dir = os.path.join(self.apr_util_path, 'xml/expat/lib/LibD')
+ else:
+ inc_path = os.path.join(self.apr_util_path, 'include')
+ lib_dir = os.path.join(self.apr_util_path, 'lib')
+ debug_lib_dir = None
+
+ version_file_path = os.path.join(inc_path, 'expat.h')
+
+ if not os.path.exists(version_file_path):
+ sys.stderr.write("ERROR: '%s' not found.\n" % version_file_path);
+ sys.stderr.write("Use '--with-apr-util' option to configure APR-Util's XML location.\n");
+ sys.exit(1)
+
+ txt = open(version_file_path).read()
+
+ vermatch = re.search(r'^\s*#define\s+XML_MAJOR_VERSION\s+(\d+)', txt, re.M)
+ major = int(vermatch.group(1))
+
+ vermatch = re.search(r'^\s*#define\s+XML_MINOR_VERSION\s+(\d+)', txt, re.M)
+ minor = int(vermatch.group(1))
+
+ vermatch = re.search(r'^\s*#define\s+XML_MICRO_VERSION\s+(\d+)', txt, re.M)
+ patch = int(vermatch.group(1))
+
+ # apr-Util 0.9-1.4 compiled expat to 'xml.lib', but apr-util 1.5 switched
+ # to the more common 'libexpat.lib'
+ libname = 'libexpat.lib'
+ if not os.path.exists(os.path.join(lib_dir, 'libexpat.lib')):
+ libname = 'xml.lib'
+
+ version = (major, minor, patch)
+ xml_version = '%d.%d.%d' % version
+
+ self._libraries['xml'] = SVNCommonLibrary('expat', inc_path, lib_dir,
+ libname, xml_version,
+ debug_lib_dir = debug_lib_dir,
+ defines=['XML_STATIC'])
+
+ def _find_httpd(self, show_warnings):
+ "Find Apache HTTPD and version"
+
+ minimal_httpd_version = (2, 2, 0)
+ if not self.httpd_path:
+ return
+
+ inc_base = os.path.join(self.httpd_path, 'include')
+
+ if os.path.isfile(os.path.join(inc_base, 'apache26', 'ap_release.h')):
+ inc_path = os.path.join(inc_base, 'apache26')
+ elif os.path.isfile(os.path.join(inc_base, 'apache24', 'ap_release.h')):
+ inc_path = os.path.join(inc_base, 'apache24')
+ elif os.path.isfile(os.path.join(inc_base, 'apache22', 'ap_release.h')):
+ inc_path = os.path.join(inc_base, 'apache22')
+ elif os.path.isfile(os.path.join(inc_base, 'apache20', 'ap_release.h')):
+ inc_path = os.path.join(inc_base, 'apache20')
+ elif os.path.isfile(os.path.join(inc_base, 'apache2', 'ap_release.h')):
+ inc_path = os.path.join(inc_base, 'apache2')
+ elif os.path.isfile(os.path.join(inc_base, 'apache', 'ap_release.h')):
+ inc_path = os.path.join(inc_base, 'apache')
+ elif os.path.isfile(os.path.join(inc_base, 'ap_release.h')):
+ inc_path = inc_base
+ else:
+ if show_warnings:
+ print('WARNING: \'ap_release.h\' not found')
+ print("Use '--with-httpd' to configure openssl location.");
+ return
+
+ version_file_path = os.path.join(inc_path, 'ap_release.h')
+ txt = open(version_file_path).read()
+
+ vermatch = re.search(r'^\s*#define\s+AP_SERVER_MAJORVERSION_NUMBER\s+(\d+)',
+ txt, re.M)
+ major = int(vermatch.group(1))
+
+ vermatch = re.search(r'^\s*#define\s+AP_SERVER_MINORVERSION_NUMBER\s+(\d+)',
+ txt, re.M)
+ minor = int(vermatch.group(1))
+
+ vermatch = re.search(r'^\s*#define\s+AP_SERVER_PATCHLEVEL_NUMBER\s+(\d+)',
+ txt, re.M)
+ patch = int(vermatch.group(1))
+
+ version = (major, minor, patch)
+ httpd_version = '%d.%d.%d' % version
+
+ if version < minimal_httpd_version:
+ if show_warnings:
+ print("WARNING: httpd %s or higher is required "
+ "(%s found)\n" % (
+ '.'.join(str(v) for v in minimal_httpd_version),
+ httpd_version))
+ return
+
+ lib_name = 'libhttpd.lib'
+ lib_base = self.httpd_path
+
+ debug_lib_dir = None
+
+ if os.path.isfile(os.path.join(lib_base, 'lib', lib_name)):
+ # Install location
+ lib_dir = os.path.join(lib_base, 'lib')
+ elif os.path.isfile(os.path.join(lib_base, 'Release', lib_name)):
+ # Source location
+ lib_dir = os.path.join(lib_base, 'Release')
+ if os.path.isfile(os.path.join(lib_base, 'Debug', lib_name)):
+ debug_lib_dir = os.path.join(lib_base, 'Debug')
+
+ # Our modules run inside httpd, so we don't have to find binaries
+
+ self._libraries['httpd'] = SVNCommonLibrary('httpd', inc_path, lib_dir, lib_name,
+ httpd_version,
+ debug_lib_dir=debug_lib_dir,
+ defines=['AP_DECLARE_EXPORT'])
+
+ # And now find mod_dav
+
+ if os.path.isfile(os.path.join(inc_path, 'mod_dav.h')):
+ # Install location, we are lucky
+ inc_path = inc_path
+ elif os.path.isfile(os.path.join(lib_base, 'modules/dav/main/mod_dav.h')):
+ # Source location
+ inc_path = os.path.join(lib_base, 'modules/dav/main')
+ else:
+ if show_warnings:
+ print("WARNING: Can't find mod_dav.h in the httpd directory")
+ return
+
+ lib_name = 'mod_dav.lib'
+ if os.path.isfile(os.path.join(lib_dir, lib_name)):
+ # Same location as httpd
+ lib_dir = lib_dir
+ elif os.path.isfile(os.path.join(lib_base, 'modules/dav/main/Release', lib_name)):
+ # Source location
+ lib_dir = os.path.join(lib_base, 'modules/dav/main/Release')
+
+ if os.path.isfile(os.path.join(lib_base, 'modules/dav/main/Debug', lib_name)):
+ debug_lib_dir = os.path.join(lib_base, 'modules/dav/main/Debug')
+ else:
+ debug_lib_dir = None
+ else:
+ if show_warnings:
+ print("WARNING: Can't find mod_dav.lib in the httpd directory")
+ return
+
+ self._libraries['mod_dav'] = SVNCommonLibrary('mod_dav', inc_path, lib_dir, lib_name,
+ httpd_version,
+ debug_lib_dir=debug_lib_dir)
+
+ def _find_zlib(self):
+ "Find the ZLib library and version"
+
+ minimal_zlib_version = (1, 2, 5)
+
+ if not self.zlib_path or not os.path.isdir(self.zlib_path):
+ sys.stderr.write("ERROR: '%s' not found.\n" % self.zlib_path);
+ sys.stderr.write("Use '--with-zlib' option to configure ZLib location.\n");
+ sys.exit(1)
+
+ if os.path.isdir(os.path.join(self.zlib_path, 'include')):
+ # We have an install location
+ inc_path = os.path.join(self.zlib_path, 'include')
+ lib_path = os.path.join(self.zlib_path, 'lib')
+
+ # Different build options produce different library names :(
+ if os.path.exists(os.path.join(lib_path, 'zlibstatic.lib')):
+ # CMake default: zlibstatic.lib (static) and zlib.lib (dll)
+ lib_name = 'zlibstatic.lib'
+ elif os.path.exists(os.path.join(lib_path, 'zlibstat.lib')):
+ # Visual Studio project file default: zlibstat.lib (static) and zlibwapi.lib (dll)
+ lib_name = 'zlibstat.lib'
+ else:
+ # Standard makefile produces zlib.lib (static) and zdll.lib (dll)
+ lib_name = 'zlib.lib'
+ debug_lib_name = None
+ else:
+ # We have a source location
+ inc_path = lib_path = self.zlib_path
+ lib_name = 'zlibstat.lib'
+ debug_lib_name = 'zlibstatD.lib'
+
+ version_file_path = os.path.join(inc_path, 'zlib.h')
+
+ if not os.path.exists(version_file_path):
+ sys.stderr.write("ERROR: '%s' not found.\n" % version_file_path);
+ sys.stderr.write("Use '--with-zlib' option to configure ZLib location.\n");
+ sys.exit(1)
+
+ txt = open(version_file_path).read()
+ vermatch = re.search(
+ r'^\s*#define\s+ZLIB_VERSION\s+"(\d+)\.(\d+)\.(\d+)(?:\.\d)?"',
+ txt, re.M)
+
+ version = tuple(map(int, vermatch.groups()))
+ self.zlib_version = '%d.%d.%d' % version
+
+ if version < minimal_zlib_version:
+ sys.stderr.write("ERROR: ZLib %s or higher is required "
+ "(%s found)\n" % (
+ '.'.join(str(v) for v in minimal_zlib_version),
+ self.zlib_version))
+ sys.exit(1)
+
+ self._libraries['zlib'] = SVNCommonLibrary('zlib', inc_path, lib_path, lib_name,
+ self.zlib_version,
+ debug_lib_name=debug_lib_name)
+
+ def _find_bdb(self, show_warnings):
+ "Find the Berkeley DB library and version"
+
+ # try default path to detect BDB support, unless different path is
+ # specified so to keep pre 1.10-behavior for BDB detection on Windows
+ bdb_path = 'db4-win32'
+
+ if self.bdb_path:
+ bdb_path = self.bdb_path
+
+ inc_path = os.path.join(bdb_path, 'include')
+ db_h_path = os.path.join(inc_path, 'db.h')
+
+ if not os.path.isfile(db_h_path):
+ if show_warnings and self.bdb_path:
+ print('WARNING: \'%s\' not found' % (db_h_path,))
+ print("Use '--with-berkeley-db' to configure BDB location.");
+ return
+
+ # Obtain bdb version from db.h
+ txt = open(db_h_path).read()
+
+ maj_match = re.search(r'DB_VERSION_MAJOR\s+(\d+)', txt)
+ min_match = re.search(r'DB_VERSION_MINOR\s+(\d+)', txt)
+ patch_match = re.search(r'DB_VERSION_PATCH\s+(\d+)', txt)
+
+ if maj_match and min_match and patch_match:
+ ver = (int(maj_match.group(1)),
+ int(min_match.group(1)),
+ int(patch_match.group(1)))
+ else:
+ return
+
+ version = '%d.%d.%d' % ver
+ versuffix = '%d%d' % (ver[0], ver[1])
+
+ # Before adding "60" to this list, see build/ac-macros/berkeley-db.m4.
+ if versuffix not in (
+ '50', '51', '52', '53',
+ '40', '41', '42', '43', '44', '45', '46', '47', '48',
+ ):
+ return
+
+ lib_dir = os.path.join(bdb_path, 'lib')
+ lib_name = 'libdb%s.lib' % (versuffix,)
+
+ if not os.path.exists(os.path.join(lib_dir, lib_name)):
+ return
+
+ # Do we have a debug version?
+ debug_lib_name = 'libdb%sd.lib' % (versuffix,)
+ if not os.path.isfile(os.path.join(lib_dir, debug_lib_name)):
+ debug_lib_name = None
+
+ dll_dir = os.path.join(bdb_path, 'bin')
+
+ # Are there binaries we should copy for testing?
+ dll_name = os.path.splitext(lib_name)[0] + '.dll'
+ if not os.path.isfile(os.path.join(dll_dir, dll_name)):
+ dll_name = None
+
+ if debug_lib_name:
+ debug_dll_name = os.path.splitext(debug_lib_name)[0] + '.dll'
+ if not os.path.isfile(os.path.join(dll_dir, debug_dll_name)):
+ debug_dll_name = None
+ else:
+ debug_dll_name = None
+
+ # Usually apr-util doesn't find BDB on Windows, so we help apr-util
+ # by defining the value ourselves (Legacy behavior)
+ defines = ['APU_HAVE_DB=1', 'SVN_LIBSVN_FS_LINKS_FS_BASE']
+
+ self._libraries['db'] = SVNCommonLibrary('db', inc_path, lib_dir, lib_name,
+ version,
+ debug_lib_name=debug_lib_name,
+ dll_dir=dll_dir,
+ dll_name=dll_name,
+ debug_dll_name=debug_dll_name,
+ defines=defines)
+
+ def _find_openssl(self, show_warnings):
+ "Find openssl"
+
+ if not self.openssl_path:
+ return
+
+ version_path = os.path.join(self.openssl_path, 'inc32/openssl/opensslv.h')
+ if os.path.isfile(version_path):
+ # We have an OpenSSL Source location
+ # For legacy reason
+ inc_dir = os.path.join(self.openssl_path, 'inc32')
+ if self.static_openssl:
+ lib_dir = os.path.join(self.openssl_path, 'out32')
+ bin_dir = None
+ else:
+ lib_dir = os.path.join(self.openssl_path, 'out32dll')
+ bin_dir = lib_dir
+ elif os.path.isfile(os.path.join(self.openssl_path,
+ 'include/openssl/opensslv.h')):
+ version_path = os.path.join(self.openssl_path,
+ 'include/openssl/opensslv.h')
+ inc_dir = os.path.join(self.openssl_path, 'include')
+ lib_dir = os.path.join(self.openssl_path, 'lib')
+ if self.static_openssl:
+ bin_dir = None
+ else:
+ bin_dir = os.path.join(self.openssl_path, 'bin')
+ else:
+ if show_warnings:
+ print('WARNING: \'opensslv.h\' not found')
+ print("Use '--with-openssl' to configure openssl location.");
+ return
+
+ txt = open(version_path).read()
+
+ vermatch = re.search(
+ r'#\s*define\s+OPENSSL_VERSION_TEXT\s+"OpenSSL\s+((\d+)\.(\d+).(\d+)([^ -]*))',
+ txt)
+
+ version = (int(vermatch.group(2)),
+ int(vermatch.group(3)),
+ int(vermatch.group(4)))
+ openssl_version = vermatch.group(1)
+
+ self._libraries['openssl'] = SVNCommonLibrary('openssl', inc_dir, lib_dir,
+ 'ssleay32.lib',
+ openssl_version,
+ dll_name='ssleay32.dll',
+ dll_dir=bin_dir)
+
+ self._libraries['libeay32'] = SVNCommonLibrary('openssl', inc_dir, lib_dir,
+ 'libeay32.lib',
+ openssl_version,
+ dll_name='libeay32.dll',
+ dll_dir=bin_dir)
+
+ def _find_perl(self, show_warnings):
+ "Find the right perl library name to link swig bindings with"
+
+ fp = os.popen('perl -MConfig -e ' + escape_shell_arg(
+ 'print "$Config{libperl}\\n"; '
+ 'print "$Config{PERL_REVISION}.$Config{PERL_VERSION}.'
+ '$Config{PERL_SUBVERSION}\\n"; '
+ 'print "$Config{archlib}\\n"'), 'r')
+ try:
+ line = fp.readline()
+ if line:
+ perl_lib = line.strip()
+ else:
+ return
+
+ line = fp.readline()
+ if line:
+ perl_version = line.strip()
+ perl_ver = perl_version.split('.')
+ else:
+ return
+
+ line = fp.readline()
+ if line:
+ lib_dir = os.path.join(line.strip(), 'CORE')
+ inc_dir = lib_dir
+ finally:
+ fp.close()
+
+ perl_ver = tuple(map(int, perl_ver))
+ forced_includes = []
+
+ if perl_ver >= (5, 18, 0):
+ forced_includes.append('swigutil_pl__pre_perl.h')
+
+ self._libraries['perl'] = SVNCommonLibrary('perl', inc_dir, lib_dir,
+ perl_lib, perl_version,
+ forced_includes=forced_includes)
+
+ def _find_ruby(self, show_warnings):
+ "Find the right Ruby library name to link swig bindings with"
+
+ lib_dir = None
+ inc_dirs = []
+
+ # Pass -W0 to stifle the "-e:1: Use RbConfig instead of obsolete
+ # and deprecated Config." warning if we are using Ruby 1.9.
+ fp = os.popen('ruby -rrbconfig -W0 -e ' + escape_shell_arg(
+ "puts RbConfig::CONFIG['ruby_version'];"
+ "puts RbConfig::CONFIG['LIBRUBY'];"
+ "puts RbConfig::CONFIG['libdir'];"
+ "puts RbConfig::CONFIG['rubyhdrdir'];"
+ "puts RbConfig::CONFIG['arch'];"), 'r')
+ try:
+ line = fp.readline()
+ if line:
+ ruby_version = line.strip()
+
+ line = fp.readline()
+ if line:
+ ruby_lib = line.strip()
+
+ line = fp.readline()
+ if line:
+ lib_dir = line.strip()
+
+ line = fp.readline()
+ if line:
+ inc_base = line.strip()
+ inc_dirs = [inc_base]
+
+ line = fp.readline()
+ if line:
+ inc_dirs.append(os.path.join(inc_base, line.strip()))
+
+ finally:
+ fp.close()
+
+ if not lib_dir:
+ return
+
+ # Visual C++ prior to VS2015 doesn't have a standard compliant snprintf
+ if self.vs_version < '2015':
+ defines = ['snprintf=_snprintf']
+ else:
+ defines = []
+
+ ver = ruby_version.split('.')
+ ver = tuple(map(int, ver))
+ if ver >= (1, 8, 0):
+ defines.extend(["HAVE_RB_ERRINFO"])
+
+ forced_includes = []
+
+ if ver >= (1, 8, 0):
+ # Swig redefines NUM2LL as NUM2LONG if it isn't defined, but on Windows
+ # ruby 1.8+ declares NUM2LL as a static inline function.
+ # (LL2NUM and NUM2ULL don't have these problems)
+ defines.extend(['NUM2LL=NUM2LL'])
+
+ if ver >= (1, 9, 0):
+ forced_includes.append('swigutil_rb__pre_ruby.h')
+ defines.extend(["SVN_SWIG_RUBY__CUSTOM_RUBY_CONFIG"])
+
+ self._libraries['ruby'] = SVNCommonLibrary('ruby', inc_dirs, lib_dir,
+ ruby_lib, ruby_version,
+ defines=defines,
+ forced_includes=forced_includes)
+
+ def _find_python(self, show_warnings):
+ "Find the appropriate options for creating SWIG-based Python modules"
+
+ try:
+ from distutils import sysconfig
+
+ inc_dir = sysconfig.get_python_inc()
+ lib_dir = os.path.join(sysconfig.PREFIX, "libs")
+ except ImportError:
+ return
+
+ self._libraries['python'] = SVNCommonLibrary('python', inc_dir, lib_dir, None,
+ sys.version.split(' ')[0])
+
+ def _find_jdk(self, show_warnings):
+ "Find details about an installed jdk"
+
+ jdk_path = self.jdk_path
+ self.jdk_path = None # No jdk on errors
+
+ minimal_jdk_version = (1, 0, 0) # ### Provide sane default
+
+ if not jdk_path:
+ jdk_ver = None
+ try:
+ try:
+ # Python >=3.0
+ import winreg
+ except ImportError:
+ # Python <3.0
+ import _winreg as winreg
+ key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
+ r"SOFTWARE\JavaSoft\Java Development Kit")
+ # Find the newest JDK version.
+ num_values = winreg.QueryInfoKey(key)[1]
+ for i in range(num_values):
+ (name, value, key_type) = winreg.EnumValue(key, i)
+ if name == "CurrentVersion":
+ jdk_ver = value
+ break
+
+ # Find the JDK path.
+ if jdk_ver is not None:
+ key = winreg.OpenKey(key, jdk_ver)
+ num_values = winreg.QueryInfoKey(key)[1]
+ for i in range(num_values):
+ (name, value, key_type) = winreg.EnumValue(key, i)
+ if name == "JavaHome":
+ jdk_path = value
+ break
+ winreg.CloseKey(key)
+ except (ImportError, EnvironmentError):
+ pass
+
+ if not jdk_path or not os.path.isdir(jdk_path):
+ return
+
+ try:
+ outfp = subprocess.Popen([os.path.join(jdk_path, 'bin', 'javah.exe'),
+ '-version'], stdout=subprocess.PIPE).stdout
+ line = outfp.read()
+ if line:
+ vermatch = re.search(r'"(([0-9]+(\.[0-9]+)+)(_[._0-9]+)?)"', line, re.M)
+ else:
+ vermatch = None
+
+ if vermatch:
+ version = tuple(map(int, vermatch.groups()[1].split('.')))
+ versionstr = vermatch.groups()[0]
+ else:
+ if show_warnings:
+ print('Could not find installed JDK,')
+ return
+ outfp.close()
+ except OSError:
+ if show_warnings:
+ print('Could not find installed JDK,')
+ return
+
+ if version < minimal_jdk_version:
+ if show_warnings:
+ print('Found java jdk %s, but >= %s is required. '
+ 'javahl will not be built.\n' % \
+ (versionstr, '.'.join(str(v) for v in minimal_jdk_version)))
+ return
+
+ self.jdk_path = jdk_path
+ inc_dirs = [
+ os.path.join(jdk_path, 'include'),
+ os.path.join(jdk_path, 'include', 'win32'),
+ ]
+
+ lib_dir = os.path.join(jdk_path, 'lib')
+
+ # The JDK provides .lib files, but we currently don't use these.
+ self._libraries['java_sdk'] = SVNCommonLibrary('java-sdk', inc_dirs,
+ lib_dir, None,
+ versionstr)
+
+ def _find_swig(self, show_warnings):
+ "Find details about an installed swig"
+
+ minimal_swig_version = (1, 3, 25)
+
+ if not self.swig_path:
+ swig_exe = 'swig.exe'
+ else:
+ swig_exe = os.path.abspath(os.path.join(self.swig_path, 'swig.exe'))
+
+ if self.swig_path is not None:
+ self.swig_exe = os.path.abspath(os.path.join(self.swig_path, 'swig.exe'))
+ else:
+ self.swig_exe = 'swig'
+
+ swig_version = None
+ try:
+ fp = subprocess.Popen([self.swig_exe, '-version'],
+ stdout=subprocess.PIPE).stdout
+ txt = fp.read()
+ if txt:
+ vermatch = re.search(r'^SWIG\ Version\ (\d+)\.(\d+)\.(\d+)', txt, re.M)
+ else:
+ vermatch = None
+
+ if vermatch:
+ swig_version = tuple(map(int, vermatch.groups()))
+ fp.close()
+ except OSError:
+ swig_version = None
+
+ if not swig_version:
+ if show_warnings:
+ print('Could not find installed SWIG')
+ return False
+
+ swig_ver = '%d.%d.%d' % (swig_version)
+ if swig_version < minimal_swig_version:
+ if show_warnings:
+ print('Found swig %s, but >= %s is required. '
+ 'the swig bindings will not be built.\n' %
+ (swig_version, '.'.join(str(v) for v in minimal_swig_version)))
+ return
+
+ try:
+ fp = subprocess.Popen([self.swig_exe, '-swiglib'],
+ stdout=subprocess.PIPE).stdout
+ lib_dir = fp.readline().strip()
+ fp.close()
+ except OSError:
+ lib_dir = None
+ fp.close()
+
+ if not lib_dir:
+ if show_warnings:
+ print('Could not find libdir of installed SWIG')
+ return False
+
+ if (not self.swig_path and
+ os.path.isfile(os.path.join(lib_dir, '../swig.exe'))):
+ self.swig_path = os.path.dirname(lib_dir)
+
+ inc_dirs = [
+ 'subversion/bindings/swig',
+ 'subversion/bindings/swig/proxy',
+ 'subversion/bindings/swig/include',
+ ]
+
+ self.swig_libdir = lib_dir
+ self.swig_version = swig_version
+
+ self._libraries['swig'] = SVNCommonLibrary('swig', inc_dirs, lib_dir, None,
+ swig_ver)
+ return True
+
+ def _get_serf_version(self, inc_dir):
+ "Retrieves the serf version from serf.h"
+
+ # shouldn't be called unless serf is there
+ assert inc_dir and os.path.exists(inc_dir)
+
+ serf_ver_maj = None
+ serf_ver_min = None
+ serf_ver_patch = None
+
+ # serf.h should be present
+ if not os.path.exists(os.path.join(inc_dir, 'serf.h')):
+ return None, None, None
+
+ txt = open(os.path.join(inc_dir, 'serf.h')).read()
+
+ maj_match = re.search(r'SERF_MAJOR_VERSION\s+(\d+)', txt)
+ min_match = re.search(r'SERF_MINOR_VERSION\s+(\d+)', txt)
+ patch_match = re.search(r'SERF_PATCH_VERSION\s+(\d+)', txt)
+ if maj_match:
+ serf_ver_maj = int(maj_match.group(1))
+ if min_match:
+ serf_ver_min = int(min_match.group(1))
+ if patch_match:
+ serf_ver_patch = int(patch_match.group(1))
+
+ return serf_ver_maj, serf_ver_min, serf_ver_patch
+
+ def _find_serf(self, show_warnings):
+ "Check if serf and its dependencies are available"
+
+ minimal_serf_version = (1, 3, 4)
+
+ if not self.serf_path:
+ return
+
+ inc_dir = self.serf_path
+
+ if os.path.isfile(os.path.join(inc_dir, 'serf.h')):
+ # Source layout
+ lib_dir = self.serf_path
+ debug_lib_dir = None
+ inc_dir = self.serf_path
+ elif os.path.isfile(os.path.join(self.serf_path, 'include/serf-1/serf.h')):
+ # Install layout
+ inc_dir = os.path.join(self.serf_path, 'include/serf-1')
+ lib_dir = os.path.join(self.serf_path, 'lib')
+ debug_lib_dir = None
+ elif os.path.isfile(os.path.join(self.serf_path, 'include/serf-2/serf.h')):
+ # Install layout
+ inc_dir = os.path.join(self.serf_path, 'include/serf-2')
+ lib_dir = os.path.join(self.serf_path, 'lib')
+ debug_lib_dir = None
+ else:
+ if show_warnings:
+ print('WARNING: \'serf.h\' not found')
+ print("Use '--with-serf' to configure serf location.");
+ return
+
+ version = self._get_serf_version(inc_dir)
+ serf_version = '.'.join(str(v) for v in version)
+
+ if version < minimal_serf_version:
+ if show_warnings:
+ print('Found serf %s, but >= %s is required. '
+ 'ra_serf will not be built.\n' %
+ (serf_version, '.'.join(str(v) for v in minimal_serf_version)))
+ return
+
+ serf_ver_maj = version[0]
+
+ if serf_ver_maj > 0:
+ lib_name = 'serf-%d.lib' % (serf_ver_maj,)
+ else:
+ lib_name = 'serf.lib'
+
+ defines = ['SVN_HAVE_SERF', 'SVN_LIBSVN_CLIENT_LINKS_RA_SERF']
+
+ self._libraries['serf'] = SVNCommonLibrary('serf', inc_dir, lib_dir,
+ lib_name, serf_version,
+ debug_lib_dir=debug_lib_dir,
+ defines=defines)
+
+ def _find_sasl(self, show_warnings):
+ "Check if sals is available"
+
+ minimal_sasl_version = (2, 0, 0)
+
+ if not self.sasl_path:
+ return
+
+ inc_dir = os.path.join(self.sasl_path, 'include')
+
+ version_file_path = os.path.join(inc_dir, 'sasl.h')
+
+ if not os.path.isfile(version_file_path):
+ if show_warnings:
+ print('WARNING: \'%s\' not found' % (version_file_path,))
+ print("Use '--with-sasl' to configure sasl location.");
+ return
+
+ txt = open(version_file_path).read()
+
+ vermatch = re.search(r'^\s*#define\s+SASL_VERSION_MAJOR\s+(\d+)', txt, re.M)
+ major = int(vermatch.group(1))
+
+ vermatch = re.search(r'^\s*#define\s+SASL_VERSION_MINOR\s+(\d+)', txt, re.M)
+ minor = int(vermatch.group(1))
+
+ vermatch = re.search(r'^\s*#define\s+SASL_VERSION_STEP\s+(\d+)', txt, re.M)
+ patch = int(vermatch.group(1))
+
+ version = (major, minor, patch)
+ sasl_version = '.'.join(str(v) for v in version)
+
+ if version < minimal_sasl_version:
+ if show_warnings:
+ print('Found sasl %s, but >= %s is required. '
+ 'sals support will not be built.\n' %
+ (sasl_version, '.'.join(str(v) for v in minimal_serf_version)))
+ return
+
+ lib_dir = os.path.join(self.sasl_path, 'lib')
+
+ if os.path.isfile(os.path.join(lib_dir, 'libsasl.dll')):
+ dll_dir = lib_dir
+ dll_name = 'libsasl.dll'
+ elif os.path.isfile(os.path.join(self.sasl_path, 'bin', 'libsasl.dll')):
+ dll_dir = os.path.join(self.sasl_path, 'bin')
+ dll_name = 'libsasl.dll'
+ else:
+ # Probably a static compilation
+ dll_dir = None
+ dll_name = None
+
+ self._libraries['sasl'] = SVNCommonLibrary('sasl', inc_dir, lib_dir,
+ 'libsasl.lib', sasl_version,
+ dll_dir=dll_dir,
+ dll_name=dll_name,
+ defines=['SVN_HAVE_SASL'])
+
+ def _find_libintl(self, show_warnings):
+ "Find gettext support"
+ minimal_libintl_version = (0, 14, 1)
+
+ if not self.enable_nls or not self.libintl_path:
+ return;
+
+ # We support 2 scenarios.
+ if os.path.isfile(os.path.join(self.libintl_path, 'inc', 'libintl.h')) and\
+ os.path.isfile(os.path.join(self.libintl_path, 'lib', 'intl3_svn.lib')):
+
+ # 1. Subversion's custom libintl based on gettext 0.14.1
+ inc_dir = os.path.join(self.libintl_path, 'inc')
+ lib_dir = os.path.join(self.libintl_path, 'lib')
+ dll_dir = os.path.join(self.libintl_path, 'bin')
+
+ lib_name = 'intl3_svn.lib'
+ dll_name = 'intl3_svn.dll'
+ elif os.path.isfile(os.path.join(self.libintl_path, \
+ 'include', 'libintl.h')):
+ # 2. A gettext install
+ inc_dir = os.path.join(self.libintl_path, 'include')
+ lib_dir = os.path.join(self.libintl_path, 'lib')
+ dll_dir = os.path.join(self.libintl_path, 'bin')
+
+ lib_name = 'intl.lib'
+ dll_name = 'intl.dll'
+ else:
+ if (show_warnings):
+ print('WARNING: \'libintl.h\' not found')
+ print("Use '--with-libintl' to configure libintl location.")
+ return
+
+ version_file_path = os.path.join(inc_dir, 'libintl.h')
+ txt = open(version_file_path).read()
+
+ match = re.search(r'^\s*#define\s+LIBINTL_VERSION\s+((0x)?[0-9A-Fa-f]+)',
+ txt, re.M)
+
+ ver = int(match.group(1), 0)
+ version = (ver >> 16, (ver >> 8) & 0xFF, ver & 0xFF)
+
+ libintl_version = '.'.join(str(v) for v in version)
+
+ if version < minimal_libintl_version:
+ if show_warnings:
+ print('Found libintl %s, but >= %s is required.\n' % \
+ (libintl_version,
+ '.'.join(str(v) for v in minimal_libintl_version)))
+ return
+
+ self._libraries['intl'] = SVNCommonLibrary('libintl', inc_dir, lib_dir,
+ lib_name, libintl_version,
+ dll_dir=dll_dir,
+ dll_name=dll_name)
+
+ def _find_sqlite(self, show_warnings):
+ "Find the Sqlite library and version"
+
+ minimal_sqlite_version = (3, 7, 12)
+
+ # For SQLite we support 3 scenarios:
+ # - Installed in standard directory layout
+ # - Installed in legacy directory layout
+ # - Amalgamation compiled directly into our libraries
+
+ sqlite_base = self.sqlite_path
+
+ lib_dir = None
+ dll_dir = None
+ dll_name = None
+ defines = []
+
+ lib_name = 'sqlite3.lib'
+
+ if os.path.isfile(os.path.join(sqlite_base, 'include/sqlite3.h')):
+ # Standard layout
+ inc_dir = os.path.join(sqlite_base, 'include')
+ lib_dir = os.path.join(sqlite_base, 'lib')
+
+ # We assume a static library, but let's support shared in this case
+ if os.path.isfile(os.path.join(sqlite_base, 'bin/sqlite3.dll')):
+ dll_dir = os.path.join(sqlite_base, 'bin')
+ dll_name = 'sqlite3.dll'
+ elif os.path.isfile(os.path.join(sqlite_base, 'inc/sqlite3.h')):
+ # Standard layout
+ inc_dir = os.path.join(sqlite_base, 'inc')
+ lib_dir = os.path.join(sqlite_base, 'lib')
+
+ # We assume a static library, but let's support shared in this case
+ if os.path.isfile(os.path.join(sqlite_base, 'bin/sqlite3.dll')):
+ dll_dir = os.path.join(sqlite_base, 'bin')
+ dll_name = 'sqlite3.dll'
+ elif (os.path.isfile(os.path.join(sqlite_base, 'sqlite3.h'))
+ and os.path.isfile(os.path.join(sqlite_base, 'sqlite3.c'))):
+ # Amalgamation
+ inc_dir = sqlite_base
+ lib_dir = None
+ lib_name = None
+ defines.append('SVN_SQLITE_INLINE')
+ else:
+ sys.stderr.write("ERROR: SQLite not found\n")
+ sys.stderr.write("Use '--with-sqlite' option to configure sqlite location.\n");
+ sys.exit(1)
+
+ version_file_path = os.path.join(inc_dir, 'sqlite3.h')
+
+ txt = open(version_file_path).read()
+
+ match = re.search(r'^\s*#define\s+SQLITE_VERSION\s+'
+ r'"(\d+)\.(\d+)\.(\d+)(?:\.(\d))?"', txt, re.M)
+
+ version = match.groups()
+
+ # Sqlite doesn't add patch numbers for their ordinary releases
+ if not version[3]:
+ version = version[0:3]
+
+ version = tuple(map(int, version))
+
+ sqlite_version = '.'.join(str(v) for v in version)
+
+ if version < minimal_sqlite_version:
+ sys.stderr.write("ERROR: sqlite %s or higher is required "
+ "(%s found)\n" % (
+ '.'.join(str(v) for v in minimal_sqlite_version),
+ sqlite_version))
+ sys.exit(1)
+
+ self._libraries['sqlite'] = SVNCommonLibrary('sqlite', inc_dir, lib_dir,
+ lib_name, sqlite_version,
+ dll_dir=dll_dir,
+ dll_name=dll_name,
+ defines=defines)
+
+# ============================================================================
+# This is a cut-down and modified version of code from:
+# subversion/subversion/bindings/swig/python/svn/core.py
+#
+if sys.platform == "win32":
+ _escape_shell_arg_re = re.compile(r'(\\+)(\"|$)')
+
+ def escape_shell_arg(arg):
+ # The (very strange) parsing rules used by the C runtime library are
+ # described at:
+ # http://msdn.microsoft.com/library/en-us/vclang/html/_pluslang_Parsing_C.2b2b_.Command.2d.Line_Arguments.asp
+
+ # double up slashes, but only if they are followed by a quote character
+ arg = re.sub(_escape_shell_arg_re, r'\1\1\2', arg)
+
+ # surround by quotes and escape quotes inside
+ arg = '"' + arg.replace('"', '"^""') + '"'
+ return arg
+
+else:
+ def escape_shell_arg(str):
+ return "'" + str.replace("'", "'\\''") + "'"
diff --git a/build/generator/swig/__init__.py b/build/generator/swig/__init__.py
index 99820cc..993d17b 100644
--- a/build/generator/swig/__init__.py
+++ b/build/generator/swig/__init__.py
@@ -61,10 +61,17 @@ class Generator:
self.swig_path = swig_path
self.swig_libdir = _exec.output([self.swig_path, "-swiglib"], strip=1)
+ _swigVersion = None
def version(self):
"""Get the version number of SWIG"""
- swig_version = _exec.output([self.swig_path, "-version"])
- m = re.search("Version (\d+).(\d+).(\d+)", swig_version)
- if m:
- return (m.group(1), m.group(2), m.group(3))
- return (0, 0, 0)
+
+ if not self._swigVersion:
+ swig_version = _exec.output([self.swig_path, "-version"])
+ m = re.search("Version (\d+).(\d+).(\d+)", swig_version)
+ if m:
+ self._swigVersion = tuple(map(int, m.groups()))
+ else:
+ self._swigVersion = (0, 0, 0)
+
+ # Copy value to avoid changes
+ return tuple(list(self._swigVersion))
diff --git a/build/generator/swig/external_runtime.py b/build/generator/swig/external_runtime.py
index bbf58fc..c37c225 100755
--- a/build/generator/swig/external_runtime.py
+++ b/build/generator/swig/external_runtime.py
@@ -24,7 +24,12 @@
# external_runtime.py: Generate external runtime files for SWIG
#
-import sys, os, re, fileinput
+import sys
+import os
+import re
+import fileinput
+import filecmp
+
if __name__ == "__main__":
parent_dir = os.path.dirname(os.path.abspath(os.path.dirname(sys.argv[0])))
sys.path[0:0] = [ parent_dir, os.path.dirname(parent_dir) ]
@@ -63,8 +68,10 @@ class Generator(generator.swig.Generator):
"python": "pyrun.swg", "perl":"perlrun.swg", "ruby":"rubydef.swg"
}
- # Build runtime files
- out = self._output_file(lang)
+ # Build runtime files to temporary location
+ dest = self._output_file(lang)
+ out = dest + '.tmp'
+
if self.version() == (1, 3, 24):
out_file = open(out, "w")
out_file.write(open("%s/swigrun.swg" % self.proxy_dir).read())
@@ -99,6 +106,26 @@ class Generator(generator.swig.Generator):
sys.stdout.write(
re.sub(r"SWIG_GetModule\(\)", "SWIG_GetModule(NULL)", line)
)
+
+ # Did the output change?
+ try:
+ if filecmp.cmp(dest, out):
+ identical = True
+ else:
+ identical = False
+ except:
+ identical = False
+
+ # Only overwrite file if changed
+ if identical:
+ os.remove(out)
+ else:
+ try:
+ os.remove(dest)
+ except: pass
+ os.rename(out, dest)
+ print('Wrote %s' % (dest,))
+
def _output_file(self, lang):
"""Return the output filename of the runtime for the given language"""
return '%s/swig_%s_external_runtime.swg' % (self.proxy_dir, lang)
diff --git a/build/generator/templates/build-outputs.mk.ezt b/build/generator/templates/build-outputs.mk.ezt
index 97e024a..3677a6d 100644
--- a/build/generator/templates/build-outputs.mk.ezt
+++ b/build/generator/templates/build-outputs.mk.ezt
@@ -44,7 +44,10 @@ check-deps test-deps: [for test_helpers] [test_helpers][end]
MANPAGES =[for manpages] [manpages][end]
CLEAN_FILES =[for cfiles] [cfiles][end]
-EXTRACLEAN_FILES =[for sql] [sql.header][end]
+EXTRACLEAN_FILES =[for sql] [sql.header][end] \
+ $(abs_builddir)/subversion/libsvn_subr/errorcode.inc \
+ $(abs_builddir)/subversion/libsvn_subr/config_keys.inc \
+ $(abs_srcdir)/compile_commands.json
SWIG_INCLUDES = -I$(abs_builddir)/subversion \
-I$(abs_srcdir)/subversion/include \
@@ -97,7 +100,7 @@ autogen-swig: autogen-swig-[swig_langs.short]
install-[target.install]: [target.install_deps][end]
[is target.type "java"][target.varname]_HEADERS = [for target.headers][if-index target.headers first][else] [end][target.headers][end]
[target.varname]_OBJECTS = [for target.objects][if-index target.objects first][else] [end][target.objects][end]
-[target.varname]_DEPS = $([target.varname]_HEADERS) $([target.varname]_OBJECTS) [target.add_deps] [for target.deps][if-index target.deps first][else] [end][target.deps][end]
+[target.varname]_DEPS = $([target.varname]_HEADERS) $([target.varname]_OBJECTS)[for target.add_deps] [target.add_deps][end][for target.deps][if-index target.deps first][else] [end][target.deps][end]
[target.name]: $([target.varname]_DEPS)
[if-any target.headers][target.varname]_CLASS_FILENAMES =[for target.header_class_filenames] [target.header_class_filenames][end]
[target.varname]_CLASSES =[for target.header_classes] [target.header_classes][end]
@@ -108,9 +111,9 @@ $([target.varname]_OBJECTS): $([target.varname]_SRC)
[target.link_cmd] -d [target.output_dir] -classpath [target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_SRC)
[if-any target.jar]
$(JAR) cf [target.jar_path] -C [target.classes][for target.packages] [target.packages][end][end][end]
-[else][is target.type "i18n"][target.varname]_DEPS = [target.add_deps][for target.objects] [target.objects][end][for target.deps] [target.deps][end]
+[else][is target.type "i18n"][target.varname]_DEPS =[for target.add_deps] [target.add_deps][end][for target.objects] [target.objects][end][for target.deps] [target.deps][end]
[target.name]: $([target.varname]_DEPS)
-[else][target.varname]_DEPS = [target.add_deps][for target.objects] [target.objects][end][for target.deps] [target.deps][end]
+[else][target.varname]_DEPS =[for target.add_deps] [target.add_deps][end][for target.objdeps] [target.objdeps][end][for target.deps] [target.deps][end]
[target.varname]_OBJECTS =[for target.objnames] [target.objnames][end]
[target.filename]: $([target.varname]_DEPS)
[if-any target.when]if $([target.when]) ; then [else][end]cd [target.path] && [target.link_cmd] $([target.varname]_LDFLAGS) -o [target.basename] [target.undefined_flag] $([target.varname]_OBJECTS)[for target.libs] [target.libs][end] $(LIBS)[if-any target.when] ; else echo "fake" > [target.filename] ; fi[else][end]
@@ -128,9 +131,10 @@ $([target.varname]_OBJECTS): $([target.varname]_SRC)
########################################
[for areas]
install-[areas.type]: [for areas.files][if-index areas.files first][else] [end][areas.files.fullname][end]
-[if-any areas.files][for areas.files] [is areas.files.mode "apache-mod"][if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd [areas.files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ; $(INSTALL_MOD_SHARED) -n [areas.files.name] [areas.files.filename][if-any areas.files.when] ; fi[else][end][else][if-index areas.files first]$(MKDIR) $(DESTDIR)$([areas.varname]dir)
+[if-any areas.files][for areas.files] [is areas.files.mode "apache-mod"][if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd [areas.files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ; $(INSTALL_MOD_SHARED) -n [areas.files.name] [areas.files.filename][if-any areas.files.when] ; fi[else][end][else][if-index areas.files first]$(MKDIR) $(DESTDIR)$([areas.varname]dir)[if-any areas.files.pc_installdir] $(DESTDIR)[areas.files.pc_installdir][end]
[else][end][is areas.type "locale"]$(MKDIR) [areas.files.installdir]
- [if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] [areas.files.installdir]/$(PACKAGE_NAME)[areas.files.objext][if-any areas.files.when] ; fi[else][end][else][if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] $(DESTDIR)[areas.files.install_fname][if-any areas.files.when] ; fi[else][end][end][end]
+ [if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] [areas.files.installdir]/$(PACKAGE_NAME)[areas.files.objext][if-any areas.files.when] ; fi[else][end][else][if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] $(DESTDIR)[areas.files.install_fname][if-any areas.files.when] ; fi[else][end]
+ [if-any areas.files.pc_fullname]$(INSTALL_DATA) [areas.files.pc_fullname] $(DESTDIR)[areas.files.pc_install_fname][end][end][end]
[end][else] $(MKDIR) $(DESTDIR)$([areas.varname]dir)
[end][if-any areas.extra_install] $(INSTALL_EXTRA_[areas.uppervar])
[end][end]
diff --git a/build/generator/templates/build_locale.ezt b/build/generator/templates/build_locale.ezt
index ab7d201..a4b3db9 100644
--- a/build/generator/templates/build_locale.ezt
+++ b/build/generator/templates/build_locale.ezt
@@ -19,7 +19,7 @@
@echo off
@rem **************************************************************************
cd ..\..\..\subversion\po
-mkdir ..\..\%1\mo
+if not exist ..\..\%1\mo mkdir ..\..\%1\mo
set exitcode=0
[for pofiles]echo Running msgfmt on [pofiles.po]...
msgfmt.exe -c -o ..\..\%1\mo\[pofiles.mo] [pofiles.po]
diff --git a/build/generator/templates/build_zlib.ezt b/build/generator/templates/build_zlib.ezt
deleted file mode 100644
index 9724f7d..0000000
--- a/build/generator/templates/build_zlib.ezt
+++ /dev/null
@@ -1,134 +0,0 @@
-[define COPYRIGHT]
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-[end]@echo off
-@rem **************************************************************************
-@rem * --== WARNING ==-- This is a generated file. Do not edit!
-@rem *
-@rem * From this directory, run this batch file like so:
-@rem *
-@rem * .\build_zlib debug|release Win32|X64 [rebuild|clean]
-@rem *
-@rem **************************************************************************
-
-@rem **************************************************************************
-cd /D [zlib_path]
-set exitcode=0
-set zlib_version=[zlib_version]
-
-if /i "%1" == "release" goto release
-if /i "%1" == "debug" goto debug
-goto pIerr
-
-:checkplatform
-if /i "%2" == "Win32" goto PWin32
-if /i "%2" == "x64" goto PX64
-goto pIIerr
-
-:checkrebuild
-
-[if-any use_ml]
-@rem **************************************************************************
-@rem Compile ASM sources with ML
-set ASFLAGS=-nologo -Zi -coff
-set LOC=-DASMV -DASMINF
-[is zlib_version "1.2.4"]
-set OBJA=contrib\masmx86\gvmat32c.obj contrib\masmx86\gvmat32.obj contrib\masmx86\inffas32.obj
-set ASM_OPTS=ASFLAGS="%ASFLAGS%" LOC="%LOC%" OBJA="%OBJA%"
-[else]
-if /i "%2" == "Win32" (
- set ASM_OPTS=LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj" "AS=ml -safeseh"
-) else if /i "%2" == "x64" (
- set ASM_OPTS=LOC="-DASMV -DASMINF" OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" AS=ml64
-)
-[end]
-[end]
-
-
-if /i "%3" == "rebuild" goto rebuild
-if /i "%3" == "clean" goto clean
-if not "%3" == "" goto pIIIerr
-set target= %STATICLIB%
-goto build
-
-:rebuild
-set target=clean %STATICLIB%
-goto build
-
-:clean
-set target=clean
-goto build
-
-@rem **************************************************************************
-:release
-set STATICLIB=zlibstat.lib
-set CC_OPTS=/MD /O2 /Zi
-goto checkplatform
-
-@rem **************************************************************************
-:debug
-set STATICLIB=zlibstatD.lib
-set CC_OPTS=/MDd /Gm /ZI /Od /GZ /D_DEBUG
-goto checkplatform
-
-@rem **************************************************************************
-:PWin32
-goto checkrebuild
-
-@rem **************************************************************************
-:PX64
-goto checkrebuild
-
-@rem **************************************************************************
-:build
-set COMMON_CC_OPTS=/nologo /W3 /DWIN32 /D_WINDOWS
-[is zlib_version "1.2.4"]
-set CFLAGS=%COMMON_CC_OPTS% %CC_OPTS% %LOC%
-set BUILD_OPTS=%ASM_OPTS% CFLAGS="%COMMON_CC_OPTS% %CC_OPTS% %LOC%"
-[else]
-set BUILD_OPTS=%ASM_OPTS%
-[end]
-@echo nmake /f win32\Makefile.msc %BUILD_OPTS% STATICLIB=%STATICLIB% %target%
-nmake /nologo /f win32\Makefile.msc %BUILD_OPTS% STATICLIB=%STATICLIB% %target%
-if errorlevel 1 goto err
-goto end
-
-@rem **************************************************************************
-:pIerr
-echo error: First parameter should be "release" or "debug"
-goto err
-
-@rem **************************************************************************
-:pIIerr
-echo error: Second parameter should be "Win32" or "X64"
-goto err
-
-
-@rem **************************************************************************
-:pIIIerr
-echo error: Third parameter should be "rebuild" or empty
-goto err
-
-@rem **************************************************************************
-:err
-set exitcode=1
-:end
-exit %exitcode%
diff --git a/build/generator/templates/msvc_dsp.ezt b/build/generator/templates/msvc_dsp.ezt
index f34e646..1a9dfff 100644
--- a/build/generator/templates/msvc_dsp.ezt
+++ b/build/generator/templates/msvc_dsp.ezt
@@ -42,8 +42,8 @@ RSC=rc.exe
# PROP Target_Dir ""
[if-any is_utility][else]LIB32=link.exe -lib
# ADD LIB32 /out:"[rootpath]\[configs.name]\[target.output_dir]\[target.output_name]"
-# ADD CPP /nologo /W3 /FD /Fd"[rootpath]\[configs.name]\[target.output_dir]\[target.output_pdb]" /c [is configs.name "Debug"]/MDd /Gm /Gi /GX /ZI /Od /GZ[else]/MD /GX /O2 /Zi[end][for configs.defines] /D "[configs.defines]"[end][if-any instrument_apr_pools] /D "APR_POOL_DEBUG=[instrument_apr_pools]"[end][for includes] /I "[includes]"[end]
-# ADD RSC /l [if-any is_exe]0x409[else]0x424[end][is configs.name "Debug"] /d "_DEBUG"[end][for includes] /I "[includes]"[end]
+# ADD CPP /nologo /W3 /FD /Fd"[rootpath]\[configs.name]\[target.output_dir]\[target.output_pdb]" /c [is configs.name "Debug"]/MDd /Gm /Gi /GX /ZI /Od /GZ[else]/MD /GX /O2 /Zi[end][for configs.defines] /D "[configs.defines]"[end][if-any instrument_apr_pools] /D "APR_POOL_DEBUG=[instrument_apr_pools]"[end][for configs.includes] /I "[configs.includes]"[end]
+# ADD RSC /l [if-any is_exe]0x409[else]0x424[end][is configs.name "Debug"] /d "_DEBUG"[end][for configs.includes] /I "[configs.includes]"[end]
BSC32=bscmake.exe
LINK32=link.exe
[if-any is_exe is_dll]# ADD LINK32 /nologo[if-any is_exe] /subsystem:console[end][if-any is_dll] /dll[end] /debug /machine:IX86[for configs.libs] [configs.libs][end][for configs.libdirs] /libpath:"[configs.libdirs]"[end] /out:"[rootpath]\[configs.name]\[target.output_dir]\[target.output_name]"[if-any instrument_purify_quantify] /fixed:no[end]
diff --git a/build/generator/templates/pkg-config.in.ezt b/build/generator/templates/pkg-config.in.ezt
new file mode 100644
index 0000000..959eb81
--- /dev/null
+++ b/build/generator/templates/pkg-config.in.ezt
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: [lib_name]
+Description: [lib_desc]
+Version: @PACKAGE_VERSION@
+Requires: [for lib_required] [lib_required][end]
+Requires.private: [for lib_required_private] [lib_required_private][end]
+Libs: -L${libdir} [for lib_deps] [lib_deps][end]
+Cflags: -I${includedir}
diff --git a/build/generator/templates/serf.dsp.ezt b/build/generator/templates/serf.dsp.ezt
deleted file mode 100644
index 0db7452..0000000
--- a/build/generator/templates/serf.dsp.ezt
+++ /dev/null
@@ -1,96 +0,0 @@
-# Microsoft Developer Studio Project File - Name="serf" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) External Target" 0x0106
-
-CFG=serf - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "serf.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "serf.mak" CFG="serf - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "serf - Win32 Release" (based on "Win32 (x86) External Target")
-!MESSAGE "serf - Win32 Debug" (based on "Win32 (x86) External Target")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF "$(CFG)" == "serf - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_File "Release/[serf_lib]"
-# PROP BASE Bsc_Name ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Cmd_Line "nmake /s /nologo /f serf.mak CLEAN ALL APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]"
-# PROP Rebuild_Opt "/a"
-# PROP Target_File "Release/[serf_lib]"
-# PROP Bsc_Name ""
-
-!ELSEIF "$(CFG)" == "serf - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Rebuild_Opt "/a"
-# PROP BASE Target_File "Debug/[serf_lib]"
-# PROP BASE Bsc_Name ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Cmd_Line "nmake /s /nologo /f serf.mak CLEAN ALL DEBUG_BUILD=1 APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [if-any zlib_path]ZLIB_SRC=[zlib_path] ZLIB_LIBS=[zlib_path]\zlibstatD.lib[end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]"
-# PROP Rebuild_Opt "/a"
-# PROP Target_File "Debug/[serf_lib]"
-# PROP Bsc_Name ""
-
-!ENDIF
-
-# Begin Target
-
-# Name "serf - Win32 Release"
-# Name "serf - Win32 Debug"
-
-!IF "$(CFG)" == "serf - Win32 Release"
-
-!ELSEIF "$(CFG)" == "serf - Win32 Debug"
-
-!ENDIF
-
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-[for serf_sources]# Begin Source File
-
-SOURCE="[serf_sources]"
-# End Source File
-[end]
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-[for serf_headers]# Begin Source File
-
-SOURCE="[serf_headers]"
-# End Source File
-[end]
-# End Group
-# End Target
-# End Project
diff --git a/build/generator/templates/serf.vcproj.ezt b/build/generator/templates/serf.vcproj.ezt
deleted file mode 100644
index 85423ae..0000000
--- a/build/generator/templates/serf.vcproj.ezt
+++ /dev/null
@@ -1,85 +0,0 @@
-[define COPYRIGHT]
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-[end]<?xml version="1.0" encoding = "Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="[version]"
- Name="serf"
- ProjectGUID="[project_guid]"
- Keyword="MakeFileProj">
- <Platforms>
-[for platforms] <Platform
- Name="[platforms]"/>
-[end] </Platforms>
- <Configurations>
-[for platforms] <Configuration
- Name="Debug|[platforms]"
- OutputDirectory="Debug"
- BuildLogFile="$(IntDir)\BuildLog_$(ProjectName).htm"
- IntermediateDirectory="Debug"
- ConfigurationType="0"
- ManagedExtensions="1"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE">
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="nmake /s /nologo /f serf.mak ALL DEBUG_BUILD=1 APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
- ReBuildCommandLine="nmake /s /nologo /f serf.mak CLEAN ALL DEBUG_BUILD=1 APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
- CleanCommandLine="nmake /s /nologo /f serf.mak CLEAN DEBUG_BUILD=1 APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
- Output="$(OutDir)\[serf_lib]"/>
- </Configuration>
- <Configuration
- Name="Release|[platforms]"
- OutputDirectory="Release"
- BuildLogFile="$(IntDir)\BuildLog_$(ProjectName).htm"
- IntermediateDirectory="Release"
- ConfigurationType="0"
- ManagedExtensions="1"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE">
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="nmake /s /nologo /f serf.mak ALL APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
- ReBuildCommandLine="nmake /s /nologo /f serf.mak CLEAN ALL APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
- CleanCommandLine="nmake /s /nologo /f serf.mak CLEAN APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
- Output="$(OutDir)\[serf_lib]"/>
- </Configuration>
-[end] </Configurations>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
- [for serf_sources]<File
- RelativePath="[serf_sources]">
- </File>
- [end]
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
- [for serf_headers]<File
- RelativePath="[serf_headers]">
- </File>
- [end]
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/build/generator/templates/serf.vcxproj.ezt b/build/generator/templates/serf.vcxproj.ezt
deleted file mode 100644
index c8f14e5..0000000
--- a/build/generator/templates/serf.vcxproj.ezt
+++ /dev/null
@@ -1,65 +0,0 @@
-[#
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-]<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
-[for configs][for platforms] <ProjectConfiguration Include="[configs]|[platforms]">
- <Configuration>[configs]</Configuration>
- <Platform>[platforms]</Platform>
- </ProjectConfiguration>
-[end][end] </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectName>serf</ProjectName>
- <ProjectGuid>[project_guid]</ProjectGuid>
- <Keyword>MakeFileProj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-[for platforms][for configs] <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
- <ConfigurationType>Makefile</ConfigurationType>
- <UseDebugLibraries>[is configs "Debug"]true[else]false[end]</UseDebugLibraries>
- <PlatformToolset>[toolset_version]</PlatformToolset>
- </PropertyGroup>
-[end][end] <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
-[for platforms][for configs] <ImportGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
-[end][end] <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
-[for configs][for platforms] <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">[configs]</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">[configs]</IntDir>
- <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"$(VCInstallDir)bin\nmake.exe" /s /nologo /f serf.mak ALL [is configs "Debug"]DEBUG_BUILD=1 [end]APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]</NMakeBuildCommandLine>
- <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"$(VCInstallDir)bin\nmake.exe" /s /nologo /f serf.mak CLEAN ALL [is configs "Debug"]DEBUG_BUILD=1 [end]APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]</NMakeReBuildCommandLine>
- <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"$(VCInstallDir)bin\nmake.exe" /s /nologo /f serf.mak CLEAN [is configs "Debug"]DEBUG_BUILD=1 [end]APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]</NMakeCleanCommandLine>
- <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">$(OutDir)\[serf_lib]</NMakeOutput>
-[end][end] </PropertyGroup>
- <ItemDefinitionGroup>
- </ItemDefinitionGroup>
- <ItemGroup>
-[for serf_sources] <ClCompile Include="[serf_sources]" />
-[end] </ItemGroup>
- <ItemGroup>
-[for serf_headers] <ClInclude Include="[serf_headers]" />
-[end] </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/build/generator/templates/vcnet_vcproj.ezt b/build/generator/templates/vcnet_vcproj.ezt
index 4d6d968..b12ed1a 100644
--- a/build/generator/templates/vcnet_vcproj.ezt
+++ b/build/generator/templates/vcnet_vcproj.ezt
@@ -45,7 +45,7 @@
EnableIntrinsicFunctions="TRUE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
-[end] AdditionalIncludeDirectories="..\..\..\[configs.name];[for includes][includes][if-index includes last][else];[end][end]"
+[end] AdditionalIncludeDirectories="..\..\..\[configs.name];[for configs.includes][configs.includes][if-index configs.includes last][else];[end][end]"
PreprocessorDefinitions="[if-any instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][is platforms "x64"]WIN64;[end][for configs.defines][configs.defines][if-index configs.defines last][else];[end][end];_CRT_SECURE_NO_WARNINGS"
[is configs.name "Debug"] MinimalRebuild="TRUE"
RuntimeLibrary="3"
@@ -56,13 +56,14 @@
RuntimeLibrary="2"
BufferSecurityCheck="FALSE"
[end] WarningLevel="4"
- DisableSpecificWarnings="4100;4127;4206;4701;4706"
+ DisableSpecificWarnings="4100;4127;4206;4512;4701;4706;4800"
Detect64BitPortabilityProblems="FALSE"
AdditionalOptions="
/we4002 /we4003 /we4013 /we4020 /we4022 /we4024 /we4028 /we4029 /we4030 /we4031 /we4033 /we4047 /we4089 /we4113 /we4115 /we4204 /we4715"
DebugInformationFormat="3"
ProgramDataBaseFileName="$(IntDir)\[target.output_pdb]"
- CompileAsManaged="0"
+ [if-any configs.forced_include_files]ForcedIncludeFiles="[for configs.forced_include_files][configs.forced_include_files][if-index configs.forced_include_files last][else];[end][end]"
+ [end]CompileAsManaged="0"
CompileAs="0"[if-any is_exe][is configs.name "Release"]
OptimizeForWindowsApplication="TRUE"[end][end]/>
<Tool
@@ -74,7 +75,7 @@
[is target_type "4"][else] OutputFile="$(OutDir)\[target.output_name]"
[end][is configs.name "Debug"] LinkIncremental="2"
[else] LinkIncremental="1"
-[end] AdditionalLibraryDirectories="..\..\..\db4-win32\lib;[for configs.libdirs][configs.libdirs];[end]"
+[end] AdditionalLibraryDirectories="[for configs.libdirs][configs.libdirs];[end]"
TargetMachine="[is platforms "Win32"]1[end][is platforms "x64"]17[end]"
IgnoreDefaultLibraryNames="libc.lib[is configs.name "debug"];msvcrt.lib[end]"
[if-any def_file] ModuleDefinitionFile="[def_file]"
@@ -114,16 +115,22 @@
Name="[configs.name]|[platforms]">
<Tool
Name="VCResourceCompilerTool"
- AdditionalIncludeDirectories="[for includes][includes][if-index includes last][else];[end][end]"
+ AdditionalIncludeDirectories="[for configs.includes][configs.includes][if-index configs.includes last][else];[end][end]"
PreprocessorDefinitions="SVN_FILE_NAME=[target.output_name];SVN_FILE_DESCRIPTION=[target.desc];[is configs.name "Debug"]_DEBUG[else]NDEBUG[end]"/>
</FileConfiguration>[end][end]
</File>[end]
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
-[for sources][is sources.extension ".h"][else] <File
+[for sources][is sources.extension ".h"][else][is sources.extension ".hpp"][else] <File
RelativePath="[sources.path]">
-[if-any sources.custom_build][for platforms][for configs]
+[if-any sources.ignored][for platforms][for configs] <FileConfiguration
+ Name="[configs.name]|[platforms]"
+ ExcludedFromBuild="TRUE">
+ <Tool
+ Name="VCCustomBuildTool"/>
+ </FileConfiguration>
+[end][end][else][if-any sources.custom_build][for platforms][for configs]
<FileConfiguration
Name="[configs.name]|[platforms]">
<Tool
@@ -142,9 +149,9 @@
ObjectFile="$(IntDir)/[sources.reldir]/"
ProgramDataBaseFileName="$(IntDir)/[sources.reldir]/[target.proj_name]-[sources.reldir].pdb"/>
</FileConfiguration>
-[end][end][end]
+[end][end][end][end]
</File>
-[end][end]
+[end][end][end]
[is target_type "2"] <File RelativePath="..\empty.c"/>[end]
</Filter>
<Filter
@@ -153,7 +160,10 @@
[for sources][is sources.extension ".h"]
<File
RelativePath="[sources.path]" />
-[end][end]
+[else][is sources.extension ".hpp"]
+ <File
+ RelativePath="[sources.path]" />
+[end][end][end]
</Filter>
</Files>
<Globals>
diff --git a/build/generator/templates/vcnet_vcxproj.ezt b/build/generator/templates/vcnet_vcxproj.ezt
index a503c14..8ff387d 100644
--- a/build/generator/templates/vcnet_vcxproj.ezt
+++ b/build/generator/templates/vcnet_vcxproj.ezt
@@ -18,8 +18,7 @@
under the License.
-->
]<?xml version="1.0" encoding="utf-8"?>
-[format "xml"]
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+[format "xml"]<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
[for configs][for platforms] <ProjectConfiguration Include="[configs.name]|[platforms]">
<Configuration>[configs.name]</Configuration>
@@ -33,9 +32,9 @@
[for platforms][for configs] <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'" Label="Configuration">
<ConfigurationType>[config_type]</ConfigurationType>
<UseDebugLibraries>[is configs.name "Debug"]true[else]false[end]</UseDebugLibraries>
+ <PlatformToolset>[toolset_version]</PlatformToolset>
[is configs.name "Release"] <WholeProgramOptimization>true</WholeProgramOptimization>
-[end] <PlatformToolset>[toolset_version]</PlatformToolset>
- </PropertyGroup>
+[end] </PropertyGroup>
[end][end] <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@@ -43,44 +42,45 @@
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
[end][end] <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
-[for configs][for platforms] <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">$(SolutionDir)[configs.name]\[target.output_dir]\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">$(SolutionDir)[configs.name]\obj\[target.intermediate_dir]\[target.proj_name]\</IntDir>
- <TargetName Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[target.output_name_without_ext]</TargetName>
-[is config_type "DynamicLibrary"][is target.output_ext ".dll"][else] <TargetExt>[target.output_ext]</TargetExt>
-[end][end][end][end] </PropertyGroup>
-[for configs][for platforms] <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">
+[for platforms][for configs] <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">
+ <OutDir>$(SolutionDir)[configs.name]\[target.output_dir]\</OutDir>
+ <IntDir>$(SolutionDir)[configs.name]\obj\[target.intermediate_dir]\[target.proj_name]\</IntDir>
+ <TargetName>[target.output_name_without_ext]</TargetName>
+[is configs.name "Debug"] <LinkIncremental>false</LinkIncremental>
+[end][is config_type "DynamicLibrary"][is target.output_ext ".dll"][else] <TargetExt>[target.output_ext]</TargetExt>
+[end][end] </PropertyGroup>
+[end][end][for configs][for platforms] <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">
<ClCompile>
[is configs.name "Debug"] <Optimization>Disabled</Optimization>
[else] <Optimization>Full</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
- <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+[end] <AdditionalIncludeDirectories>$(SolutionDir)[configs.name];[for configs.includes][configs.includes];[end]%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<StringPooling>true</StringPooling>
-[end] <AdditionalIncludeDirectories>$(SolutionDir)[configs.name];[for includes][includes];[end];%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>[if-any instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][is platforms "x64"]WIN64;[end][for configs.defines][configs.defines];[end]%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- <BrowseInformation>true</BrowseInformation>
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
- <DisableSpecificWarnings>4100;4127;4206;4701;4706;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <DisableSpecificWarnings>4100;4127;4206;4512;4701;4706;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<TreatSpecificWarningsAsErrors>4002;4003;4013;4020;4022;4024;4028;4029;4030;4031;4033;4047;4089;4113;4115;4204;4715;%(TreatSpecificWarningsAsErrors)</TreatSpecificWarningsAsErrors>
- </ClCompile>
+[if-any configs.forced_include_files] <ForcedIncludeFiles>[for configs.forced_include_files][configs.forced_include_files];[end]%(ForcedIncludeFiles)</ForcedIncludeFiles>
+[end] </ClCompile>
[is config_type "Application"] <Link>
<AdditionalDependencies>[for configs.libs][configs.libs];[end]%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>[for configs.libdirs][configs.libdirs];[end]%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<EnableUAC>true</EnableUAC>
-[is configs.name "Debug"] <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
-[else] <OptimizeReferences>true</OptimizeReferences>
+ <OptimizeReferences>true</OptimizeReferences>
+[is configs.name "Debug"] <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
[end] </Link>
[else][is config_type "DynamicLibrary"] <Link>
<AdditionalDependencies>[for configs.libs][configs.libs];[end]%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>[for configs.libdirs][configs.libdirs];[end]%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
-[is configs.name "Debug"] <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
-[end][if-any def_file] <ModuleDefinitionFile>[def_file]</ModuleDefinitionFile>
+ <IgnoreSpecificDefaultLibraries>[is configs.name "Debug"]msvcrt.lib[end][is configs.name "Release"]msvcrtd.lib[end]</IgnoreSpecificDefaultLibraries>
+[if-any def_file] <ModuleDefinitionFile>[def_file]</ModuleDefinitionFile>
[end] </Link>
[else][is config_type "StaticLibrary"] <Lib>
<TargetMachine>[is platforms "X64"]MachineX64[else]MachineX86[end]</TargetMachine>
@@ -89,25 +89,26 @@
[end][end][end] </ItemDefinitionGroup>
[end][end][if-any target.desc] <ItemGroup>
<ResourceCompile Include="..\svn.rc">
-[for configs][for platforms] <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[for includes][includes];[end];%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+[for configs][for platforms] <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[for configs.includes][configs.includes];[end]%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">SVN_FILE_NAME=[target.output_name];SVN_FILE_DESCRIPTION=[target.desc];[is configs.name "Debug"]_DEBUG[else]NDEBUG[end];%(PreprocessorDefinitions)</PreprocessorDefinitions>
[end][end] </ResourceCompile>
</ItemGroup>
[end] <ItemGroup>
-[for sources][is sources.extension ".h"][else][if-any sources.custom_build] <CustomBuild Include="[sources.path]">
+[for sources][is sources.extension ".h"][else][is sources.extension ".hpp"][else][if-any sources.custom_build] <CustomBuild Include="[sources.path]">
<FileType>Document</FileType>
[for configs][for platforms] <Command Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[sources.custom_build]</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[for sources.user_deps][sources.user_deps];[end]%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[sources.custom_target];%(Outputs)</Outputs>
[if-any sources.custom_desc]<Message Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[sources.custom_desc]</Message>
[end][end][end] </CustomBuild>
-[else][is sources.extension ".c"] <ClCompile Include="[sources.path]" />
-[else][is sources.extension ".cpp"] <ClCompile Include="[sources.path]" />
+[else][is sources.extension ".c"][if-any sources.ignored] <None Include="[sources.path]" />[else] <ClCompile Include="[sources.path]" />[end]
+[else][is sources.extension ".cpp"][if-any sources.ignored] <None Include="[sources.path]" />[else] <ClCompile Include="[sources.path]" />[end]
[else] <None Include="[sources.path]" />
-[end][end][end][end][end] </ItemGroup>
+[end][end][end][end][end][end] </ItemGroup>
<ItemGroup>
[for sources][is sources.extension ".h"] <ClInclude Include="[sources.path]" />
-[end][end] </ItemGroup>
+[else][is sources.extension ".hpp"] <ClInclude Include="[sources.path]" />
+[end][end][end] </ItemGroup>
<ItemGroup>
[for depends] <ProjectReference Include="[depends.path]">
<Project>[depends.guid]</Project>
diff --git a/build/generator/templates/zlib.dsp.ezt b/build/generator/templates/zlib.dsp.ezt
deleted file mode 100644
index eb679f0..0000000
--- a/build/generator/templates/zlib.dsp.ezt
+++ /dev/null
@@ -1,99 +0,0 @@
-# Microsoft Developer Studio Project File - Name="zlib" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) External Target" 0x0106
-
-CFG=zlib - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "zlib.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "zlib.mak" CFG="zlib - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "zlib - Win32 Release" (based on "Win32 (x86) External Target")
-!MESSAGE "zlib - Win32 Debug" (based on "Win32 (x86) External Target")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF "$(CFG)" == "zlib - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "[zlib_path]\Release"
-# PROP BASE Intermediate_Dir "[zlib_path]\Release"
-# PROP BASE Cmd_Line "build_zlib.bat release Win32"
-# PROP BASE Rebuild_Opt "rebuild"
-# PROP BASE Target_File "[zlib_path]\zlibstat.lib"
-# PROP BASE Bsc_Name ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "[zlib_path]\Release"
-# PROP Intermediate_Dir "[zlib_path]\Release"
-# PROP Cmd_Line "cmd /c build_zlib.bat release Win32"
-# PROP Rebuild_Opt "rebuild"
-# PROP Target_File "[zlib_path]\zlibstat.lib"
-# PROP Bsc_Name ""
-
-!ELSEIF "$(CFG)" == "zlib - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "[zlib_path]\Debug"
-# PROP BASE Intermediate_Dir "[zlib_path]\Debug"
-# PROP BASE Cmd_Line "build_zlib.bat debug Win32"
-# PROP BASE Rebuild_Opt "rebuild"
-# PROP BASE Target_File "[zlib_path]\zlibstatD.lib"
-# PROP BASE Bsc_Name ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "[zlib_path]\Debug"
-# PROP Intermediate_Dir "[zlib_path]\Debug"
-# PROP Cmd_Line "cmd /c build_zlib.bat debug Win32"
-# PROP Rebuild_Opt "rebuild"
-# PROP Target_File "[zlib_path]\zlibstatD.lib"
-# PROP Bsc_Name ""
-
-!ENDIF
-
-# Begin Target
-
-# Name "zlib - Win32 Release"
-# Name "zlib - Win32 Debug"
-
-!IF "$(CFG)" == "zlib - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlib - Win32 Debug"
-
-!ENDIF
-
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-[for zlib_sources]# Begin Source File
-
-SOURCE="[zlib_sources]"
-# End Source File
-[end]
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-[for zlib_headers]# Begin Source File
-
-SOURCE="[zlib_headers]"
-# End Source File
-[end]
-# End Group
-# End Target
-# End Project
diff --git a/build/generator/templates/zlib.vcproj.ezt b/build/generator/templates/zlib.vcproj.ezt
deleted file mode 100644
index 537d41c..0000000
--- a/build/generator/templates/zlib.vcproj.ezt
+++ /dev/null
@@ -1,85 +0,0 @@
-[define COPYRIGHT]
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-[end]<?xml version="1.0" encoding = "Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="[version]"
- Name="zlib"
- ProjectGUID="[project_guid]"
- Keyword="MakeFileProj">
- <Platforms>
-[for platforms] <Platform
- Name="[platforms]"/>
-[end] </Platforms>
- <Configurations>
-[for platforms] <Configuration
- Name="Debug|[platforms]"
- OutputDirectory="[zlib_path]\Debug"
- BuildLogFile="$(IntDir)\BuildLog_$(ProjectName).htm"
- IntermediateDirectory="[zlib_path]\Debug"
- ConfigurationType="0"
- ManagedExtensions="1"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE">
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="cmd /c build_zlib.bat debug [platforms]"
- ReBuildCommandLine="cmd /c build_zlib.bat debug [platforms] rebuild"
- CleanCommandLine="cmd /c build_zlib.bat debug [platforms] clean"
- Output="[zlib_path]\zlibstatD.lib"/>
- </Configuration>
- <Configuration
- Name="Release|[platforms]"
- OutputDirectory="[zlib_path]\Release"
- BuildLogFile="$(IntDir)\BuildLog_$(ProjectName).htm"
- IntermediateDirectory="[zlib_path]\Release"
- ConfigurationType="0"
- ManagedExtensions="1"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE">
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="cmd /c build_zlib.bat release [platforms]"
- ReBuildCommandLine="cmd /c build_zlib.bat release [platforms] rebuild"
- CleanCommandLine="cmd /c build_zlib.bat release [platforms] clean"
- Output="[zlib_path]\zlibstat.lib"/>
- </Configuration>
-[end] </Configurations>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
- [for zlib_sources]<File
- RelativePath="[zlib_sources]">
- </File>
-[end]
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
- [for zlib_headers]<File
- RelativePath="[zlib_headers]">
- </File>
-[end]
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/build/generator/templates/zlib.vcxproj.ezt b/build/generator/templates/zlib.vcxproj.ezt
deleted file mode 100644
index e00df8a..0000000
--- a/build/generator/templates/zlib.vcxproj.ezt
+++ /dev/null
@@ -1,64 +0,0 @@
-[#
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-]<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
-[for configs][for platforms] <ProjectConfiguration Include="[configs]|[platforms]">
- <Configuration>[configs]</Configuration>
- <Platform>[platforms]</Platform>
- </ProjectConfiguration>
-[end][end] </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>[project_guid]</ProjectGuid>
- <Keyword>MakeFileProj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-[for platforms][for configs] <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
- <ConfigurationType>Makefile</ConfigurationType>
- <UseDebugLibraries>[is configs "Debug"]true[else]false[end]</UseDebugLibraries>
- <PlatformToolset>[toolset_version]</PlatformToolset>
- </PropertyGroup>
-[end][end] <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
-[for platforms][for configs] <ImportGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
-[end][end] <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
-[for configs][for platforms] <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</IntDir>
- <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c "$(ProjectDir)build_zlib.bat" [configs] [platforms]</NMakeBuildCommandLine>
- <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c "$(ProjectDir)build_zlib.bat" [configs] [platforms] rebuild</NMakeReBuildCommandLine>
- <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c "$(ProjectDir)build_zlib.bat" [configs] [platforms] clean</NMakeCleanCommandLine>
- <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">[zlib_path]\[is configs "Release"]zlibstat.lib[else]zlibstatD.lib[end]</NMakeOutput>
-[end][end] </PropertyGroup>
- <ItemDefinitionGroup>
- </ItemDefinitionGroup>
- <ItemGroup>
-[for zlib_sources] <ClCompile Include="[zlib_sources]" />
-[end] </ItemGroup>
- <ItemGroup>
-[for zlib_headers] <ClInclude Include="[zlib_headers]" />
-[end] </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/build/getversion.py b/build/getversion.py
index 6fccf8d..7def975 100755
--- a/build/getversion.py
+++ b/build/getversion.py
@@ -26,6 +26,7 @@
import os
import re
import sys
+import traceback
__all__ = ['Parser', 'Result']
@@ -64,8 +65,10 @@ def svn_extractor(parser, include_file):
try:
r = p.parse(include_file)
- except IOError, e:
- usage_and_exit(str(e))
+ except IOError:
+ typ, val, tb = sys.exc_info()
+ msg = ''.join(traceback.format_exception_only(typ, val))
+ usage_and_exit(msg)
sys.stdout.write("%d.%d.%d" % (r.major, r.minor, r.patch))
@@ -75,8 +78,10 @@ def sqlite_extractor(parser, include_file):
try:
r = p.parse(include_file)
- except IOError, e:
- usage_and_exit(str(e))
+ except IOError:
+ typ, val, tb = sys.exc_info()
+ msg = ''.join(traceback.format_exception_only(typ, val))
+ usage_and_exit(msg)
major = r.version / 1000000
minor = (r.version - (major * 1000000)) / 1000
micro = (r.version - (major * 1000000) - (minor * 1000))
diff --git a/build/libtool.m4 b/build/libtool.m4
index 068f0d8..a3bc337 100644
--- a/build/libtool.m4
+++ b/build/libtool.m4
@@ -1,6 +1,6 @@
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
#
-# Copyright (C) 1996-2001, 2003-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
# Written by Gordon Matzigkeit, 1996
#
# This file is free software; the Free Software Foundation gives
@@ -103,19 +103,36 @@ dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+# _LT_PREPARE_CC_BASENAME
+# -----------------------
+m4_defun([_LT_PREPARE_CC_BASENAME], [
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in @S|@*""; do
+ case $cc_temp in
+ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+])# _LT_PREPARE_CC_BASENAME
+
+
# _LT_CC_BASENAME(CC)
# -------------------
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
+# but that macro is also expanded into generated libtool script, which
+# arranges for $SED and $ECHO to be set by different means.
m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
- case $cc_temp in
- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+[m4_require([_LT_PREPARE_CC_BASENAME])dnl
+AC_REQUIRE([_LT_DECL_SED])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+func_cc_basename $1
+cc_basename=$func_cc_basename_result
])
@@ -720,6 +737,9 @@ _LT_CONFIG_SAVE_COMMANDS([
_LT_COPYING
_LT_LIBTOOL_TAGS
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
# ### BEGIN LIBTOOL CONFIG
_LT_LIBTOOL_CONFIG_VARS
_LT_LIBTOOL_TAG_VARS
@@ -727,6 +747,17 @@ _LT_LIBTOOL_TAG_VARS
_LT_EOF
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_PREPARE_MUNGE_PATH_LIST
+_LT_PREPARE_CC_BASENAME
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
case $host_os in
aix3*)
cat <<\_LT_EOF >> "$cfgfile"
@@ -1840,7 +1871,7 @@ else
# endif
#endif
-/* When -fvisbility=hidden is used, assume the code has been annotated
+/* When -fvisibility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
int fnord () __attribute__((visibility("default")));
@@ -2202,6 +2233,47 @@ _LT_DECL([], [striplib], [1])
])# _LT_CMD_STRIPLIB
+# _LT_PREPARE_MUNGE_PATH_LIST
+# ---------------------------
+# Make sure func_munge_path_list() is defined correctly.
+m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
+[[# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x@S|@2 in
+ x)
+ ;;
+ *:)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+ ;;
+ x:*)
+ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+ ;;
+ *)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+]])# _LT_PREPARE_PATH_LIST
+
+
# _LT_SYS_DYNAMIC_LINKER([TAG])
# -----------------------------
# PORTME Fill in your ld.so characteristics
@@ -2212,6 +2284,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
m4_require([_LT_DECL_OBJDUMP])dnl
m4_require([_LT_DECL_SED])dnl
m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
AC_MSG_CHECKING([dynamic linker characteristics])
m4_if([$1],
[], [
@@ -2306,6 +2379,9 @@ hardcode_into_libs=no
# flags to be left without arguments
need_version=unknown
+AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
+[User-defined run-time library search path.])
+
case $host_os in
aix3*)
version_type=linux # correct to gnu/linux during the next big refactor
@@ -2342,20 +2418,70 @@ aix[[4-9]]*)
fi
;;
esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
# AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
# soname into executable. Probably we can add versioning support to
# collect2, so additional links can be useful in future.
- if test yes = "$aix_use_runtimelinking"; then
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
# If using run time linking (on AIX 4.2 or later) use lib<name>.so
# instead of lib<name>.a to let people know that these are not
# typical AIX shared libraries.
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- else
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a[(]lib.so.V[)]'
# We preserve .a as extension for shared libraries through AIX4.2
# and later when we are not doing run time linking.
library_names_spec='$libname$release.a $libname.a'
soname_spec='$libname$release$shared_ext$major'
- fi
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
shlibpath_var=LIBPATH
fi
;;
@@ -2543,7 +2669,8 @@ freebsd* | dragonfly*)
version_type=freebsd-$objformat
case $version_type in
freebsd-elf*)
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
need_version=no
need_lib_prefix=no
;;
@@ -2603,10 +2730,11 @@ hpux9* | hpux10* | hpux11*)
soname_spec='$libname$release$shared_ext$major'
if test 32 = "$HPUX_IA64_MODE"; then
sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
else
sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
;;
hppa*64*)
shrext_cmds='.sl'
@@ -2739,7 +2867,12 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
# before this can be enabled.
hardcode_into_libs=yes
- # Append ld.so.conf contents to the search path
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
@@ -2808,11 +2941,32 @@ openbsd* | bitrig*)
os2*)
libname_spec='$name'
+ version_type=windows
shrext_cmds=.dll
+ need_version=no
need_lib_prefix=no
- library_names_spec='$libname$shared_ext $libname.a'
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
;;
osf3* | osf4* | osf5*)
@@ -2888,7 +3042,7 @@ sysv4*MP*)
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
+ version_type=sco
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
@@ -2942,10 +3096,20 @@ fi
if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
fi
+
if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
fi
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
_LT_DECL([], [variables_saved_for_relink], [1],
[Variables whose values should be saved in libtool wrapper scripts and
restored at link time])
@@ -2978,8 +3142,10 @@ _LT_DECL([], [hardcode_into_libs], [0],
[Whether we should hardcode library paths into libraries])
_LT_DECL([], [sys_lib_search_path_spec], [2],
[Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
- [Run-time system search path for libraries])
+_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
+ [Detected run-time system search path for libraries])
+_LT_DECL([], [configure_time_lt_sys_library_path], [2],
+ [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
])# _LT_SYS_DYNAMIC_LINKER
@@ -3452,6 +3618,9 @@ sysv4 | sysv4.3*)
tpf*)
lt_cv_deplibs_check_method=pass_all
;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
esac
])
@@ -4060,6 +4229,11 @@ m4_if([$1], [CXX], [
# (--disable-auto-import) libraries
m4_if([$1], [GCJ], [],
[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
;;
darwin* | rhapsody*)
# PIC is the default on this platform
@@ -4379,6 +4553,11 @@ m4_if([$1], [CXX], [
# (--disable-auto-import) libraries
m4_if([$1], [GCJ], [],
[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
;;
darwin* | rhapsody*)
@@ -4476,6 +4655,11 @@ m4_if([$1], [CXX], [
# built for inclusion in a dll (and should export symbols for example).
m4_if([$1], [GCJ], [],
[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
;;
hpux9* | hpux10* | hpux11*)
@@ -4725,13 +4909,17 @@ m4_if([$1], [CXX], [
case $host_os in
aix[[4-9]]*)
# If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global defined
- # symbols, whereas GNU nm marks them as "W".
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
;;
pw32*)
@@ -4942,6 +5130,34 @@ _LT_EOF
_LT_TAGVAR(link_all_deplibs, $1)=yes
;;
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
interix[[3-9]]*)
_LT_TAGVAR(hardcode_direct, $1)=no
_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -5015,6 +5231,9 @@ _LT_EOF
fi
case $cc_basename in
+ tcc*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
+ ;;
xlf* | bgf* | bgxlf* | mpixlf*)
# IBM XL Fortran 10.1 on PPC cannot create shared libs itself
_LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
@@ -5144,19 +5363,35 @@ _LT_EOF
no_entry_flag=
else
# If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
aix_use_runtimelinking=no
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
for ld_flag in $LDFLAGS; do
if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
@@ -5164,6 +5399,13 @@ _LT_EOF
break
fi
done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
;;
esac
@@ -5183,6 +5425,14 @@ _LT_EOF
_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
_LT_TAGVAR(link_all_deplibs, $1)=yes
_LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ ;;
+ esac
if test yes = "$GCC"; then
case $host_os in aix4.[[012]]|aix4.[[012]].*)
@@ -5210,6 +5460,11 @@ _LT_EOF
if test yes = "$aix_use_runtimelinking"; then
shared_flag="$shared_flag "'$wl-G'
fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
else
# not using gcc
if test ia64 = "$host_cpu"; then
@@ -5222,6 +5477,8 @@ _LT_EOF
else
shared_flag='$wl-bM:SRE'
fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
fi
fi
@@ -5229,7 +5486,7 @@ _LT_EOF
# It seems that -bexpall does not export symbols beginning with
# underscore (_), so it is better to generate a list of symbols to export.
_LT_TAGVAR(always_export_symbols, $1)=yes
- if test yes = "$aix_use_runtimelinking"; then
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
# Warning - without using the other runtime loading flags (-brtl),
# -berok will link without error, but may produce a broken library.
_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
@@ -5260,8 +5517,20 @@ _LT_EOF
_LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
fi
_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $wl-bnoentry $compiler_flags $wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
fi
fi
;;
@@ -5515,6 +5784,16 @@ _LT_EOF
_LT_TAGVAR(link_all_deplibs, $1)=yes
;;
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
@@ -5560,8 +5839,28 @@ _LT_EOF
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
_LT_TAGVAR(hardcode_minus_L, $1)=yes
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
;;
osf3*)
@@ -5956,8 +6255,12 @@ if test -n "$compiler"; then
;;
aix[[4-9]]*)
- if test ia64 != "$host_cpu" && test no = "$aix_use_runtimelinking"; then
- test yes = "$enable_shared" && enable_static=no
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
fi
;;
esac
@@ -6145,7 +6448,19 @@ if test yes != "$_lt_caught_CXX_error"; then
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
for ld_flag in $LDFLAGS; do
case $ld_flag in
@@ -6155,6 +6470,13 @@ if test yes != "$_lt_caught_CXX_error"; then
;;
esac
done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
;;
esac
@@ -6174,6 +6496,14 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
_LT_TAGVAR(link_all_deplibs, $1)=yes
_LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ ;;
+ esac
if test yes = "$GXX"; then
case $host_os in aix4.[[012]]|aix4.[[012]].*)
@@ -6200,6 +6530,11 @@ if test yes != "$_lt_caught_CXX_error"; then
if test yes = "$aix_use_runtimelinking"; then
shared_flag=$shared_flag' $wl-G'
fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
else
# not using gcc
if test ia64 = "$host_cpu"; then
@@ -6212,6 +6547,8 @@ if test yes != "$_lt_caught_CXX_error"; then
else
shared_flag='$wl-bM:SRE'
fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
fi
fi
@@ -6220,10 +6557,11 @@ if test yes != "$_lt_caught_CXX_error"; then
# underscore (_), so it is better to generate a list of symbols to
# export.
_LT_TAGVAR(always_export_symbols, $1)=yes
- if test yes = "$aix_use_runtimelinking"; then
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
# Warning - without using the other runtime loading flags (-brtl),
# -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # The "-G" linker flag allows undefined symbols.
+ _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
# Determine the default libpath from the value encoded in an empty
# executable.
_LT_SYS_MODULE_PATH_AIX([$1])
@@ -6252,9 +6590,21 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
fi
_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared
- # libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $wl-bnoentry $compiler_flags $wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared
+ # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
fi
fi
;;
@@ -6354,6 +6704,34 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_DARWIN_LINKER_FEATURES($1)
;;
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
dgux*)
case $cc_basename in
ec++*)
@@ -7067,6 +7445,7 @@ func_stripname_cnf ()
} # func_stripname_cnf
])# _LT_FUNC_STRIPNAME_CNF
+
# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
# ---------------------------------
# Figure out "hidden" library dependencies from verbose
@@ -7245,51 +7624,6 @@ interix[[3-9]]*)
_LT_TAGVAR(postdep_objects,$1)=
_LT_TAGVAR(postdeps,$1)=
;;
-
-linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- if test yes != "$solaris_use_stlport4"; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
-solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test yes != "$solaris_use_stlport4"; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
esac
])
@@ -7407,8 +7741,12 @@ if test yes != "$_lt_disable_F77"; then
fi
;;
aix[[4-9]]*)
- if test ia64 != "$host_cpu" && test no = "$aix_use_runtimelinking"; then
- test yes = "$enable_shared" && enable_static=no
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
fi
;;
esac
@@ -7541,8 +7879,12 @@ if test yes != "$_lt_disable_FC"; then
fi
;;
aix[[4-9]]*)
- if test ia64 != "$host_cpu" && test no = "$aix_use_runtimelinking"; then
- test yes = "$enable_shared" && enable_static=no
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
fi
;;
esac
diff --git a/build/ltmain.sh b/build/ltmain.sh
index 555b763..0f0a2da 100644
--- a/build/ltmain.sh
+++ b/build/ltmain.sh
@@ -2,11 +2,11 @@
## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
## by inline-source v2014-01-03.01
-# libtool (GNU libtool) 2.4.3
+# libtool (GNU libtool) 2.4.6
# Provide generalized library-building support services.
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2015 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@@ -31,8 +31,8 @@
PROGRAM=libtool
PACKAGE=libtool
-VERSION=2.4.3
-package_revision=2.4.3
+VERSION=2.4.6
+package_revision=2.4.6
## ------ ##
@@ -64,12 +64,12 @@ package_revision=2.4.3
# libraries, which are installed to $pkgauxdir.
# Set a version string for this script.
-scriptversion=2014-01-03.01; # UTC
+scriptversion=2015-01-20.17; # UTC
# General shell script boiler plate, and helper functions.
# Written by Gary V. Vaughan, 2004
-# Copyright (C) 2004-2014 Free Software Foundation, Inc.
+# Copyright (C) 2004-2015 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@@ -192,7 +192,7 @@ func_path_progs ()
_G_path_prog_max=0
_G_path_prog_found=false
- _G_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
for _G_dir in $_G_PATH; do
IFS=$_G_save_IFS
test -z "$_G_dir" && _G_dir=.
@@ -1375,7 +1375,7 @@ scriptversion=2014-01-07.03; # UTC
# A portable, pluggable option parser for Bourne shell.
# Written by Gary V. Vaughan, 2010
-# Copyright (C) 2010-2014 Free Software Foundation, Inc.
+# Copyright (C) 2010-2015 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@@ -1977,7 +1977,7 @@ func_version ()
# End:
# Set a version string.
-scriptversion='(GNU libtool) 2.4.3'
+scriptversion='(GNU libtool) 2.4.6'
# func_echo ARG...
@@ -2039,7 +2039,12 @@ usage_message="Options:
"
# Additional text appended to 'usage_message' in response to '--help'.
-long_help_message=$long_help_message"
+func_help ()
+{
+ $debug_cmd
+
+ func_usage_message
+ $ECHO "$long_help_message
MODE must be one of the following:
@@ -2063,13 +2068,15 @@ include the following information:
compiler: $LTCC
compiler flags: $LTCFLAGS
linker: $LD (gnu? $with_gnu_ld)
- version: $progname (GNU libtool) 2.4.3
+ version: $progname (GNU libtool) 2.4.6
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
Report bugs to <bug-libtool@gnu.org>.
GNU libtool home page: <http://www.gnu.org/software/libtool/>.
General help using GNU software: <http://www.gnu.org/gethelp/>."
+ exit 0
+}
# func_lo2o OBJECT-NAME
@@ -2411,7 +2418,7 @@ libtool_validate_options ()
case $host in
# Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
# see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
- *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2*)
+ *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
# don't eliminate duplications in $postdeps and $predeps
opt_duplicate_compiler_generated_deps=:
;;
@@ -3730,7 +3737,8 @@ The following components of LINK-COMMAND are treated specially:
-no-install link a not-installable executable
-no-undefined declare that a library does not refer to external symbols
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE Use a list of object files found in FILE to specify objects
+ -objectlist FILE use a list of object files found in FILE to specify objects
+ -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes)
-precious-files-regex REGEX
don't remove output files matching REGEX
-release RELEASE specify package release information
@@ -4312,6 +4320,13 @@ func_mode_install ()
;;
esac
;;
+ os2*)
+ case $realname in
+ *_dll.a)
+ tstripme=
+ ;;
+ esac
+ ;;
esac
if test -n "$tstripme" && test -n "$striplib"; then
func_show_eval "$striplib $destdir/$realname" 'exit $?'
@@ -5153,7 +5168,7 @@ func_extract_archives ()
$RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
done # $darwin_arches
## Okay now we've a bunch of thin objects, gotta fatten them up :)
- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
darwin_file=
darwin_files=
for darwin_file in $darwin_filelist; do
@@ -6453,6 +6468,24 @@ func_win32_import_lib_p ()
esac
}
+# func_suncc_cstd_abi
+# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
+# Several compiler flags select an ABI that is incompatible with the
+# Cstd library. Avoid specifying it if any are in CXXFLAGS.
+func_suncc_cstd_abi ()
+{
+ $debug_cmd
+
+ case " $compile_command " in
+ *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
+ suncc_use_cstd_abi=no
+ ;;
+ *)
+ suncc_use_cstd_abi=yes
+ ;;
+ esac
+}
+
# func_mode_link arg...
func_mode_link ()
{
@@ -6511,6 +6544,7 @@ func_mode_link ()
module=no
no_install=no
objs=
+ os2dllname=
non_pic_objects=
precious_files_regex=
prefer_static_libs=no
@@ -6768,6 +6802,11 @@ func_mode_link ()
prev=
continue
;;
+ os2dllname)
+ os2dllname=$arg
+ prev=
+ continue
+ ;;
precious_regex)
precious_files_regex=$arg
prev=
@@ -7077,6 +7116,11 @@ func_mode_link ()
continue
;;
+ -os2dllname)
+ prev=os2dllname
+ continue
+ ;;
+
-o) prev=output ;;
-precious-files-regex)
@@ -7240,6 +7284,25 @@ func_mode_link ()
continue
;;
+ -Z*)
+ if test os2 = "`expr $host : '.*\(os2\)'`"; then
+ # OS/2 uses -Zxxx to specify OS/2-specific options
+ compiler_flags="$compiler_flags $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ case $arg in
+ -Zlinker | -Zstack)
+ prev=xcompiler
+ ;;
+ esac
+ continue
+ else
+ # Otherwise treat like 'Some other compiler flag' below
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
+ fi
+ ;;
+
# Some other compiler flag.
-* | +*)
func_quote_for_eval "$arg"
@@ -7399,6 +7462,9 @@ func_mode_link ()
eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+ # Definition is injected by LT_CONFIG during libtool generation.
+ func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
+
func_dirname "$output" "/" ""
output_objdir=$func_dirname_result$objdir
func_to_tool_file "$output_objdir/"
@@ -8066,7 +8132,7 @@ func_mode_link ()
if test -n "$library_names" &&
{ test no = "$use_static_libs" || test -z "$old_library"; }; then
case $host in
- *cygwin* | *mingw* | *cegcc*)
+ *cygwin* | *mingw* | *cegcc* | *os2*)
# No point in relinking DLLs because paths are not encoded
func_append notinst_deplibs " $lib"
need_relink=no
@@ -8136,7 +8202,7 @@ func_mode_link ()
elif test -n "$soname_spec"; then
# bleh windows
case $host in
- *cygwin* | mingw* | *cegcc*)
+ *cygwin* | mingw* | *cegcc* | *os2*)
func_arith $current - $age
major=$func_arith_result
versuffix=-$major
@@ -8561,6 +8627,37 @@ func_mode_link ()
eval $var=\"$tmp_libs\"
done # for var
fi
+
+ # Add Sun CC postdeps if required:
+ test CXX = "$tagname" && {
+ case $host_os in
+ linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C++ 5.9
+ func_suncc_cstd_abi
+
+ if test no != "$suncc_use_cstd_abi"; then
+ func_append postdeps ' -library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ func_cc_basename "$CC"
+ case $func_cc_basename_result in
+ CC* | sunCC*)
+ func_suncc_cstd_abi
+
+ if test no != "$suncc_use_cstd_abi"; then
+ func_append postdeps ' -library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ }
+
# Last step: remove runtime libs from dependency_libs
# (they stay in deplibs)
tmp_libs=
@@ -8708,13 +8805,13 @@ func_mode_link ()
#
case $version_type in
# correct linux to gnu/linux during the next big refactor
- darwin|linux|osf|windows|none)
+ darwin|freebsd-elf|linux|osf|windows|none)
func_arith $number_major + $number_minor
current=$func_arith_result
age=$number_minor
revision=$number_revision
;;
- freebsd-aout|freebsd-elf|qnx|sunos)
+ freebsd-aout|qnx|sunos)
current=$number_major
revision=$number_minor
age=0
@@ -8800,8 +8897,9 @@ func_mode_link ()
;;
freebsd-elf)
- major=.$current
- versuffix=.$current
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=$major.$age.$revision
;;
irix | nonstopux)
@@ -8864,6 +8962,11 @@ func_mode_link ()
versuffix=.$current
;;
+ sco)
+ major=.$current
+ versuffix=.$current
+ ;;
+
sunos)
major=.$current
versuffix=.$current.$revision
diff --git a/build/ltoptions.m4 b/build/ltoptions.m4
index de6520e..94b0829 100644
--- a/build/ltoptions.m4
+++ b/build/ltoptions.m4
@@ -1,6 +1,6 @@
# Helper functions for option handling. -*- Autoconf -*-
#
-# Copyright (C) 2004-2005, 2007-2009, 2011-2014 Free Software
+# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
@@ -82,6 +82,8 @@ m4_if([$1],[LT_INIT],[
_LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
_LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
[_LT_ENABLE_FAST_INSTALL])
+ _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
+ [_LT_WITH_AIX_SONAME([aix])])
])
])# _LT_SET_OPTIONS
@@ -319,6 +321,59 @@ dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+# _LT_WITH_AIX_SONAME([DEFAULT])
+# ----------------------------------
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
+m4_define([_LT_WITH_AIX_SONAME],
+[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
+shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[[5-9]]*,yes)
+ AC_MSG_CHECKING([which variant of shared library versioning to provide])
+ AC_ARG_WITH([aix-soname],
+ [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+ [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
+ [case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname],
+ [AC_CACHE_VAL([lt_cv_with_aix_soname],
+ [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+ with_aix_soname=$lt_cv_with_aix_soname])
+ AC_MSG_RESULT([$with_aix_soname])
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+_LT_DECL([], [shared_archive_member_spec], [0],
+ [Shared archive member basename, for filename based shared library versioning on AIX])dnl
+])# _LT_WITH_AIX_SONAME
+
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
+
+
# _LT_WITH_PIC([MODE])
# --------------------
# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
diff --git a/build/ltsugar.m4 b/build/ltsugar.m4
index da4ac6b..48bc934 100644
--- a/build/ltsugar.m4
+++ b/build/ltsugar.m4
@@ -1,6 +1,6 @@
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
#
-# Copyright (C) 2004-2005, 2007-2008, 2011-2014 Free Software
+# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
diff --git a/build/ltversion.m4 b/build/ltversion.m4
index 3535ff4..fa04b52 100644
--- a/build/ltversion.m4
+++ b/build/ltversion.m4
@@ -1,6 +1,6 @@
# ltversion.m4 -- version numbers -*- Autoconf -*-
#
-# Copyright (C) 2004, 2011-2014 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
# Written by Scott James Remnant, 2004
#
# This file is free software; the Free Software Foundation gives
@@ -9,15 +9,15 @@
# @configure_input@
-# serial 4105 ltversion.m4
+# serial 4179 ltversion.m4
# This file is part of GNU Libtool
-m4_define([LT_PACKAGE_VERSION], [2.4.2.458.26-92994])
-m4_define([LT_PACKAGE_REVISION], [2.4.3])
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2.458.26-92994'
-macro_revision='2.4.3'
+[macro_version='2.4.6'
+macro_revision='2.4.6'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0)
])
diff --git a/build/lt~obsolete.m4 b/build/lt~obsolete.m4
index 6975098..c6b26f8 100644
--- a/build/lt~obsolete.m4
+++ b/build/lt~obsolete.m4
@@ -1,6 +1,6 @@
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
#
-# Copyright (C) 2004-2005, 2007, 2009, 2011-2014 Free Software
+# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
# Foundation, Inc.
# Written by Scott James Remnant, 2004.
#
diff --git a/build/run_tests.py b/build/run_tests.py
index 449492c..4bab521 100755
--- a/build/run_tests.py
+++ b/build/run_tests.py
@@ -29,7 +29,9 @@
[--fs-type=<fs-type>] [--fsfs-packing] [--fsfs-sharding=<n>]
[--list] [--milestone-filter=<regex>] [--mode-filter=<type>]
[--server-minor-version=<version>] [--http-proxy=<host>:<port>]
+ [--httpd-version=<version>]
[--config-file=<file>] [--ssl-cert=<file>]
+ [--exclusive-wc-locks] [--memcached-server=<url:port>]
<abs_srcdir> <abs_builddir>
<prog ...>
@@ -42,22 +44,19 @@ and filename of a test program, optionally followed by '#' and a comma-
separated list of test numbers; the default is to run all the tests in it.
'''
-# A few useful constants
-SVN_VER_MINOR = 8
-
-import os, re, subprocess, sys, imp, threading
+import os, sys
+import re
+import logging
+import optparse, subprocess, imp, threading, traceback, exceptions
from datetime import datetime
-import getopt
-try:
- my_getopt = getopt.gnu_getopt
-except AttributeError:
- my_getopt = getopt.getopt
-
# Ensure the compiled C tests use a known locale (Python tests set the locale
# explicitly).
os.environ['LC_ALL'] = 'C'
+# Placeholder for the svntest module
+svntest = None
+
class TextColors:
'''Some ANSI terminal constants for output color'''
ENDC = '\033[0;m'
@@ -118,76 +117,219 @@ class TestHarness:
'''Test harness for Subversion tests.
'''
- def __init__(self, abs_srcdir, abs_builddir, logfile, faillogfile,
- base_url=None, fs_type=None, http_library=None,
- server_minor_version=None, verbose=None,
- cleanup=None, enable_sasl=None, parallel=None, config_file=None,
- fsfs_sharding=None, fsfs_packing=None,
- list_tests=None, svn_bin=None, mode_filter=None,
- milestone_filter=None, set_log_level=None, ssl_cert=None,
- http_proxy=None):
+ def __init__(self, abs_srcdir, abs_builddir, logfile, faillogfile, opts):
'''Construct a TestHarness instance.
ABS_SRCDIR and ABS_BUILDDIR are the source and build directories.
LOGFILE is the name of the log file. If LOGFILE is None, let tests
print their output to stdout and stderr, and don't print a summary
at the end (since there's no log file to analyze).
- BASE_URL is the base url for DAV tests.
- FS_TYPE is the FS type for repository creation.
- HTTP_LIBRARY is the HTTP library for DAV-based communications.
- SERVER_MINOR_VERSION is the minor version of the server being tested.
- SVN_BIN is the path where the svn binaries are installed.
- MODE_FILTER restricts the TestHarness to tests with the expected mode
- XFail, Skip, Pass, or All tests (default). MILESTONE_FILTER is a
- string representation of a valid regular expression pattern; when used
- in conjunction with LIST_TESTS, the only tests that are listed are
- those with an associated issue in the tracker which has a target
- milestone that matches the regex.
+ OPTS are the options that will be sent to the tests.
'''
+
+ # Canonicalize the test base URL
+ if opts.url is not None and opts.url[-1] == '/':
+ opts.url = opts.url[:-1]
+
+ # Make the configfile path absolute
+ if opts.config_file is not None:
+ opts.config_file = os.path.abspath(opts.config_file)
+
+ # Parse out the FSFS version number
+ if (opts.fs_type is not None
+ and opts.fs_type.startswith('fsfs-v')):
+ opts.fsfs_version = int(opts.fs_type[6:])
+ opts.fs_type = 'fsfs'
+ else:
+ opts.fsfs_version = None
+
self.srcdir = abs_srcdir
self.builddir = abs_builddir
self.logfile = logfile
self.faillogfile = faillogfile
- self.base_url = base_url
- self.fs_type = fs_type
- self.http_library = http_library
- self.server_minor_version = server_minor_version
- # If you change the below condition then change in
- # ../subversion/tests/cmdline/svntest/main.py too.
- if server_minor_version is not None:
- if int(server_minor_version) not in range(3, 1+SVN_VER_MINOR):
- sys.stderr.write("Test harness only supports server minor versions 3-%d\n"
- % SVN_VER_MINOR)
- sys.exit(1)
- self.verbose = verbose
- self.cleanup = cleanup
- self.enable_sasl = enable_sasl
- self.parallel = parallel
- self.fsfs_sharding = fsfs_sharding
- self.fsfs_packing = fsfs_packing
- if fsfs_packing is not None and fsfs_sharding is None:
- raise Exception('--fsfs-packing requires --fsfs-sharding')
- self.config_file = None
- if config_file is not None:
- self.config_file = os.path.abspath(config_file)
- self.list_tests = list_tests
- self.milestone_filter = milestone_filter
- self.set_log_level = set_log_level
- self.svn_bin = svn_bin
- self.mode_filter = mode_filter
self.log = None
- self.ssl_cert = ssl_cert
- self.http_proxy = http_proxy
+ self.opts = opts
+
if not sys.stdout.isatty() or sys.platform == 'win32':
TextColors.disable()
- def run(self, list):
- '''Run all test programs given in LIST. Print a summary of results, if
+ def _init_c_tests(self):
+ cmdline = [None, None] # Program name and source dir
+
+ if self.opts.config_file is not None:
+ cmdline.append('--config-file=' + self.opts.config_file)
+ elif self.opts.memcached_server is not None:
+ cmdline.append('--memcached-server=' + self.opts.memcached_server)
+
+ if self.opts.url is not None:
+ subdir = 'subversion/tests/cmdline/svn-test-work'
+ cmdline.append('--repos-url=%s' % self.opts.url +
+ '/svn-test-work/repositories')
+ cmdline.append('--repos-dir=%s'
+ % os.path.abspath(
+ os.path.join(self.builddir,
+ subdir, 'repositories')))
+
+ # Enable access for http
+ if self.opts.url.startswith('http'):
+ authzparent = os.path.join(self.builddir, subdir)
+ if not os.path.exists(authzparent):
+ os.makedirs(authzparent);
+ open(os.path.join(authzparent, 'authz'), 'w').write('[/]\n'
+ '* = rw\n')
+
+ # ### Support --repos-template
+ if self.opts.list_tests is not None:
+ cmdline.append('--list')
+ if (self.opts.set_log_level is not None
+ and self.opts.set_log_level <= logging.DEBUG):
+ cmdline.append('--verbose')
+ if self.opts.cleanup is not None:
+ cmdline.append('--cleanup')
+ if self.opts.fs_type is not None:
+ cmdline.append('--fs-type=%s' % self.opts.fs_type)
+ if self.opts.fsfs_version is not None:
+ cmdline.append('--fsfs-version=%d' % self.opts.fsfs_version)
+ if self.opts.server_minor_version is not None:
+ cmdline.append('--server-minor-version=%d' %
+ self.opts.server_minor_version)
+ if self.opts.mode_filter is not None:
+ cmdline.append('--mode-filter=' + self.opts.mode_filter)
+ if self.opts.parallel is not None:
+ cmdline.append('--parallel')
+
+ self.c_test_cmdline = cmdline
+
+
+ def _init_py_tests(self, basedir):
+ cmdline = ['--srcdir=%s' % self.srcdir]
+ if self.opts.list_tests is not None:
+ cmdline.append('--list')
+ if self.opts.cleanup is not None:
+ cmdline.append('--cleanup')
+ if self.opts.parallel is not None:
+ if self.opts.parallel == 1:
+ cmdline.append('--parallel')
+ else:
+ cmdline.append('--parallel-instances=%d' % self.opts.parallel)
+ if self.opts.svn_bin is not None:
+ cmdline.append('--bin=%s' % self.opts.svn_bin)
+ if self.opts.url is not None:
+ cmdline.append('--url=%s' % self.opts.url)
+ if self.opts.fs_type is not None:
+ cmdline.append('--fs-type=%s' % self.opts.fs_type)
+ if self.opts.http_library is not None:
+ cmdline.append('--http-library=%s' % self.opts.http_library)
+ if self.opts.fsfs_sharding is not None:
+ cmdline.append('--fsfs-sharding=%d' % self.opts.fsfs_sharding)
+ if self.opts.fsfs_packing is not None:
+ cmdline.append('--fsfs-packing')
+ if self.opts.fsfs_version is not None:
+ cmdline.append('--fsfs-version=%d' % self.opts.fsfs_version)
+ if self.opts.server_minor_version is not None:
+ cmdline.append('--server-minor-version=%d' % self.opts.server_minor_version)
+ if self.opts.dump_load_cross_check is not None:
+ cmdline.append('--dump-load-cross-check')
+ if self.opts.enable_sasl is not None:
+ cmdline.append('--enable-sasl')
+ if self.opts.config_file is not None:
+ cmdline.append('--config-file=%s' % self.opts.config_file)
+ if self.opts.milestone_filter is not None:
+ cmdline.append('--milestone-filter=%s' % self.opts.milestone_filter)
+ if self.opts.mode_filter is not None:
+ cmdline.append('--mode-filter=%s' % self.opts.mode_filter)
+ if self.opts.set_log_level is not None:
+ cmdline.append('--set-log-level=%s' % self.opts.set_log_level)
+ if self.opts.ssl_cert is not None:
+ cmdline.append('--ssl-cert=%s' % self.opts.ssl_cert)
+ if self.opts.http_proxy is not None:
+ cmdline.append('--http-proxy=%s' % self.opts.http_proxy)
+ if self.opts.http_proxy_username is not None:
+ cmdline.append('--http-proxy-username=%s' % self.opts.http_proxy_username)
+ if self.opts.http_proxy_password is not None:
+ cmdline.append('--http-proxy-password=%s' % self.opts.http_proxy_password)
+ if self.opts.httpd_version is not None:
+ cmdline.append('--httpd-version=%s' % self.opts.httpd_version)
+ if self.opts.exclusive_wc_locks is not None:
+ cmdline.append('--exclusive-wc-locks')
+ if self.opts.memcached_server is not None:
+ cmdline.append('--memcached-server=%s' % self.opts.memcached_server)
+
+ # The svntest module is very pedantic about the current working directory
+ old_cwd = os.getcwd()
+ try:
+ os.chdir(basedir)
+ sys.path.insert(0, os.path.abspath(os.path.join(self.srcdir, basedir)))
+
+ global svntest
+ __import__('svntest')
+ __import__('svntest.main')
+ __import__('svntest.testcase')
+ svntest = sys.modules['svntest']
+ svntest.main = sys.modules['svntest.main']
+ svntest.testcase = sys.modules['svntest.testcase']
+
+ if svntest.main.logger is None:
+ import logging
+ svntest.main.logger = logging.getLogger()
+ svntest.main.parse_options(cmdline, optparse.SUPPRESS_USAGE)
+
+ svntest.testcase.TextColors.disable()
+ finally:
+ os.chdir(old_cwd)
+
+ def run(self, testlist):
+ '''Run all test programs given in TESTLIST. Print a summary of results, if
there is a log file. Return zero iff all test programs passed.'''
self._open_log('w')
failed = 0
- for cnt, prog in enumerate(list):
- failed = self._run_test(prog, cnt, len(list)) or failed
+
+ # Filter tests into Python and native groups and prepare arguments
+ # for each group. The resulting list will contain tuples of
+ # (program dir, program name, test numbers), where the test
+ # numbers may be None.
+
+ def split_nums(prog):
+ test_nums = []
+ if '#' in prog:
+ prog, test_nums = prog.split('#')
+ if test_nums:
+ test_nums = test_nums.split(',')
+ return prog, test_nums
+
+ py_basedir = set()
+ py_tests = []
+ c_tests = []
+
+ for prog in testlist:
+ progpath, testnums = split_nums(prog)
+ progdir, progbase = os.path.split(progpath)
+ if progpath.endswith('.py'):
+ py_basedir.add(progdir)
+ py_tests.append((progdir, progbase, testnums))
+ elif not self.opts.skip_c_tests:
+ c_tests.append((progdir, progbase, testnums))
+
+ # Initialize svntest.main.options for Python tests. Load the
+ # svntest.main module from the Python test path.
+ if len(py_tests):
+ if len(py_basedir) > 1:
+ sys.stderr.write('The test harness requires all Python tests'
+ ' to be in the same directory.')
+ sys.exit(1)
+ self._init_py_tests(list(py_basedir)[0])
+ py_tests.sort(key=lambda x: x[1])
+
+ # Create the common command line for C tests
+ if len(c_tests):
+ self._init_c_tests()
+ c_tests.sort(key=lambda x: x[1])
+
+ # Run the tests
+ testlist = c_tests + py_tests
+ testcount = len(testlist)
+ for count, testcase in enumerate(testlist):
+ failed = self._run_test(testcase, count, testcount) or failed
if self.log is None:
return failed
@@ -215,26 +357,26 @@ class TestHarness:
sys.stdout.write('%s\n [[%s'
% (x[:wip], x[wip + len(wimptag):]))
- if self.list_tests:
+ if self.opts.list_tests:
passed = [x for x in log_lines if x[8:13] == ' ']
else:
passed = [x for x in log_lines if x[:6] == 'PASS: ']
- if self.list_tests:
+ if self.opts.list_tests:
skipped = [x for x in log_lines if x[8:12] == 'SKIP']
else:
skipped = [x for x in log_lines if x[:6] == 'SKIP: ']
- if skipped and not self.list_tests:
+ if skipped and not self.opts.list_tests:
print('At least one test was SKIPPED, checking ' + self.logfile)
for x in skipped:
sys.stdout.write(x)
- if self.list_tests:
+ if self.opts.list_tests:
xfailed = [x for x in log_lines if x[8:13] == 'XFAIL']
else:
xfailed = [x for x in log_lines if x[:6] == 'XFAIL:']
- if xfailed and not self.list_tests:
+ if xfailed and not self.opts.list_tests:
print('At least one test XFAILED, checking ' + self.logfile)
for x in xfailed:
printxfail(x)
@@ -252,19 +394,19 @@ class TestHarness:
sys.stdout.write(x)
# Print summaries, from least interesting to most interesting.
- if self.list_tests:
+ if self.opts.list_tests:
print('Summary of test listing:')
else:
print('Summary of test results:')
if passed:
- if self.list_tests:
+ if self.opts.list_tests:
print(' %d test%s are set to PASS'
% (len(passed), 's'*min(len(passed) - 1, 1)))
else:
print(' %d test%s PASSED'
% (len(passed), 's'*min(len(passed) - 1, 1)))
if skipped:
- if self.list_tests:
+ if self.opts.list_tests:
print(' %d test%s are set as SKIP'
% (len(skipped), 's'*min(len(skipped) - 1, 1)))
else:
@@ -273,14 +415,14 @@ class TestHarness:
if xfailed:
passwimp = [x for x in xfailed if 0 <= x.find(wimptag)]
if passwimp:
- if self.list_tests:
+ if self.opts.list_tests:
print(' %d test%s are set to XFAIL (%d WORK-IN-PROGRESS)'
% (len(xfailed), 's'*min(len(xfailed) - 1, 1), len(passwimp)))
else:
print(' %d test%s XFAILED (%d WORK-IN-PROGRESS)'
% (len(xfailed), 's'*min(len(xfailed) - 1, 1), len(passwimp)))
else:
- if self.list_tests:
+ if self.opts.list_tests:
print(' %d test%s are set as XFAIL'
% (len(xfailed), 's'*min(len(xfailed) - 1, 1)))
else:
@@ -340,41 +482,21 @@ class TestHarness:
self.log.close()
self.log = None
- def _run_c_test(self, prog, test_nums, dot_count):
+ def _run_c_test(self, progabs, progdir, progbase, test_nums, dot_count):
'Run a c test, escaping parameters as required.'
- progdir, progbase = os.path.split(prog)
-
- if self.list_tests and self.milestone_filter:
+ if self.opts.list_tests and self.opts.milestone_filter:
print 'WARNING: --milestone-filter option does not currently work with C tests'
- if os.access(progbase, os.X_OK):
- progname = './' + progbase
- cmdline = [progname,
- '--srcdir=' + os.path.join(self.srcdir, progdir)]
- if self.config_file is not None:
- cmdline.append('--config-file=' + self.config_file)
- else:
- print("Don't know what to do about " + progbase)
+ if not os.access(progbase, os.X_OK):
+ print("\nNot an executable file: " + progbase)
sys.exit(1)
- if self.verbose is not None:
- cmdline.append('--verbose')
- if self.cleanup is not None:
- cmdline.append('--cleanup')
- if self.fs_type is not None:
- cmdline.append('--fs-type=' + self.fs_type)
- if self.server_minor_version is not None:
- cmdline.append('--server-minor-version=' + self.server_minor_version)
- if self.list_tests is not None:
- cmdline.append('--list')
- if self.mode_filter is not None:
- cmdline.append('--mode-filter=' + self.mode_filter)
+ cmdline = self.c_test_cmdline[:]
+ cmdline[0] = './' + progbase
+ cmdline[1] = '--srcdir=%s' % os.path.join(self.srcdir, progdir)
if test_nums:
- test_nums = test_nums.split(',')
cmdline.extend(test_nums)
-
- if test_nums:
total = len(test_nums)
else:
total_cmdline = [cmdline[0], '--list']
@@ -422,68 +544,16 @@ class TestHarness:
prog.wait()
return prog.returncode
- def _run_py_test(self, prog, test_nums, dot_count):
+ def _run_py_test(self, progabs, progdir, progbase, test_nums, dot_count):
'Run a python test, passing parameters as needed.'
- progdir, progbase = os.path.split(prog)
-
- old_path = sys.path[:]
- sys.path = [progdir] + sys.path
-
try:
- prog_mod = imp.load_module(progbase[:-3], open(prog, 'r'), prog,
+ prog_mod = imp.load_module(progbase[:-3], open(progabs, 'r'), progabs,
('.py', 'U', imp.PY_SOURCE))
except:
- print("Don't know what to do about " + progbase)
+ print("\nError loading test (details in following traceback): " + progbase)
+ traceback.print_exc()
sys.exit(1)
- import svntest.main
-
- # set up our options
- svntest.main.create_default_options()
- if self.base_url is not None:
- svntest.main.options.test_area_url = self.base_url
- if self.enable_sasl is not None:
- svntest.main.options.enable_sasl = True
- if self.parallel is not None:
- svntest.main.options.parallel = svntest.main.default_num_threads
- if self.config_file is not None:
- svntest.main.options.config_file = self.config_file
- if self.verbose is not None:
- svntest.main.options.verbose = True
- if self.cleanup is not None:
- svntest.main.options.cleanup = True
- if self.fs_type is not None:
- svntest.main.options.fs_type = self.fs_type
- if self.http_library is not None:
- svntest.main.options.http_library = self.http_library
- if self.server_minor_version is not None:
- svntest.main.options.server_minor_version = int(self.server_minor_version)
- if self.list_tests is not None:
- svntest.main.options.list_tests = True
- if self.milestone_filter is not None:
- svntest.main.options.milestone_filter = self.milestone_filter
- if self.set_log_level is not None:
- # Somehow the logger is not setup correctly from win-tests.py, so
- # setting the log level would fail. ### Please fix
- if svntest.main.logger is None:
- import logging
- svntest.main.logger = logging.getLogger()
- svntest.main.logger.setLevel(self.set_log_level)
- if self.svn_bin is not None:
- svntest.main.options.svn_bin = self.svn_bin
- if self.fsfs_sharding is not None:
- svntest.main.options.fsfs_sharding = int(self.fsfs_sharding)
- if self.fsfs_packing is not None:
- svntest.main.options.fsfs_packing = self.fsfs_packing
- if self.mode_filter is not None:
- svntest.main.options.mode_filter = self.mode_filter
- if self.ssl_cert is not None:
- svntest.main.options.ssl_cert = self.ssl_cert
- if self.http_proxy is not None:
- svntest.main.options.http_proxy = self.http_proxy
-
- svntest.main.options.srcdir = self.srcdir
-
# setup the output pipes
if self.log:
sys.stdout.flush()
@@ -515,31 +585,23 @@ class TestHarness:
serial_only = hasattr(prog_mod, 'serial_only') and prog_mod.serial_only
# run the tests
- svntest.testcase.TextColors.disable()
-
- if self.list_tests:
+ if self.opts.list_tests:
prog_f = None
else:
prog_f = progress_func
- if test_nums:
- test_selection = [test_nums]
- else:
- test_selection = []
-
try:
failed = svntest.main.execute_tests(prog_mod.test_list,
serial_only=serial_only,
test_name=progbase,
progress_func=prog_f,
- test_selection=test_selection)
+ test_selection=test_nums)
except svntest.Failure:
if self.log:
os.write(old_stdout, '.' * dot_count)
failed = True
# restore some values
- sys.path = old_path
if self.log:
sys.stdout.flush()
sys.stderr.flush()
@@ -550,7 +612,7 @@ class TestHarness:
return failed
- def _run_test(self, prog, test_nr, total_tests):
+ def _run_test(self, testcase, test_nr, total_tests):
"Run a single test. Return the test's exit code."
if self.log:
@@ -558,16 +620,12 @@ class TestHarness:
else:
log = sys.stdout
- test_nums = None
- if '#' in prog:
- prog, test_nums = prog.split('#')
-
- progdir, progbase = os.path.split(prog)
+ progdir, progbase, test_nums = testcase
if self.log:
# Using write here because we don't want even a trailing space
test_info = '[%s/%d] %s' % (str(test_nr + 1).zfill(len(str(total_tests))),
total_tests, progbase)
- if self.list_tests:
+ if self.opts.list_tests:
sys.stdout.write('Listing tests in %s' % (test_info, ))
else:
sys.stdout.write('%s' % (test_info, ))
@@ -576,7 +634,7 @@ class TestHarness:
# ### Hack for --log-to-stdout to work (but not print any dots).
test_info = ''
- if self.list_tests:
+ if self.opts.list_tests:
log.write('LISTING: %s\n' % progbase)
else:
log.write('START: %s\n' % progbase)
@@ -585,7 +643,7 @@ class TestHarness:
start_time = datetime.now()
- progabs = os.path.abspath(os.path.join(self.srcdir, prog))
+ progabs = os.path.abspath(os.path.join(self.srcdir, progdir, progbase))
old_cwd = os.getcwd()
line_length = _get_term_width()
dots_needed = line_length \
@@ -594,9 +652,10 @@ class TestHarness:
try:
os.chdir(progdir)
if progbase[-3:] == '.py':
- failed = self._run_py_test(progabs, test_nums, dots_needed)
+ testcase = self._run_py_test
else:
- failed = self._run_c_test(prog, test_nums, dots_needed)
+ testcase = self._run_c_test
+ failed = testcase(progabs, progdir, progbase, test_nums, dots_needed)
except:
os.chdir(old_cwd)
raise
@@ -614,7 +673,7 @@ class TestHarness:
else:
log.write('FAIL: %s: Unknown test failure.\n' % progbase)
- if not self.list_tests:
+ if not self.opts.list_tests:
# Log the elapsed time.
elapsed_time = str(datetime.now() - start_time)
log.write('END: %s\n' % progbase)
@@ -625,7 +684,7 @@ class TestHarness:
# If we are only listing the tests just add a newline, otherwise if
# we printed a "Running all tests in ..." line, add the test result.
if self.log:
- if self.list_tests:
+ if self.opts.list_tests:
print ''
else:
if failed:
@@ -636,84 +695,93 @@ class TestHarness:
return failed
+def create_parser():
+ def set_log_level(option, opt, value, parser, level=None):
+ if level is None:
+ level = value
+ parser.values.set_log_level = getattr(logging, level, None) or int(level)
+
+ parser = optparse.OptionParser(usage=__doc__);
+
+ parser.add_option('-l', '--list', action='store_true', dest='list_tests',
+ help='Print test doc strings instead of running them')
+ parser.add_option('-v', '--verbose', action='callback',
+ callback=set_log_level, callback_args=(logging.DEBUG, ),
+ help='Print binary command-lines')
+ parser.add_option('-c', '--cleanup', action='store_true',
+ help='Clean up after successful tests')
+ parser.add_option('-p', '--parallel', action='store', type='int',
+ help='Run the tests in parallel')
+ parser.add_option('-u', '--url', action='store',
+ help='Base url to the repos (e.g. svn://localhost)')
+ parser.add_option('-f', '--fs-type', action='store',
+ help='Subversion file system type (fsfs(-v[46]), bdb or fsx)')
+ parser.add_option('--http-library', action='store',
+ help="Make svn use this DAV library (neon or serf)")
+ parser.add_option('--bin', action='store', dest='svn_bin',
+ help='Use the svn binaries installed in this path')
+ parser.add_option('--fsfs-sharding', action='store', type='int',
+ help='Default shard size (for fsfs)')
+ parser.add_option('--fsfs-packing', action='store_true',
+ help="Run 'svnadmin pack' automatically")
+ parser.add_option('--server-minor-version', type='int', action='store',
+ help="Set the minor version for the server")
+ parser.add_option('--skip-c-tests', '--skip-C-tests', action='store_true',
+ help="Run only the Python tests")
+ parser.add_option('--dump-load-cross-check', action='store_true',
+ help="After every test, run a series of dump and load " +
+ "tests with svnadmin, svnrdump and svndumpfilter " +
+ " on the testcase repositories to cross-check " +
+ " dump file compatibility.")
+ parser.add_option('--enable-sasl', action='store_true',
+ help='Whether to enable SASL authentication')
+ parser.add_option('--config-file', action='store',
+ help="Configuration file for tests.")
+ parser.add_option('--log-to-stdout', action='store_true',
+ help='Print test progress to stdout instead of a log file')
+ parser.add_option('--milestone-filter', action='store', dest='milestone_filter',
+ help='Limit --list to those with target milestone specified')
+ parser.add_option('--mode-filter', action='store', dest='mode_filter',
+ default='ALL',
+ help='Limit tests to those with type specified (e.g. XFAIL)')
+ parser.add_option('--set-log-level', action='callback', type='str',
+ callback=set_log_level,
+ help="Set log level (numerically or symbolically). " +
+ "Symbolic levels are: CRITICAL, ERROR, WARNING, " +
+ "INFO, DEBUG")
+ parser.add_option('--ssl-cert', action='store',
+ help='Path to SSL server certificate.')
+ parser.add_option('--http-proxy', action='store',
+ help='Use the HTTP Proxy at hostname:port.')
+ parser.add_option('--http-proxy-username', action='store',
+ help='Username for the HTTP Proxy.')
+ parser.add_option('--http-proxy-password', action='store',
+ help='Password for the HTTP Proxy.')
+ parser.add_option('--httpd-version', action='store',
+ help='Assume HTTPD is this version.')
+ parser.add_option('--exclusive-wc-locks', action='store_true',
+ help='Use sqlite exclusive locking for working copies')
+ parser.add_option('--memcached-server', action='store',
+ help='Use memcached server at specified URL (FSFS only)')
+
+ parser.set_defaults(set_log_level=None)
+ return parser
+
def main():
- try:
- opts, args = my_getopt(sys.argv[1:], 'u:f:vc',
- ['url=', 'fs-type=', 'verbose', 'cleanup',
- 'http-library=', 'server-minor-version=',
- 'fsfs-packing', 'fsfs-sharding=',
- 'enable-sasl', 'parallel', 'config-file=',
- 'log-to-stdout', 'list', 'milestone-filter=',
- 'mode-filter=', 'set-log-level=', 'ssl-cert=',
- 'http-proxy='])
- except getopt.GetoptError:
- args = []
+ (opts, args) = create_parser().parse_args(sys.argv[1:])
if len(args) < 3:
print(__doc__)
sys.exit(2)
- base_url, fs_type, verbose, cleanup, enable_sasl, http_library, \
- server_minor_version, fsfs_sharding, fsfs_packing, parallel, \
- config_file, log_to_stdout, list_tests, mode_filter, milestone_filter, \
- set_log_level, ssl_cert, http_proxy = \
- None, None, None, None, None, None, None, None, None, None, None, \
- None, None, None, None, None, None, None
- for opt, val in opts:
- if opt in ['-u', '--url']:
- base_url = val
- elif opt in ['-f', '--fs-type']:
- fs_type = val
- elif opt in ['--http-library']:
- http_library = val
- elif opt in ['--fsfs-sharding']:
- fsfs_sharding = int(val)
- elif opt in ['--fsfs-packing']:
- fsfs_packing = 1
- elif opt in ['--server-minor-version']:
- server_minor_version = val
- elif opt in ['-v', '--verbose']:
- verbose = 1
- elif opt in ['-c', '--cleanup']:
- cleanup = 1
- elif opt in ['--enable-sasl']:
- enable_sasl = 1
- elif opt in ['--parallel']:
- parallel = 1
- elif opt in ['--config-file']:
- config_file = val
- elif opt in ['--log-to-stdout']:
- log_to_stdout = 1
- elif opt in ['--list']:
- list_tests = 1
- elif opt in ['--milestone-filter']:
- milestone_filter = val
- elif opt in ['--mode-filter']:
- mode_filter = val
- elif opt in ['--set-log-level']:
- set_log_level = val
- elif opt in ['--ssl-cert']:
- ssl_cert = val
- elif opt in ['--http-proxy']:
- http_proxy = val
- else:
- raise getopt.GetoptError
-
- if log_to_stdout:
+ if opts.log_to_stdout:
logfile = None
faillogfile = None
else:
logfile = os.path.abspath('tests.log')
faillogfile = os.path.abspath('fails.log')
- th = TestHarness(args[0], args[1], logfile, faillogfile,
- base_url, fs_type, http_library, server_minor_version,
- verbose, cleanup, enable_sasl, parallel, config_file,
- fsfs_sharding, fsfs_packing, list_tests,
- mode_filter=mode_filter, milestone_filter=milestone_filter,
- set_log_level=set_log_level, ssl_cert=ssl_cert,
- http_proxy=http_proxy)
-
+ th = TestHarness(args[0], args[1], logfile, faillogfile, opts)
failed = th.run(args[2:])
if failed:
sys.exit(1)
diff --git a/build/transform_libtool_scripts.sh b/build/transform_libtool_scripts.sh
index 014f8fe..72ab769 100755
--- a/build/transform_libtool_scripts.sh
+++ b/build/transform_libtool_scripts.sh
@@ -49,77 +49,89 @@ transform()
DIR=`pwd`
-transform subversion/tests/cmdline/atomic-ra-revprop-change "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform subversion/tests/libsvn_subr/auth-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/cache-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_fs_base/changes-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/checksum-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_client/client-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/tests/libsvn_subr/compat-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/config-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_wc/conflict-data-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/tests/libsvn_subr/crypto-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/bindings/cxxhl/cxxhl-tests "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/tests/libsvn_wc/db-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/tests/cmdline/atomic-ra-revprop-change "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform subversion/tests/libsvn_subr/auth-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/bit-array-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/cache-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_fs_base/changes-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/checksum-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_client/client-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/tests/libsvn_subr/compat-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/config-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_wc/conflict-data-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/tests/libsvn_subr/crypto-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/bindings/cxxhl/cxxhl-tests "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/tests/libsvn_wc/db-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
transform tools/diff/diff "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform subversion/tests/libsvn_diff/diff-diff3-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_diff/diff-diff3-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
transform tools/diff/diff3 "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
transform tools/diff/diff4 "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform subversion/tests/libsvn_subr/dirent_uri-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_wc/entries-compat-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/tests/libsvn_subr/dirent_uri-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_repos/dump-load-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_wc/entries-compat-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
transform subversion/tests/cmdline/entries-dump "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/tests/libsvn_subr/error-code-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/error-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_fs_base/fs-base-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_fs_fs/fs-pack-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_fs/fs-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/error-code-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/error-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_fs_base/fs-base-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_fs_fs/fs-fs-pack-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_fs_fs/fs-fs-private-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_fs/fs-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_fs_x/fs-x-pack-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
transform tools/dev/fsfs-access-map "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform tools/dev/fsfs-reorg "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform tools/server-side/fsfs-stats "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform subversion/tests/libsvn_subr/hashdump-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/io-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_fs/locks-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/mergeinfo-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/named_atomic-proc-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform subversion/tests/libsvn_subr/named_atomic-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_wc/op-depth-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/tests/libsvn_subr/opt-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_diff/parse-diff-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/path-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_wc/pristine-store-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/tests/libsvn_ra_local/ra-local-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_ra/ra-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_delta/random-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_repos/repos-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/revision-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/skel-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/spillbuf-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/stream-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/string-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_fs_base/strings-reps-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/subst_translate-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/svn/svn "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform tools/client-side/svn-bench/svn-bench "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform tools/server-side/svn-populate-node-origins-index "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform tools/server-side/svn-rep-sharing-stats "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform subversion/svnadmin/svnadmin "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform tools/server-side/svnauthz "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform tools/server-side/svnauthz-validate "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform subversion/tests/libsvn_subr/hashdump-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/io-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/cmdline/lock-helper "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform subversion/tests/libsvn_fs/locks-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/mergeinfo-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_client/mtcc-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/tests/libsvn_wc/op-depth-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/tests/libsvn_subr/opt-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/packed-data-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_diff/parse-diff-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/path-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/prefix-string-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/priority-queue-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_wc/pristine-store-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/tests/libsvn_ra_local/ra-local-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_ra/ra-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_delta/random-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_repos/repos-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/revision-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/root-pools-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/skel-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/spillbuf-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/sqlite-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/stream-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_fs_x/string-table-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/string-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_fs_base/strings-reps-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/subst_translate-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/svn/svn "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform tools/server-side/svn-populate-node-origins-index "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform tools/dev/wc-ng/svn-wc-db-tester "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/svnadmin/svnadmin "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform tools/server-side/svnauthz "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform tools/server-side/svnauthz-validate "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform subversion/svnbench/svnbench "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
transform subversion/tests/libsvn_delta/svndiff-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform subversion/svndumpfilter/svndumpfilter "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform subversion/svnlook/svnlook "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform subversion/svnmucc/svnmucc "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/svndumpfilter/svndumpfilter "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform subversion/svnfsfs/svnfsfs "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform subversion/svnlook/svnlook "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform subversion/svnmucc/svnmucc "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
transform tools/dev/svnraisetreeconflict/svnraisetreeconflict "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/svnrdump/svnrdump "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/svnserve/svnserve "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
-transform subversion/svnsync/svnsync "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform subversion/svnrdump/svnrdump "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/svnserve/svnserve "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform subversion/svnsync/svnsync "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
transform subversion/svnversion/svnversion "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/tests/libsvn_subr/time-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/translate-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_subr/utf-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/time-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/translate-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_subr/utf-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
transform subversion/tests/libsvn_delta/vdelta-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
transform subversion/tests/libsvn_wc/wc-incomplete-tester "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
transform subversion/tests/libsvn_wc/wc-lock-tester "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/tests/libsvn_wc/wc-queries-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
-transform subversion/tests/libsvn_wc/wc-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
-transform subversion/tests/libsvn_delta/window-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_wc/wc-queries-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform subversion/tests/libsvn_wc/wc-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_client/.libs/libsvn_client-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_diff/.libs/libsvn_diff-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so $DIR/subversion/libsvn_wc/.libs/libsvn_wc-1.so"
+transform subversion/tests/libsvn_delta/window-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
+transform tools/dev/x509-parser "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
+transform subversion/tests/libsvn_subr/x509-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
diff --git a/build/transform_sql.py b/build/transform_sql.py
index 90e1b79..d16e410 100755
--- a/build/transform_sql.py
+++ b/build/transform_sql.py
@@ -140,7 +140,7 @@ class Processor(object):
# '/'+1 == '0'
line = re.sub(
- r'IS_STRICT_DESCENDANT_OF[(]([A-Za-z_.]+), ([?][0-9]+)[)]',
+ r'IS_STRICT_DESCENDANT_OF[(]([?]?[A-Za-z0-9_.]+), ([?]?[A-Za-z0-9_.]+)[)]',
r"(((\1) > (CASE (\2) WHEN '' THEN '' ELSE (\2) || '/' END))" +
r" AND ((\1) < CASE (\2) WHEN '' THEN X'FFFF' ELSE (\2) || '0' END))",
line)
@@ -148,6 +148,12 @@ class Processor(object):
# RELPATH_SKIP_JOIN(x, y, z) skips the x prefix from z and the joins the
# result after y. In other words it replaces x with y, but follows the
# relpath rules.
+ #
+ # This matches the C version of:
+ # svn_relpath_join(y, svn_relpath_skip_ancestor(x, z), pool)
+ # but returns an SQL NULL in case z is not below x.
+ #
+
line = re.sub(
r'RELPATH_SKIP_JOIN[(]([?]?[A-Za-z0-9_.]+), ' +
r'([?]?[A-Za-z0-9_.]+), ' +
@@ -188,14 +194,14 @@ class Processor(object):
line)
# Another preprocessing.
- for symbol, string in self.token_map.iteritems():
+ for symbol, string in self.token_map.items():
# ### This doesn't sql-escape 'string'
line = re.sub(r'\b%s\b' % re.escape(symbol), "'%s'" % string, line)
if line.strip():
handled = False
- for regex, handler in self._directives.iteritems():
+ for regex, handler in self._directives.items():
match = regex.match(line)
if match:
handler(match)
diff --git a/build/win32/svn.rc b/build/win32/svn.rc
index d98e1bd..8338b1c 100644
--- a/build/win32/svn.rc
+++ b/build/win32/svn.rc
@@ -70,11 +70,11 @@ BEGIN
BEGIN
BLOCK "040904B0"
BEGIN
- VALUE "CompanyName", "http://subversion.apache.org/\0"
+ VALUE "CompanyName", "Apache Software Foundation\0"
VALUE "FileDescription", APR_STRINGIFY(SVN_FILE_DESCRIPTION) "\0"
VALUE "FileVersion", SVN_VER_NUMBER "\0"
VALUE "InternalName", "SVN\0"
- VALUE "LegalCopyright", "Copyright (c) 2011 The Apache Software Foundation\0"
+ VALUE "LegalCopyright", "Copyright (c) The Apache Software Foundation\0"
VALUE "OriginalFilename", APR_STRINGIFY(SVN_FILE_NAME) "\0"
VALUE "ProductName", "Subversion\0"
VALUE "ProductVersion", SVN_VERSION "\0"