Modified: subversion/branches/addremove/build.conf
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build.conf?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build.conf (original)
+++ subversion/branches/addremove/build.conf Sat May 23 14:16:56 2020
@@ -38,11 +38,14 @@ private-includes =
         subversion/include/private/*.h
         subversion/bindings/swig/include/*.swg
         subversion/libsvn_delta/compose_delta.c
-        subversion/bindings/cxxhl/include/*.hpp
-        subversion/bindings/cxxhl/include/svncxxhl/*.hpp
-        subversion/bindings/cxxhl/src/*.hpp
-        subversion/bindings/cxxhl/src/aprwrap/*.hpp
-        subversion/bindings/cxxhl/src/private/*.hpp
+        subversion/bindings/cxx/include/*.hpp
+        subversion/bindings/cxx/include/svnxx/*.hpp
+        subversion/bindings/cxx/include/svnxx/client/*.hpp
+        subversion/bindings/cxx/include/svnxx/detail/*.hpp
+        subversion/bindings/cxx/src/*.hpp
+        subversion/bindings/cxx/src/aprwrap/*.hpp
+        subversion/bindings/cxx/src/private/*.hpp
+        subversion/bindings/cxx/tests/*.hpp
         subversion/bindings/javahl/native/*.hpp
         subversion/bindings/javahl/native/jniwrapper/jni_*.hpp
         tools/dev/svnmover/linenoise/linenoise.h
@@ -98,9 +101,9 @@ test-scripts =
 
 bdb-test-scripts =
 
-swig-python-opts = $(SWIG_CPPFLAGS) -python -classic
-swig-perl-opts = $(SWIG_CPPFLAGS) -perl -nopm -noproxy
-swig-ruby-opts = $(SWIG_CPPFLAGS) -ruby
+swig-python-opts = $(SWIG_FEATURES) $(SWIG_PY_OPTS) $(SWIG_PY_FEATURES)
+swig-perl-opts = $(SWIG_FEATURES) -perl $(SWIG_PL_FEATURES) -nopm -noproxy
+swig-ruby-opts = $(SWIG_FEATURES) -ruby $(SWIG_RB_FEATURES)
 swig-languages = python perl ruby
 swig-dirs = 
         subversion/bindings/swig/python
@@ -245,7 +248,7 @@ type = lib
 path = subversion/libsvn_client
 libs = libsvn_wc libsvn_ra libsvn_delta libsvn_diff libsvn_subr apriconv apr
 install = lib
-msvc-export = svn_client.h private/svn_client_mtcc.h 
private/svn_client_private.h
+msvc-export = svn_client.h private/svn_client_mtcc.h 
private/svn_client_private.h private/svn_client_shelf.h 
private/svn_client_shelf2.h
 
 # Routines for binary diffing and tree-deltas
 [libsvn_delta]
@@ -371,7 +374,8 @@ type = lib
 install = fsmod-lib
 path = subversion/libsvn_subr
 sources = *.c lz4/*.c
-libs = aprutil apriconv apr xml zlib apr_memcache sqlite magic intl lz4 
utf8proc
+libs = aprutil apriconv apr xml zlib apr_memcache
+       sqlite magic intl lz4 utf8proc macos-plist macos-keychain
 msvc-libs = kernel32.lib advapi32.lib shfolder.lib ole32.lib
             crypt32.lib version.lib
 msvc-export = 
@@ -392,7 +396,7 @@ msvc-export =
         private\svn_string_private.h private\svn_magic.h
         private\svn_subr_private.h private\svn_mutex.h
         private\svn_packed_data.h private\svn_object_pool.h private\svn_cert.h
-        private\svn_config_private.h
+        private\svn_config_private.h private\svn_dirent_uri_private.h
 
 # Working copy management lib
 [libsvn_wc]
@@ -438,7 +442,7 @@ description = Subversion FSFS Repository
 type = exe
 path = subversion/svnfsfs
 install = bin
-libs = libsvn_repos libsvn_fs libsvn_fs_fs libsvn_delta libsvn_subr apriconv 
apr
+libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
 
 # ----------------------------------------------------------------------------
 #
@@ -458,7 +462,7 @@ path = subversion/libsvn_fs_x
 sources = rep-cache-db.sql
 
 [wc_queries]
-desription = Queries on the WC database
+description = Queries on the WC database
 type = sql-header
 path = subversion/libsvn_wc
 sources = wc-queries.sql
@@ -608,16 +612,14 @@ msvc-export = ../bindings/swig/ruby/libs
 [javahl-java]
 type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl
-  subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
-  subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
-  subversion/bindings/javahl/src/org/apache/subversion/javahl/types
-  subversion/bindings/javahl/src/org/apache/subversion/javahl/util
-src-root = subversion/bindings/javahl/src
 sources = *.java
+native = CommitItemStateFlags.java NativeResources.java SVNClient.java
+         SVNRepos.java
 install = javahl-java
 link-cmd = $(COMPILE_JAVAHL_JAVAC)
 classes = subversion/bindings/javahl/classes
-package-roots = org
+headers = subversion/bindings/javahl/include
+package = org.apache.subversion.javahl
 
 [javahl-compat-java]
 type = java
@@ -626,10 +628,12 @@ sources = *.java
 install = javahl-java
 link-cmd = $(COMPILE_JAVAHL_COMPAT_JAVAC)
 classes = subversion/bindings/javahl/classes
-add-deps = $(javahl_java_DEPS)
+add-deps = $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS)
+           $(javahl_types_java_DEPS) $(javahl_util_java_DEPS)
+           $(javahl_java_DEPS)
 ### Replace JAR call in INSTALL_EXTRA_JAVAHL_JAVA macro Makefile.in.
 #jar = svn-javahl.jar
-package-roots = org
+package = org.tigris.subversion.javahl
 
 [javahl-tests]
 type = java
@@ -638,10 +642,12 @@ sources = *.java
 install = javahl-java
 link-cmd = $(COMPILE_JAVAHL_JAVAC)
 classes = subversion/bindings/javahl/classes
-package-roots = org
+package = org.apache.subversion.javahl
 ### Java targets don't do up-to-date checks yet.
 #add-deps = javahl-java
-add-deps = $(javahl_java_DEPS)
+add-deps = $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS)
+           $(javahl_types_java_DEPS) $(javahl_util_java_DEPS)
+           $(javahl_java_DEPS)
 
 [javahl-compat-tests]
 type = java
@@ -650,65 +656,59 @@ sources = *.java
 install = javahl-java
 link-cmd = $(COMPILE_JAVAHL_COMPAT_JAVAC)
 classes = subversion/bindings/javahl/classes
-package-roots = org
+package = org.tigris.subversion.javahl
 ### Java targets don't do up-to-date checks yet.
 #add-deps = javahl-compat-java
 add-deps = $(javahl_compat_java_DEPS)
 
-[javahl-callback-javah]
-type = javah
+[javahl-callback-java]
+type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
 classes = subversion/bindings/javahl/classes
 headers = subversion/bindings/javahl/include
 package = org.apache.subversion.javahl.callback
 sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = UserPasswordCallback.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
 
-[javahl-remote-javah]
-type = javah
+[javahl-remote-java]
+type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
 classes = subversion/bindings/javahl/classes
 headers = subversion/bindings/javahl/include
 package = org.apache.subversion.javahl.remote
 sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = CommitEditor.java RemoteFactory.java RemoteSession.java
+         StateReporter.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
 
-[javahl-types-javah]
-type = javah
+[javahl-types-java]
+type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl/types
 classes = subversion/bindings/javahl/classes
 headers = subversion/bindings/javahl/include
 package = org.apache.subversion.javahl.types
 sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = NativeInputStream.java NativeOutputStream.java Revision.java
+         RevisionRangeList.java RuntimeVersion.java VersionExtended.java
+         Version.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
 
-[javahl-util-javah]
-type = javah
+[javahl-util-java]
+type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl/util
 classes = subversion/bindings/javahl/classes
 headers = subversion/bindings/javahl/include
 package = org.apache.subversion.javahl.util
 sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
-
-[javahl-javah]
-type = javah
-path = subversion/bindings/javahl/src/org/apache/subversion/javahl
-classes = subversion/bindings/javahl/classes
-headers = subversion/bindings/javahl/include
-package = org.apache.subversion.javahl
-sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = ConfigImpl.java ConfigLib.java DiffLib.java PropLib.java
+         RequestChannel.java ResponseChannel.java SubstLib.java
+         TunnelChannel.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
 
 [libsvnjavahl]
 description = Subversion Java HighLevel binding
@@ -717,9 +717,9 @@ path = subversion/bindings/javahl/native
 libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff 
        libsvn_subr libsvn_fs aprutil apriconv apr java-sdk
 sources = *.cpp jniwrapper/*.cpp
-add-deps = $(javahl_java_DEPS) $(javahl_callback_javah_DEPS)
-           $(javahl_remote_javah_DEPS) $(javahl_types_javah_DEPS)
-           $(javahl_util_javah_DEPS) $(javahl_javah_DEPS)
+add-deps = $(javahl_java_DEPS) $(javahl_callback_java_DEPS)
+           $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS)
+           $(javahl_util_java_DEPS) $(javahl_java_DEPS)
 install = javahl-lib
 # need special build rule to include -I$(JDK)/include/jni.h
 compile-cmd = $(COMPILE_JAVAHL_CXX)
@@ -727,48 +727,34 @@ link-cmd = $(LINK_JAVAHL_CXX)
 
 # ----------------------------------------------------------------------------
 #
-# C++HL targets
+# SVN++ targets
 #
 
-[libsvncxxhl]
-description = Subversion C++ HighLevel bindings
+[libsvnxx]
+description = Subversion C++ bindings
+when = SVN_BUILD_SVNXX
 type = lib
-path = subversion/bindings/cxxhl
+path = subversion/bindings/cxx
 libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff
        libsvn_subr libsvn_fs aprutil apriconv apr
 sources = src/*.cpp src/aprwrap/*.cpp
-install = cxxhl-lib
+install = svnxx-lib
 msvc-static = yes
-compile-cmd = $(COMPILE_CXXHL_CXX)
+compile-cmd = $(COMPILE_SVNXX)
 link-cmd = $(LINK_CXX_LIB)
 
-[cxxhl-tests]
-description = Unit tests for Subversion C++ HighLevel bindings
-when = SVN_USE_GOOGLEMOCK
-type = exe
-path = subversion/bindings/cxxhl
-libs = libsvncxxhl libgooglemock libsvn_subr apr
+[svnxx-tests]
+description = Unit tests for Subversion C++ bindings
+when = SVN_BUILD_SVNXX_TESTS
+type = exe
+path = subversion/bindings/cxx
+libs = libsvnxx
+       libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff
+       libsvn_subr libsvn_fs aprutil apriconv apr
 sources = tests/*.cpp
-install = cxxhl-tests
-compile-cmd = $(COMPILE_CXXHL_GOOGLEMOCK_CXX)
-link-cmd = $(LINK_CXX)
-
-
-# ----------------------------------------------------------------------------
-#
-# Googlemock targets
-#
-
-[libgooglemock]
-description = Googlemock Library
-when = SVN_USE_GOOGLEMOCK
-type = lib
-path = googlemock
-sources = googletest/src/gtest-all.cc googlemock/src/gmock-all.cc
-install = cxxhl-tests
-msvc-static = yes
-compile-cmd = $(COMPILE_GOOGLEMOCK_CXX)
-link-cmd = $(LINK_CXX_LIB)
+install = svnxx-tests
+compile-cmd = $(COMPILE_SVNXX_TEST)
+link-cmd = $(LINK_SVNXX_TEST)
 
 # ----------------------------------------------------------------------------
 #
@@ -1207,6 +1193,14 @@ sources = window-test.c
 install = test
 libs = libsvn_test libsvn_delta libsvn_subr apriconv apr
 
+[svndiff-stream-test]
+description = Test svndiff streams
+type = exe
+path = subversion/tests/libsvn_delta
+sources = svndiff-stream-test.c
+install = test
+libs = libsvn_test libsvn_delta libsvn_subr apriconv apr
+
 # ----------------------------------------------------------------------------
 # Tests for libsvn_client
 
@@ -1455,7 +1449,8 @@ external-lib = $(SVN_DB_LIBS)
 [gnome-keyring]
 type = lib
 external-lib = $(SVN_GNOME_KEYRING_LIBS)
-pkg-config = gnome-keyring-1
+pkg-config = @SVN_GNOME_KEYRING_PCLIBS@
+pkg-config-private = yes
 
 [kwallet]
 type = lib
@@ -1465,6 +1460,14 @@ external-lib = $(SVN_KWALLET_LIBS)
 type = lib
 external-lib = $(SVN_MAGIC_LIBS)
 
+[macos-plist]
+type = lib
+external-lib = $(SVN_MACOS_PLIST_LIBS)
+
+[macos-keychain]
+type = lib
+external-lib = $(SVN_MACOS_KEYCHAIN_LIBS)
+
 [sasl]
 type = lib
 external-lib = $(SVN_SASL_LIBS)
@@ -1579,7 +1582,8 @@ libs = __ALL__
        conflict-data-test db-test pristine-store-test entries-compat-test
        op-depth-test dirent_uri-test wc-queries-test wc-test
        auth-test
-       parse-diff-test x509-test xml-test afl-x509 compress-test
+       parse-diff-test x509-test xml-test afl-x509 afl-svndiff compress-test
+       svndiff-stream-test
 
 [__MORE__]
 type = project
@@ -1620,7 +1624,7 @@ lang = ruby
 [__JAVAHL__]
 type = project
 path = build/win32
-libs = javahl-java javahl-javah libsvnjavahl
+libs = javahl-java libsvnjavahl
 
 [__JAVAHL_TESTS__]
 type = project
@@ -1739,3 +1743,12 @@ sources = afl-x509.c
 install = test
 libs = libsvn_subr apr
 testing = skip
+
+[afl-svndiff]
+description = AFL fuzzer for svndiff to txdelta parser
+type = exe
+path = subversion/tests/afl
+sources = afl-svndiff.c
+install = test
+libs = libsvn_delta libsvn_subr apr
+testing = skip

Modified: subversion/branches/addremove/build/PrintPath
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/PrintPath?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/PrintPath (original)
+++ subversion/branches/addremove/build/PrintPath Sat May 23 14:16:56 2020
@@ -1,22 +1,19 @@
 #!/bin/sh
 #
-#
-#   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
+# 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.
+# 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.
 #
 #
 # Look for program[s] somewhere in $PATH.
@@ -32,9 +29,6 @@
 #
 # Initially written by Jim Jagielski for the Apache configuration mechanism
 #  (with kudos to Kernighan/Pike)
-#
-# This script falls under the Apache License.
-# See http://www.apache.org/docs/LICENSE
 
 ##
 # Some "constants"
@@ -69,7 +63,7 @@ done
 # Finally, we try to determine the best flag to use for
 # test/[] to look for an executable file. OS/2 just has '-r'
 # but with other OSs, we do some funny stuff to check to see
-# if test/[] knows about -x, which is the preferred flag.
+# if test/[] knows about -x, which is the prefered flag.
 ##
 
 if [ "x$os" = "xOS/2" ]

Modified: subversion/branches/addremove/build/ac-macros/compiler.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/compiler.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/compiler.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/compiler.m4 Sat May 23 
14:16:56 2020
@@ -102,7 +102,7 @@ AC_DEFUN([SVN_CXX_MODE_SETUP],
   if test "$GXX" = "yes"; then
     dnl Find flags to force C++98 mode
                   dnl g++ and clang++
-    SVN_CXXFLAGS_ADD_IFELSE([-std=c++98])
+    SVN_CXXFLAGS_ADD_IFELSE([-std=c++11])
   fi
 
   CXXMODEFLAGS="$CXXFLAGS"
@@ -126,18 +126,3 @@ AC_DEFUN([SVN_CXX_MODE_SETUP],
     SVN_CXXFLAGS_ADD_IFELSE([-Werror=unknown-warning-option])
   fi
 ])
-
-dnl The KWallet provider needs to use C++11 mode when using KDE 5
-AC_DEFUN([SVN_CXX_MODE_SETUP11],
-[
-  CXXFLAGS_KEEP="$CXXFLAGS"
-  CXXFLAGS=""
-
-  if test "$GXX" = "yes"; then
-    SVN_CXXFLAGS_ADD_IFELSE([-std=c++11])
-  fi
-
-  CXXMODEFLAGS="$CXXFLAGS"
-  CXXFLAGS="$CXXFLAGS_KEEP"
-  AC_SUBST(CXXMODEFLAGS)
-])

Modified: subversion/branches/addremove/build/ac-macros/find_apr.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/find_apr.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/find_apr.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/find_apr.m4 Sat May 23 
14:16:56 2020
@@ -1,21 +1,19 @@
-dnl ===================================================================
-dnl   Licensed to the Apache Software Foundation (ASF) under one
-dnl   or more contributor license agreements.  See the NOTICE file
-dnl   distributed with this work for additional information
-dnl   regarding copyright ownership.  The ASF licenses this file
-dnl   to you under the Apache License, Version 2.0 (the
-dnl   "License"); you may not use this file except in compliance
-dnl   with the License.  You may obtain a copy of the License at
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl Licensed to the Apache Software Foundation (ASF) under one or more
+dnl contributor license agreements.  See the NOTICE file distributed with
+dnl this work for additional information regarding copyright ownership.
+dnl The ASF licenses this file to You under the Apache License, Version 2.0
+dnl (the "License"); you may not use this file except in compliance with
+dnl the License.  You may obtain a copy of the License at
 dnl
 dnl     http://www.apache.org/licenses/LICENSE-2.0
 dnl
-dnl   Unless required by applicable law or agreed to in writing,
-dnl   software distributed under the License is distributed on an
-dnl   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-dnl   KIND, either express or implied.  See the License for the
-dnl   specific language governing permissions and limitations
-dnl   under the License.
-dnl ===================================================================
+dnl Unless required by applicable law or agreed to in writing, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+
 dnl
 dnl find_apr.m4 : locate the APR include files and libraries
 dnl
@@ -24,7 +22,8 @@ dnl library. It provides a standardized
 dnl embedding APR into the application source, or locating an installed
 dnl copy of APR.
 dnl
-dnl APR_FIND_APR(srcdir, builddir, implicit-install-check, acceptable-majors)
+dnl APR_FIND_APR(srcdir, builddir, implicit-install-check, acceptable-majors,
+dnl              detailed-check)
 dnl
 dnl   where srcdir is the location of the bundled APR source directory, or
 dnl   empty if source is not bundled.
@@ -41,6 +40,14 @@ dnl   If multiple versions are specified
 dnl   implicit installed search are used, then the first (leftmost) version
 dnl   in the list that is found will be used.  Currently defaults to [0 1].
 dnl
+dnl   where detailed-check is an M4 macro which sets the apr_acceptable to
+dnl   either "yes" or "no". The macro will be invoked for each installed
+dnl   copy of APR found, with the apr_config variable set appropriately.
+dnl   Only installed copies of APR which are considered acceptable by
+dnl   this macro will be considered found. If no installed copies are
+dnl   considered acceptable by this macro, apr_found will be set to either
+dnl   either "no" or "reconfig".
+dnl
 dnl Sets the following variables on exit:
 dnl
 dnl   apr_found : "yes", "no", "reconfig"
@@ -64,7 +71,7 @@ dnl
 AC_DEFUN([APR_FIND_APR], [
   apr_found="no"
 
-  if test "$ac_cv_emxos2" = "yes"; then
+  if test "$target_os" = "os2-emx"; then
     # Scripts don't pass test -x on OS/2
     TEST_X="test -f"
   else
@@ -91,8 +98,8 @@ AC_DEFUN([APR_FIND_APR], [
 
   AC_MSG_CHECKING(for APR)
   AC_ARG_WITH(apr,
-  [  --with-apr=PATH         prefix for installed APR, path to APR build tree,
-                          or the full path to apr-config],
+  [  --with-apr=PATH         prefix for installed APR or the full path to 
+                             apr-config],
   [
     if test "$withval" = "no" || test "$withval" = "yes"; then
       AC_MSG_ERROR([--with-apr requires a directory or file to be provided])
@@ -103,16 +110,28 @@ AC_DEFUN([APR_FIND_APR], [
       for lookdir in "$withval/bin" "$withval"
       do
         if $TEST_X "$lookdir/$apr_temp_apr_config_file"; then
-          apr_found="yes"
           apr_config="$lookdir/$apr_temp_apr_config_file"
+          ifelse([$5], [], [], [
+          apr_acceptable="yes"
+          $5
+          if test "$apr_acceptable" != "yes"; then
+            AC_MSG_WARN([Found APR in $apr_config, but we think it is 
considered unacceptable])
+            continue
+          fi])
+          apr_found="yes"
           break 2
         fi
       done
     done
 
     if test "$apr_found" != "yes" && $TEST_X "$withval" && $withval --help > 
/dev/null 2>&1 ; then
-      apr_found="yes"
       apr_config="$withval"
+      ifelse([$5], [], [apr_found="yes"], [
+          apr_acceptable="yes"
+          $5
+          if test "$apr_acceptable" = "yes"; then
+                apr_found="yes"
+          fi])
     fi
 
     dnl if --with-apr is used, it is a fatal error for its argument
@@ -121,9 +140,43 @@ AC_DEFUN([APR_FIND_APR], [
       AC_MSG_ERROR([the --with-apr parameter is incorrect. It must specify an 
install prefix, a build directory, or an apr-config file.])
     fi
   ],[
-    dnl if we have a bundled source directory, use it
-    if test -d "$1"; then
-      apr_temp_abs_srcdir="`cd $1 && pwd`"
+    dnl If we allow installed copies, check those before using bundled copy.
+    if test -n "$3" && test "$3" = "1"; then
+      for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config
+      do
+        if $apr_temp_apr_config_file --help > /dev/null 2>&1 ; then
+          apr_config="$apr_temp_apr_config_file"
+          ifelse([$5], [], [], [
+          apr_acceptable="yes"
+          $5
+          if test "$apr_acceptable" != "yes"; then
+            AC_MSG_WARN([skipped APR at $apr_config, version not acceptable])
+            continue
+          fi])
+          apr_found="yes"
+          break
+        else
+          dnl look in some standard places
+          for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do
+            if $TEST_X "$lookdir/bin/$apr_temp_apr_config_file"; then
+              apr_config="$lookdir/bin/$apr_temp_apr_config_file"
+              ifelse([$5], [], [], [
+              apr_acceptable="yes"
+              $5
+              if test "$apr_acceptable" != "yes"; then
+                AC_MSG_WARN([skipped APR at $apr_config, version not 
acceptable])
+                continue
+              fi])
+              apr_found="yes"
+              break 2
+            fi
+          done
+        fi
+      done
+    fi
+    dnl if we have not found anything yet and have bundled source, use that
+    if test "$apr_found" = "no" && test -d "$1"; then
+      apr_temp_abs_srcdir="`cd \"$1\" && pwd`"
       apr_found="reconfig"
       apr_bundled_major="`sed -n 
'/#define.*APR_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' 
\"$1/include/apr_version.h\"`"
       case $apr_bundled_major in
@@ -143,25 +196,6 @@ AC_DEFUN([APR_FIND_APR], [
         apr_config="$1/$apr_temp_apr_config_file"
       fi
     fi
-    if test "$apr_found" = "no" && test -n "$3" && test "$3" = "1"; then
-      for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config
-      do
-        if $apr_temp_apr_config_file --help > /dev/null 2>&1 ; then
-          apr_found="yes"
-          apr_config="$apr_temp_apr_config_file"
-          break
-        else
-          dnl look in some standard places (apparently not in builtin/default)
-          for lookdir in /usr /usr/local /opt/apr /usr/local/apache2 ; do
-            if $TEST_X "$lookdir/bin/$apr_temp_apr_config_file"; then
-              apr_found="yes"
-              apr_config="$lookdir/bin/$apr_temp_apr_config_file"
-              break 2
-            fi
-          done
-        fi
-      done
-    fi
   ])
 
   AC_MSG_RESULT($apr_found)

Modified: subversion/branches/addremove/build/ac-macros/find_apu.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/find_apu.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/find_apu.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/find_apu.m4 Sat May 23 
14:16:56 2020
@@ -1,21 +1,19 @@
-dnl ===================================================================
-dnl   Licensed to the Apache Software Foundation (ASF) under one
-dnl   or more contributor license agreements.  See the NOTICE file
-dnl   distributed with this work for additional information
-dnl   regarding copyright ownership.  The ASF licenses this file
-dnl   to you under the Apache License, Version 2.0 (the
-dnl   "License"); you may not use this file except in compliance
-dnl   with the License.  You may obtain a copy of the License at
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl Licensed to the Apache Software Foundation (ASF) under one or more
+dnl contributor license agreements.  See the NOTICE file distributed with
+dnl this work for additional information regarding copyright ownership.
+dnl The ASF licenses this file to You under the Apache License, Version 2.0
+dnl (the "License"); you may not use this file except in compliance with
+dnl the License.  You may obtain a copy of the License at
 dnl
 dnl     http://www.apache.org/licenses/LICENSE-2.0
 dnl
-dnl   Unless required by applicable law or agreed to in writing,
-dnl   software distributed under the License is distributed on an
-dnl   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-dnl   KIND, either express or implied.  See the License for the
-dnl   specific language governing permissions and limitations
-dnl   under the License.
-dnl ===================================================================
+dnl Unless required by applicable law or agreed to in writing, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+
 dnl
 dnl find_apu.m4 : locate the APR-util (APU) include files and libraries
 dnl
@@ -24,7 +22,8 @@ dnl library. It provides a standardized
 dnl embedding APU into the application source, or locating an installed
 dnl copy of APU.
 dnl
-dnl APR_FIND_APU(srcdir, builddir, implicit-install-check, acceptable-majors)
+dnl APR_FIND_APU(srcdir, builddir, implicit-install-check, acceptable-majors,
+dnl              detailed-check)
 dnl
 dnl   where srcdir is the location of the bundled APU source directory, or
 dnl   empty if source is not bundled.
@@ -41,6 +40,14 @@ dnl   If multiple versions are specified
 dnl   implicit installed search are used, then the first (leftmost) version
 dnl   in the list that is found will be used.  Currently defaults to [0 1].
 dnl
+dnl   where detailed-check is an M4 macro which sets the apu_acceptable to
+dnl   either "yes" or "no". The macro will be invoked for each installed
+dnl   copy of APU found, with the apu_config variable set appropriately.
+dnl   Only installed copies of APU which are considered acceptable by
+dnl   this macro will be considered found. If no installed copies are
+dnl   considered acceptable by this macro, apu_found will be set to either
+dnl   either "no" or "reconfig".
+dnl
 dnl Sets the following variables on exit:
 dnl
 dnl   apu_found : "yes", "no", "reconfig"
@@ -73,7 +80,7 @@ dnl
 AC_DEFUN([APR_FIND_APU], [
   apu_found="no"
 
-  if test "$ac_cv_emxos2" = "yes"; then
+  if test "$target_os" = "os2-emx"; then
     # Scripts don't pass test -x on OS/2
     TEST_X="test -f"
   else
@@ -101,8 +108,8 @@ AC_DEFUN([APR_FIND_APU], [
 
   AC_MSG_CHECKING(for APR-util)
   AC_ARG_WITH(apr-util,
-  [  --with-apr-util=PATH    prefix for installed APU, path to APU build tree,
-                          or the full path to apu-config],
+  [  --with-apr-util=PATH    prefix for installed APU or the full path to 
+                             apu-config],
   [
     if test "$withval" = "no" || test "$withval" = "yes"; then
       AC_MSG_ERROR([--with-apr-util requires a directory or file to be 
provided])
@@ -113,16 +120,28 @@ AC_DEFUN([APR_FIND_APU], [
       for lookdir in "$withval/bin" "$withval"
       do
         if $TEST_X "$lookdir/$apu_temp_apu_config_file"; then
-          apu_found="yes"
           apu_config="$lookdir/$apu_temp_apu_config_file"
+          ifelse([$5], [], [], [
+          apu_acceptable="yes"
+          $5
+          if test "$apu_acceptable" != "yes"; then
+            AC_MSG_WARN([Found APU in $apu_config, but it is considered 
unacceptable])
+            continue
+          fi])
+          apu_found="yes"
           break 2
         fi
       done
     done
 
     if test "$apu_found" != "yes" && $TEST_X "$withval" && $withval --help > 
/dev/null 2>&1 ; then
-      apu_found="yes"
       apu_config="$withval"
+      ifelse([$5], [], [apu_found="yes"], [
+          apu_acceptable="yes"
+          $5
+          if test "$apu_acceptable" = "yes"; then
+                apu_found="yes"
+          fi])
     fi
 
     dnl if --with-apr-util is used, it is a fatal error for its argument
@@ -131,9 +150,42 @@ AC_DEFUN([APR_FIND_APU], [
       AC_MSG_ERROR([the --with-apr-util parameter is incorrect. It must 
specify an install prefix, a build directory, or an apu-config file.])
     fi
   ],[
-    dnl if we have a bundled source directory, use it
-    if test -d "$1"; then
-      apu_temp_abs_srcdir="`cd $1 && pwd`"
+    if test -n "$3" && test "$3" = "1"; then
+      for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config
+      do
+        if $apu_temp_apu_config_file --help > /dev/null 2>&1 ; then
+          apu_config="$apu_temp_apu_config_file" 
+          ifelse([$5], [], [], [
+          apu_acceptable="yes"
+          $5
+          if test "$apu_acceptable" != "yes"; then
+            AC_MSG_WARN([skipped APR-util at $apu_config, version not 
acceptable])
+            continue
+          fi])
+          apu_found="yes"
+          break
+        else
+          dnl look in some standard places (apparently not in builtin/default)
+          for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do
+            if $TEST_X "$lookdir/bin/$apu_temp_apu_config_file"; then
+              apu_config="$lookdir/bin/$apu_temp_apu_config_file"
+              ifelse([$5], [], [], [
+              apu_acceptable="yes"
+              $5
+              if test "$apu_acceptable" != "yes"; then
+                AC_MSG_WARN([skipped APR-util at $apu_config, version not 
acceptable])
+                continue
+              fi])
+              apu_found="yes"
+              break 2
+            fi
+          done
+        fi
+      done
+    fi
+    dnl if we have not found anything yet and have bundled source, use that
+    if test "$apu_found" = "no" && test -d "$1"; then
+      apu_temp_abs_srcdir="`cd \"$1\" && pwd`"
       apu_found="reconfig"
       apu_bundled_major="`sed -n 
'/#define.*APU_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' 
\"$1/include/apu_version.h\"`"
       case $apu_bundled_major in
@@ -153,25 +205,6 @@ AC_DEFUN([APR_FIND_APU], [
         apu_config="$1/$apu_temp_apu_config_file"
       fi
     fi
-    if test "$apu_found" = "no" && test -n "$3" && test "$3" = "1"; then
-      for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config
-      do
-        if $apu_temp_apu_config_file --help > /dev/null 2>&1 ; then
-          apu_found="yes"
-          apu_config="$apu_temp_apu_config_file"
-          break
-        else
-          dnl look in some standard places (apparently not in builtin/default)
-          for lookdir in /usr /usr/local /opt/apr /usr/local/apache2 ; do
-            if $TEST_X "$lookdir/bin/$apu_temp_apu_config_file"; then
-              apu_found="yes"
-              apu_config="$lookdir/bin/$apu_temp_apu_config_file"
-              break 2
-            fi
-          done
-        fi
-      done
-    fi
   ])
 
   AC_MSG_RESULT($apu_found)

Modified: subversion/branches/addremove/build/ac-macros/java.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/java.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/java.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/java.m4 Sat May 23 14:16:56 
2020
@@ -166,7 +166,7 @@ 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.6"
+      JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.8"
       if test "$enable_debugging" = "yes"; then
         JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path 
$JAVAC_FLAGS"
         if test -z "$JAVAC_COMPAT_FLAGS"; then

Modified: subversion/branches/addremove/build/ac-macros/kwallet.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/kwallet.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/kwallet.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/kwallet.m4 Sat May 23 
14:16:56 2020
@@ -83,10 +83,6 @@ AC_DEFUN(SVN_LIB_KWALLET,
                   fi
                 fi
                 if test -n "$KDE_CONFIG"; then
-                  if test $kde_config_name = "kf5-config"; then
-                    dnl KF5 does not compile with -std=c++98
-                    SVN_CXX_MODE_SETUP11
-                  fi
                   old_CXXFLAGS="$CXXFLAGS"
                   old_LDFLAGS="$LDFLAGS"
                   old_LIBS="$LIBS"

Modified: subversion/branches/addremove/build/ac-macros/libsecret.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/libsecret.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/libsecret.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/libsecret.m4 Sat May 23 
14:16:56 2020
@@ -54,6 +54,7 @@ AC_DEFUN(SVN_LIB_SECRET,
                           [Is libsecret support enabled?])
                 SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags libsecret-1`"
                 SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs libsecret-1`"
+                SVN_GNOME_KEYRING_PCLIBS="libsecret-1"
                 found_gnome_keyring="yes"
               else
                 if test "$with_gnome_keyring" = "yes"; then
@@ -90,4 +91,5 @@ AC_DEFUN(SVN_LIB_SECRET,
   fi
   AC_SUBST(SVN_GNOME_KEYRING_INCLUDES)
   AC_SUBST(SVN_GNOME_KEYRING_LIBS)
+  AC_SUBST(SVN_GNOME_KEYRING_PCLIBS)
 ])

Modified: subversion/branches/addremove/build/ac-macros/lz4.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/lz4.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/lz4.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/lz4.m4 Sat May 23 14:16:56 
2020
@@ -28,9 +28,21 @@ AC_DEFUN(SVN_LZ4,
   AC_ARG_WITH([lz4],
     [AS_HELP_STRING([--with-lz4=PREFIX|internal],
                     [look for lz4 in PREFIX or use the internal code])],
-    [lz4_prefix="$withval"],
+    [
+      if test "$withval" = internal; then
+        lz4_prefix=internal
+      elif test "$withval" = yes; then
+        lz4_prefix=std
+      else
+        lz4_prefix="$withval"
+      fi
+    ],
     [lz4_prefix=std])
 
+  if test "$lz4_prefix" = "no"; then
+    dnl The user has tried to disable LZ4
+    AC_MSG_ERROR([Subversion requires LZ4])
+  fi
   if test "$lz4_prefix" = "internal"; then
     AC_MSG_NOTICE([using internal lz4])
     AC_DEFINE([SVN_INTERNAL_LZ4], [1],
@@ -42,28 +54,36 @@ AC_DEFUN(SVN_LZ4,
       SVN_LZ4_PREFIX
     fi
     if test "$lz4_found" != "yes"; then
-      AC_MSG_ERROR([Subversion requires LZ4])
+      AC_MSG_ERROR([Subversion requires LZ4 >= r129, or use 
--with-lz4=internal])
     fi
   fi
   AC_SUBST(SVN_LZ4_INCLUDES)
   AC_SUBST(SVN_LZ4_LIBS)
 ])
 
+dnl LZ4 changed versioning schemes after r131, the next version being 1.7.3, so
+dnl we need to check for both schemes.  We can't use "--atleast-version=1.7.3"
+dnl because that will result in a >= 1 check for the older versioning scheme.
+dnl Instead, fallback to --max-version=3 if the old scheme fails.  This gives a
+dnl little room for major version changes, but won't falsely identify old
+dnl versions as supported.
 AC_DEFUN(SVN_LZ4_STD,
 [
   if test -n "$PKG_CONFIG"; then
     AC_MSG_CHECKING([for lz4 library via pkg-config])
-    if $PKG_CONFIG liblz4 --exists; then
+    if $PKG_CONFIG liblz4 --atleast-version=129 || $PKG_CONFIG liblz4 
--max-version=3; then
       AC_MSG_RESULT([yes])
       lz4_found=yes
       SVN_LZ4_INCLUDES=`$PKG_CONFIG liblz4 --cflags`
       SVN_LZ4_LIBS=`$PKG_CONFIG liblz4 --libs`
       SVN_LZ4_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($SVN_LZ4_LIBS)`"
+    else
+      AC_MSG_RESULT([no])
     fi
-  else
+  fi
+  if test "$lz4_found" != "yes"; then
     AC_MSG_NOTICE([lz4 configuration without pkg-config])
-    AC_CHECK_LIB(lz4, LZ4_decompress_safe, [
-      AC_MSG_RESULT([yes])
+    AC_CHECK_LIB(lz4, LZ4_compress_default, [
       lz4_found=yes
       SVN_LZ4_LIBS="-llz4"
     ])
@@ -77,8 +97,7 @@ AC_DEFUN(SVN_LZ4_PREFIX,
   CPPFLAGS="$CPPFLAGS -I$lz4_prefix/include"
   save_ldflags="$LDFLAGS"
   LDFLAGS="$LDFLAGS -L$lz4_prefix/lib"
-  AC_CHECK_LIB(lz4, LZ4_decompress_safe, [
-    AC_MSG_RESULT([yes])
+  AC_CHECK_LIB(lz4, LZ4_compress_default, [
     lz4_found=yes
     SVN_LZ4_INCLUDES="-I$lz4_prefix/include"
     SVN_LZ4_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS(-L$lz4_prefix/lib)` -llz4"

Modified: subversion/branches/addremove/build/ac-macros/macosx.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/macosx.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/macosx.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/macosx.m4 Sat May 23 14:16:56 
2020
@@ -55,19 +55,8 @@ AC_DEFUN(SVN_LIB_MACOS_PLIST,
     #error ProperyList API unavailable.
     #endif
   ]],[[]])],[
-    dnl ### Hack.  We should only need to pass the -framework options when
-    dnl linking libsvn_subr, since it is the only library that uses Keychain.
-    dnl
-    dnl Unfortunately, libtool 1.5.x doesn't track transitive dependencies for
-    dnl OS X frameworks like it does for normal libraries, so we need to
-    dnl explicitly pass the option to all the users of libsvn_subr to allow
-    dnl static builds to link successfully.
-    dnl
-    dnl This does mean that all executables we link will be linked directly
-    dnl to these frameworks - even when building shared libraries - but that
-    dnl shouldn't cause any problems.
-
-    LIBS="$LIBS -framework CoreFoundation"
+    SVN_MACOS_PLIST_LIBS="-framework CoreFoundation"
+    AC_SUBST(SVN_MACOS_PLIST_LIBS)
     AC_DEFINE([SVN_HAVE_MACOS_PLIST], [1],
               [Is Mac OS property list API available?])
     AC_MSG_RESULT([yes])
@@ -97,9 +86,8 @@ AC_DEFUN(SVN_LIB_MACOS_KEYCHAIN,
       #error KeyChain API unavailable.
       #endif
     ]],[[]])],[
-      dnl ### Hack, see SVN_LIB_MACOS_PLIST
-      LIBS="$LIBS -framework Security"
-      LIBS="$LIBS -framework CoreServices"
+      SVN_MACOS_KEYCHAIN_LIBS="-framework Security -framework CoreServices"
+      AC_SUBST(SVN_MACOS_KEYCHAIN_LIBS)
       AC_DEFINE([SVN_HAVE_KEYCHAIN_SERVICES], [1], [Is Mac OS KeyChain support 
enabled?])
       AC_MSG_RESULT([yes])
     ],[

Modified: subversion/branches/addremove/build/ac-macros/serf.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/serf.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/serf.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/serf.m4 Sat May 23 14:16:56 
2020
@@ -168,8 +168,8 @@ AC_DEFUN(SVN_SERF_PKG_CONFIG,
         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_pc_arg --cflags | $SED -e 's/ 
-D[^ ]*//g' -e 's/^-D[^ ]*//g'`]
-          SVN_SERF_LIBS=`$PKG_CONFIG $serf_pc_arg --libs-only-l` 
+          SVN_SERF_INCLUDES=[`$PKG_CONFIG $serf_pc_arg --cflags-only-I`]
+          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

Modified: subversion/branches/addremove/build/ac-macros/swig.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/swig.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/swig.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/swig.m4 Sat May 23 14:16:56 
2020
@@ -98,209 +98,255 @@ AC_DEFUN(SVN_FIND_SWIG,
       AC_MSG_WARN([Detected SWIG version $SWIG_VERSION_RAW])
       AC_MSG_WARN([Subversion requires SWIG >= 1.3.24])
     fi
+  fi
+ 
+  SWIG_PY_COMPILE="none"
+  SWIG_PY_LINK="none"
+  SWIG_PY_OPTS="none"
+  SWIG_PY_ERRMSG="check config.log for details"
+  if test "$PYTHON" != "none"; then
+    AC_MSG_NOTICE([Configuring python swig binding])
+
+    AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[
+      ac_cv_python_includes="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--includes`"
+    ])
+    SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes"
+
+    if test "$ac_cv_python_includes" = "none"; then
+      SWIG_PY_ERRMSG="no distutils found"
+      AC_MSG_WARN([python bindings cannot be built without distutils module])
+    else
+
+      python_header_found="no"
+
+      save_cppflags="$CPPFLAGS"
+      CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+      AC_CHECK_HEADER(Python.h, [
+        python_header_found="yes"
+      ])
+      CPPFLAGS="$save_cppflags"
+
+      if test "$python_header_found" = "no"; then
+        SWIG_PY_ERRMSG="no Python.h found"
+        AC_MSG_WARN([Python.h not found; disabling python swig bindings])
+      else
+        SVN_PY3C()
 
-    SWIG_PY_COMPILE="none"
-    SWIG_PY_LINK="none"
-    if test "$PYTHON" != "none"; then
-      AC_MSG_NOTICE([Configuring python swig binding])
-
-      AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[
-        ac_cv_python_includes="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--includes`"
-      ])
-      SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes"
-
-      if test "$ac_cv_python_includes" = "none"; then
-        AC_MSG_WARN([python bindings cannot be built without distutils module])
+        if test "$py3c_found" = "no"; then
+          SWIG_PY_ERRMSG="py3c library not found"
+          AC_MSG_WARN([py3c library not found; disabling python swig bindings])
+        else
+          AC_CACHE_CHECK([for compiling Python extensions], 
[ac_cv_python_compile],[
+            ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--compile`"
+          ])
+          SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
+      
+          AC_CACHE_CHECK([for linking Python extensions], [ac_cv_python_link],[
+            ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--link`"
+          ])
+          SWIG_PY_LINK="$ac_cv_python_link"
+      
+          AC_CACHE_CHECK([for linking Python libraries], [ac_cv_python_libs],[
+            ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--libs`"
+          ])
+          SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`"
+
+          if test "$SWIG" = "none"; then
+            SWIG_PY_ERRMSG=""
+          else
+            # Look more closely at the SWIG and Python versions to
+            # determine SWIG_PY_OPTS. We can skip this if we already
+            # have the SWIG-generated files.
+            AC_CACHE_CHECK([for Python >= 3], [ac_cv_python_is_py3],[
+              ac_cv_python_is_py3="no"
+              $PYTHON -c 'import sys; sys.exit(0x3000000 > sys.hexversion)' && 
\
+                 ac_cv_python_is_py3="yes"
+            ])
+  
+            if test "$ac_cv_python_is_py3" = "yes"; then
+              if test "$SWIG_VERSION" -ge "300010"; then
+                dnl SWIG Python bindings successfully configured, clear the 
error message dnl
+                SWIG_PY_ERRMSG=""
+              else
+                SWIG_PY_ERRMSG="SWIG version is not suitable"
+                AC_MSG_WARN([Subversion Python bindings for Python 3 require 
SWIG 3.0.10 or newer])
+              fi
+              if test "$SWIG_VERSION" -lt "400000"; then
+                SWIG_PY_OPTS="-python -py3 -nofastunpack -modern"
+              else
+                SWIG_PY_OPTS="-python -py3 -nofastunpack"
+              fi
+            else
+              if test "$SWIG_VERSION" -lt "400000"; then
+                SWIG_PY_OPTS="-python -classic"
+                dnl SWIG Python bindings successfully configured, clear the 
error message dnl
+                SWIG_PY_ERRMSG=""
+              else
+                SWIG_PY_OPTS="-python -nofastunpack"
+                SWIG_PY_ERRMSG="SWIG version is not suitable"
+                AC_MSG_WARN([Subversion Python bindings for Python 2 require 
1.3.24 <= SWIG < 4.0.0])
+              fi
+            fi
+          fi
+        fi
       fi
+    fi
 
-      AC_CACHE_CHECK([for compiling Python extensions], 
[ac_cv_python_compile],[
-        ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--compile`"
-      ])
-      SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
-
-      AC_CACHE_CHECK([for linking Python extensions], [ac_cv_python_link],[
-        ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py --link`"
-      ])
-      SWIG_PY_LINK="$ac_cv_python_link"
-
-      AC_CACHE_CHECK([for linking Python libraries], [ac_cv_python_libs],[
-        ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`"
-      ])
-      SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`"
+  fi
 
-      dnl Sun Forte adds an extra space before substituting APR_INT64_T_FMT
-      dnl gcc-2.95 adds an extra space after substituting APR_INT64_T_FMT
-      dnl thus the egrep patterns have a + in them.
-      SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS"
-      CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
-      AC_CACHE_CHECK([for apr_int64_t Python/C API format string],
-                     [svn_cv_pycfmt_apr_int64_t], [
-        if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
-          AC_EGREP_CPP([MaTcHtHiS +\"lld\" +EnDeNd],
-                       [#include <apr.h>
-                        MaTcHtHiS APR_INT64_T_FMT EnDeNd],
-                       [svn_cv_pycfmt_apr_int64_t="L"])
-        fi
-        if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
-          AC_EGREP_CPP([MaTcHtHiS +\"ld\" +EnDeNd],r
-                       [#include <apr.h>
-                        MaTcHtHiS APR_INT64_T_FMT EnDeNd],
-                       [svn_cv_pycfmt_apr_int64_t="l"])
-        fi
-        if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
-          AC_EGREP_CPP([MaTcHtHiS +\"d\" +EnDeNd],
-                       [#include <apr.h>
-                        MaTcHtHiS APR_INT64_T_FMT EnDeNd],
-                       [svn_cv_pycfmt_apr_int64_t="i"])
-        fi
-      ])
-      CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS"
-      if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
-        AC_MSG_ERROR([failed to recognize APR_INT64_T_FMT on this platform])
-      fi
-      AC_DEFINE_UNQUOTED([SVN_APR_INT64_T_PYCFMT],
-                         ["$svn_cv_pycfmt_apr_int64_t"],
-                         [Define to the Python/C API format character suitable]
-                         [ for apr_int64_t])
+  SWIG_PL_ERRMSG="check config.log for details"
+  if test "$PERL" != "none"; then
+    AC_MSG_CHECKING([perl version])
+    dnl Note that the q() bit is there to avoid unbalanced brackets
+    dnl which m4 really doesn't like.
+    PERL_VERSION="`$PERL -e 'q([[); print $]] * 1000000,$/;'`"
+    AC_MSG_RESULT([$PERL_VERSION])
+    if test "$PERL_VERSION" -ge "5008000"; then
+      SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$PERL -MExtUtils::Embed -e ccopts`"
+      SWIG_PL_LINK="`$PERL -MExtUtils::Embed -e ldopts`"
+      SWIG_PL_LINK="`SVN_REMOVE_STANDARD_LIB_DIRS($SWIG_PL_LINK)`"
+
+      dnl SWIG Perl bindings successfully configured, clear the error message
+      SWIG_PL_ERRMSG=""
+    else
+      AC_MSG_WARN([perl bindings require perl 5.8.0 or newer.])
     fi
+  fi
 
-    if test "$PERL" != "none"; then
-      AC_MSG_CHECKING([perl version])
-      dnl Note that the q() bit is there to avoid unbalanced brackets
-      dnl which m4 really doesn't like.
-      PERL_VERSION="`$PERL -e 'q([[); print $]] * 1000000,$/;'`"
-      AC_MSG_RESULT([$PERL_VERSION])
-      if test "$PERL_VERSION" -ge "5008000"; then
-        SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$PERL -MExtUtils::Embed -e 
ccopts`"
-        SWIG_PL_LINK="`$PERL -MExtUtils::Embed -e ldopts`"
-      else
-        AC_MSG_WARN([perl bindings require perl 5.8.0 or newer.])
-      fi
+  SWIG_RB_COMPILE="none"
+  SWIG_RB_LINK="none"
+  SWIG_RB_ERRMSG="check config.log for details"
+  if test "$RUBY" != "none"; then
+    if test x"$SWIG_VERSION" = x"3""00""008"; then
+      # Use a local variable to escape the '#' sign.
+      
ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+      AC_MSG_WARN([Ruby bindings are known not to support swig 3.0.8; see 
$ruby_swig_issue_602])
     fi
+    rbconfig="$RUBY -rrbconfig -e "
 
-    SWIG_RB_COMPILE="none"
-    SWIG_RB_LINK="none"
-    if test "$RUBY" != "none"; then
-      rbconfig="$RUBY -rrbconfig -e "
-
-      for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
-                      rubyhdrdir rubyarchhdrdir sitedir sitelibdir sitearchdir 
libdir
-      do
-        rbconfig_tmp=`$rbconfig "print RbConfig::CONFIG@<:@'$var_name'@:>@"`
-        eval "rbconfig_$var_name=\"$rbconfig_tmp\""
-      done
-
-      AC_MSG_NOTICE([Configuring Ruby SWIG binding])
-
-      AC_CACHE_CHECK([for Ruby include path], [svn_cv_ruby_includes],[
-      if test -d "$rbconfig_rubyhdrdir"; then
-        dnl Ruby >=1.9
-        svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir 
-I$rbconfig_rubyhdrdir/ruby -I$rbconfig_rubyhdrdir/ruby/backward"
-        if test -d "$rbconfig_rubyarchhdrdir"; then
-          dnl Ruby >=2.0
-          svn_cv_ruby_includes="$svn_cv_ruby_includes 
-I$rbconfig_rubyarchhdrdir"
-        else
-          svn_cv_ruby_includes="$svn_cv_ruby_includes 
-I$rbconfig_rubyhdrdir/$rbconfig_arch"
-        fi
+    for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
+                    rubyhdrdir rubyarchhdrdir sitedir sitelibdir sitearchdir 
libdir
+    do
+      rbconfig_tmp=`$rbconfig "print RbConfig::CONFIG@<:@'$var_name'@:>@"`
+      eval "rbconfig_$var_name=\"$rbconfig_tmp\""
+    done
+
+    AC_MSG_NOTICE([Configuring Ruby SWIG binding])
+
+    AC_CACHE_CHECK([for Ruby include path], [svn_cv_ruby_includes],[
+    if test -d "$rbconfig_rubyhdrdir"; then
+      dnl Ruby >=1.9
+      svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir"
+      if test -d "$rbconfig_rubyarchhdrdir"; then
+        dnl Ruby >=2.0
+        svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyarchhdrdir"
       else
-        dnl Ruby 1.8
-        svn_cv_ruby_includes="-I. -I$rbconfig_archdir"
+        svn_cv_ruby_includes="$svn_cv_ruby_includes 
-I$rbconfig_rubyhdrdir/$rbconfig_arch"
       fi
-      ])
-      SWIG_RB_INCLUDES="\$(SWIG_INCLUDES) $svn_cv_ruby_includes"
-
-      AC_CACHE_CHECK([how to compile Ruby extensions], [svn_cv_ruby_compile],[
-        svn_cv_ruby_compile="$rbconfig_CC $CFLAGS"
-      ])
-      SWIG_RB_COMPILE="$svn_cv_ruby_compile"
-      SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-ansi])
-      SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c89])
-      SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c90])
-      dnl FIXME: Check that the compiler for Ruby actually supports this flag
-      SWIG_RB_COMPILE="$SWIG_RB_COMPILE -Wno-int-to-pointer-cast"
-
-      AC_CACHE_CHECK([how to link Ruby extensions], [svn_cv_ruby_link],[
-        svn_cv_ruby_link="`$RUBY -e 'ARGV.shift; print ARGV.join(%q( ))' \
-                             $rbconfig_LDSHARED`"
-        svn_cv_ruby_link="$rbconfig_CC $svn_cv_ruby_link"
-        svn_cv_ruby_link="$svn_cv_ruby_link -shrext .$rbconfig_DLEXT"
-      ])
-      SWIG_RB_LINK="$svn_cv_ruby_link"
-
-      AC_CACHE_CHECK([how to link Ruby libraries], [ac_cv_ruby_libs], [
-        ac_cv_ruby_libs="$rbconfig_LIBRUBYARG $rbconfig_LIBS"
-      ])
-      SWIG_RB_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_ruby_libs)`"
+    else
+      dnl Ruby 1.8
+      svn_cv_ruby_includes="-I. -I$rbconfig_archdir"
+    fi
+    ])
+    SWIG_RB_INCLUDES="\$(SWIG_INCLUDES) $svn_cv_ruby_includes"
 
-      AC_MSG_CHECKING([for rb_errinfo])
-      old_CFLAGS="$CFLAGS"
-      old_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $svn_cv_ruby_includes"
-      SVN_STRIP_FLAG([CFLAGS], [-ansi])
-      SVN_STRIP_FLAG([CFLAGS], [-std=c89])
-      SVN_STRIP_FLAG([CFLAGS], [-std=c90])
-      LIBS="$SWIG_RB_LIBS"
-      AC_LINK_IFELSE([AC_LANG_SOURCE([[
+    AC_CACHE_CHECK([how to compile Ruby extensions], [svn_cv_ruby_compile],[
+      svn_cv_ruby_compile="$rbconfig_CC $CFLAGS"
+    ])
+    SWIG_RB_COMPILE="$svn_cv_ruby_compile"
+    SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-ansi])
+    SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c89])
+    SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c90])
+    dnl FIXME: Check that the compiler for Ruby actually supports this flag
+    SWIG_RB_COMPILE="$SWIG_RB_COMPILE -Wno-int-to-pointer-cast"
+
+    AC_CACHE_CHECK([how to link Ruby extensions], [svn_cv_ruby_link],[
+      svn_cv_ruby_link="`$RUBY -e 'ARGV.shift; print ARGV.join(%q( ))' \
+                           $rbconfig_LDSHARED`"
+      svn_cv_ruby_link="$rbconfig_CC $svn_cv_ruby_link"
+      svn_cv_ruby_link="$svn_cv_ruby_link -shrext .$rbconfig_DLEXT"
+    ])
+    SWIG_RB_LINK="$svn_cv_ruby_link"
+
+    AC_CACHE_CHECK([how to link Ruby libraries], [ac_cv_ruby_libs], [
+      ac_cv_ruby_libs="$rbconfig_LIBRUBYARG $rbconfig_LIBS"
+    ])
+    SWIG_RB_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_ruby_libs)`"
+
+    AC_MSG_CHECKING([for rb_errinfo])
+    old_CFLAGS="$CFLAGS"
+    old_LIBS="$LIBS"
+    CFLAGS="$CFLAGS $svn_cv_ruby_includes"
+    SVN_STRIP_FLAG([CFLAGS], [-ansi])
+    SVN_STRIP_FLAG([CFLAGS], [-std=c89])
+    SVN_STRIP_FLAG([CFLAGS], [-std=c90])
+    LIBS="$SWIG_RB_LIBS"
+    AC_LINK_IFELSE([AC_LANG_SOURCE([[
 #include <ruby.h>
 int main()
 {rb_errinfo();}]])], have_rb_errinfo="yes", have_rb_errinfo="no")
-      if test "$have_rb_errinfo" = "yes"; then
-        AC_MSG_RESULT([yes])
-        AC_DEFINE([HAVE_RB_ERRINFO], [1],
-                  [Define to 1 if you have the `rb_errinfo' function.])
-      else
-        AC_MSG_RESULT([no])
-      fi
-      CFLAGS="$old_CFLAGS"
-      LIBS="$old_LIBS"
-
-      AC_CACHE_VAL([svn_cv_ruby_sitedir],[
-        svn_cv_ruby_sitedir="$rbconfig_sitedir"
-      ])
-      AC_ARG_WITH([ruby-sitedir],
-      AS_HELP_STRING([--with-ruby-sitedir=SITEDIR],
-                                 [install Ruby bindings in SITEDIR
-                                  (default is same as ruby's one)]),
-      [svn_ruby_installdir="$withval"],
-      [svn_ruby_installdir="$svn_cv_ruby_sitedir"])
-
-      AC_MSG_CHECKING([where to install Ruby scripts])
-      AC_CACHE_VAL([svn_cv_ruby_sitedir_libsuffix],[
-        svn_cv_ruby_sitedir_libsuffix="`echo "$rbconfig_sitelibdir" | \
-                                          $SED -e "s,^$rbconfig_sitedir,,"`"
-      ])
-      
SWIG_RB_SITE_LIB_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_libsuffix}"
-      AC_MSG_RESULT([$SWIG_RB_SITE_LIB_DIR])
+    if test "$have_rb_errinfo" = "yes"; then
+      AC_MSG_RESULT([yes])
+      AC_DEFINE([HAVE_RB_ERRINFO], [1],
+                [Define to 1 if you have the `rb_errinfo' function.])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    CFLAGS="$old_CFLAGS"
+    LIBS="$old_LIBS"
 
-      AC_MSG_CHECKING([where to install Ruby extensions])
-      AC_CACHE_VAL([svn_cv_ruby_sitedir_archsuffix],[
-        svn_cv_ruby_sitedir_archsuffix="`echo "$rbconfig_sitearchdir" | \
-                                          $SED -e "s,^$rbconfig_sitedir,,"`"
-      ])
-      
SWIG_RB_SITE_ARCH_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_archsuffix}"
-      AC_MSG_RESULT([$SWIG_RB_SITE_ARCH_DIR])
+    AC_CACHE_VAL([svn_cv_ruby_sitedir],[
+      svn_cv_ruby_sitedir="$rbconfig_sitedir"
+    ])
+    AC_ARG_WITH([ruby-sitedir],
+    AS_HELP_STRING([--with-ruby-sitedir=SITEDIR],
+                               [install Ruby bindings in SITEDIR
+                                (default is same as ruby's one)]),
+    [svn_ruby_installdir="$withval"],
+    [svn_ruby_installdir="$svn_cv_ruby_sitedir"])
+
+    AC_MSG_CHECKING([where to install Ruby scripts])
+    AC_CACHE_VAL([svn_cv_ruby_sitedir_libsuffix],[
+      svn_cv_ruby_sitedir_libsuffix="`echo "$rbconfig_sitelibdir" | \
+                                        $SED -e "s,^$rbconfig_sitedir,,"`"
+    ])
+    
SWIG_RB_SITE_LIB_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_libsuffix}"
+    AC_MSG_RESULT([$SWIG_RB_SITE_LIB_DIR])
+
+    AC_MSG_CHECKING([where to install Ruby extensions])
+    AC_CACHE_VAL([svn_cv_ruby_sitedir_archsuffix],[
+      svn_cv_ruby_sitedir_archsuffix="`echo "$rbconfig_sitearchdir" | \
+                                        $SED -e "s,^$rbconfig_sitedir,,"`"
+    ])
+    
SWIG_RB_SITE_ARCH_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_archsuffix}"
+    AC_MSG_RESULT([$SWIG_RB_SITE_ARCH_DIR])
+
+    AC_MSG_CHECKING([how to use output level for Ruby bindings tests])
+    AC_CACHE_VAL([svn_cv_ruby_test_verbose],[
+      svn_cv_ruby_test_verbose="normal"
+    ])
+    AC_ARG_WITH([ruby-test-verbose],
+    AS_HELP_STRING([--with-ruby-test-verbose=LEVEL],
+                               [how to use output level for Ruby bindings tests
+                                (default is normal)]),
+    [svn_ruby_test_verbose="$withval"],
+                  [svn_ruby_test_verbose="$svn_cv_ruby_test_verbose"])
+      SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose"
+      AC_MSG_RESULT([$SWIG_RB_TEST_VERBOSE])
 
-      AC_MSG_CHECKING([how to use output level for Ruby bindings tests])
-      AC_CACHE_VAL([svn_cv_ruby_test_verbose],[
-        svn_cv_ruby_test_verbose="normal"
-      ])
-      AC_ARG_WITH([ruby-test-verbose],
-      AS_HELP_STRING([--with-ruby-test-verbose=LEVEL],
-                                 [how to use output level for Ruby bindings 
tests
-                                  (default is normal)]),
-      [svn_ruby_test_verbose="$withval"],
-                    [svn_ruby_test_verbose="$svn_cv_ruby_test_verbose"])
-        SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose"
-        AC_MSG_RESULT([$SWIG_RB_TEST_VERBOSE])
-    fi
+    dnl SWIG Ruby bindings successfully configured, clear the error message
+    SWIG_RB_ERRMSG=""
   fi
   AC_SUBST(SWIG)
   AC_SUBST(SWIG_PY_INCLUDES)
   AC_SUBST(SWIG_PY_COMPILE)
   AC_SUBST(SWIG_PY_LINK)
   AC_SUBST(SWIG_PY_LIBS)
+  AC_SUBST(SWIG_PY_OPTS)
+  AC_SUBST(SWIG_PY_ERRMSG)
   AC_SUBST(SWIG_PL_INCLUDES)
   AC_SUBST(SWIG_PL_LINK)
+  AC_SUBST(SWIG_PL_ERRMSG)
   AC_SUBST(SWIG_RB_LINK)
   AC_SUBST(SWIG_RB_LIBS)
   AC_SUBST(SWIG_RB_INCLUDES)
@@ -308,4 +354,5 @@ int main()
   AC_SUBST(SWIG_RB_SITE_LIB_DIR)
   AC_SUBST(SWIG_RB_SITE_ARCH_DIR)
   AC_SUBST(SWIG_RB_TEST_VERBOSE)
+  AC_SUBST(SWIG_RB_ERRMSG)
 ])

Modified: subversion/branches/addremove/build/ac-macros/utf8proc.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/ac-macros/utf8proc.m4?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/ac-macros/utf8proc.m4 (original)
+++ subversion/branches/addremove/build/ac-macros/utf8proc.m4 Sat May 23 
14:16:56 2020
@@ -28,9 +28,21 @@ AC_DEFUN(SVN_UTF8PROC,
   AC_ARG_WITH([utf8proc],
     [AS_HELP_STRING([--with-utf8proc=PREFIX|internal],
                     [look for utf8proc in PREFIX or use the internal code])],
-    [utf8proc_prefix="$withval"],
+    [
+      if test "$withval" = internal; then
+        utf8proc_prefix=internal
+      elif test "$withval" = yes; then
+        utf8proc_prefix=std
+      else
+        utf8proc_prefix="$withval"
+      fi
+    ],
     [utf8proc_prefix=std])
 
+  if test "$utf8proc_prefix" = "no"; then
+    dnl The user has tried to disable UTF8PROC
+    AC_MSG_ERROR([Subversion requires UTF8PROC])
+  fi
   if test "$utf8proc_prefix" = "internal"; then
     AC_MSG_NOTICE([using internal utf8proc])
     AC_DEFINE([SVN_INTERNAL_UTF8PROC], [1],
@@ -42,7 +54,7 @@ AC_DEFUN(SVN_UTF8PROC,
       SVN_UTF8PROC_PREFIX
     fi
     if test "$utf8proc_found" != "yes"; then
-      AC_MSG_ERROR([Subversion requires UTF8PROC])
+      AC_MSG_ERROR([Subversion requires UTF8PROC; install it or re-run 
configure with "--with-utf8proc=internal"])
     fi
   fi
   AC_SUBST(SVN_UTF8PROC_INCLUDES)
@@ -53,7 +65,6 @@ AC_DEFUN(SVN_UTF8PROC_STD,
 [
   AC_MSG_NOTICE([utf8proc configuration without pkg-config])
   AC_CHECK_LIB(utf8proc, utf8proc_version, [
-    AC_MSG_RESULT([yes])
      utf8proc_found=yes
      SVN_UTF8PROC_LIBS="-lutf8proc"
   ])
@@ -67,7 +78,6 @@ AC_DEFUN(SVN_UTF8PROC_PREFIX,
   save_ldflags="$LDFLAGS"
   LDFLAGS="$LDFLAGS -L$utf8proc_prefix/lib"
   AC_CHECK_LIB(utf8proc, utf8proc_version, [
-    AC_MSG_RESULT([yes])
     utf8proc_found=yes
     SVN_UTF8PROC_INCLUDES="-I$utf8proc_prefix/include"
     SVN_UTF8PROC_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS(-L$utf8proc_prefix/lib)` 
-lutf8proc"

Modified: subversion/branches/addremove/build/buildcheck.sh
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/buildcheck.sh?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/buildcheck.sh (original)
+++ subversion/branches/addremove/build/buildcheck.sh Sat May 23 14:16:56 2020
@@ -76,26 +76,12 @@ fi
 echo "buildcheck: autoheader version $ah_version (ok)"
 
 #--------------------------------------------------------------------------
-# libtool 1.4 or newer
+# libtool 2.0 or newer
 #
-LIBTOOL_WANTED_MAJOR=1
-LIBTOOL_WANTED_MINOR=4
+LIBTOOL_WANTED_MAJOR=2
+LIBTOOL_WANTED_MINOR=0
 LIBTOOL_WANTED_PATCH=
-LIBTOOL_WANTED_VERSION=1.4
-
-# The minimum version for source releases is 1.4.3,
-# because it's required by (at least) Solaris.
-if test "$VERSION_CHECK" = "--release"; then
-  LIBTOOL_WANTED_PATCH=3
-  LIBTOOL_WANTED_VERSION=1.4.3
-else
-  case `uname -sr` in
-    SunOS\ 5.*)
-      LIBTOOL_WANTED_PATCH=3
-      LIBTOOL_WANTED_VERSION=1.4.3
-      ;;
-  esac
-fi
+LIBTOOL_WANTED_VERSION=2.0
 
 # Much like APR except we do not prefer libtool 1 over libtool 2.
 libtoolize=${LIBTOOLIZE:-`./build/PrintPath glibtoolize libtoolize 
glibtoolize1 libtoolize15 libtoolize14`}

Modified: subversion/branches/addremove/build/generator/extractor.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/generator/extractor.py?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/generator/extractor.py (original)
+++ subversion/branches/addremove/build/generator/extractor.py Sat May 23 
14:16:56 2020
@@ -69,4 +69,6 @@ if __name__ == '__main__':
     if os.path.basename(fname) == 'svn_ctype.h':
       print('svn_ctype_table = svn_ctype_table_internal CONSTANT')
     elif os.path.basename(fname) == 'svn_wc_private.h':
+      # svn_wc__internal_walk_children() is now internal to libsvn_wc
+      # but entries-dump.c still calls it
       print('svn_wc__internal_walk_children')

Modified: subversion/branches/addremove/build/generator/gen_base.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/generator/gen_base.py?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/generator/gen_base.py (original)
+++ subversion/branches/addremove/build/generator/gen_base.py Sat May 23 
14:16:56 2020
@@ -331,7 +331,8 @@ class GeneratorBase:
                                '\n'.join(lines))
 
   def errno_filter(self, codes):
-    return codes
+    # list() to force the generator under python3
+    return list(codes)
 
   class FileSectionOptionEnum(object):
     # These are accessed via getattr() later on
@@ -662,7 +663,7 @@ class TargetExe(TargetLinked):
     TargetLinked.add_dependencies(self)
 
     # collect test programs
-    if 'svnauthz' in self.name: # special case
+    if 'svnauthz' in self.name or 'svnmover' in self.name: # special case
       self.gen_obj.test_deps.append(self.filename)
       self.gen_obj.test_helpers.append(self.filename)
     elif self.install == 'test':
@@ -899,115 +900,67 @@ class TargetJava(TargetLinked):
   def __init__(self, name, options, gen_obj):
     TargetLinked.__init__(self, name, options, gen_obj)
     self.link_cmd = options.get('link-cmd')
-    self.packages = options.get('package-roots', '').split()
+    self.package = options.get('package')
     self.jar = options.get('jar')
     self.deps = [ ]
-
-class TargetJavaHeaders(TargetJava):
-  def __init__(self, name, options, gen_obj):
-    TargetJava.__init__(self, name, options, gen_obj)
     self.objext = '.class'
-    self.javah_objext = '.h'
     self.headers = options.get('headers')
     self.classes = options.get('classes')
-    self.package = options.get('package')
-    self.output_dir = self.headers
+    self.native = options.get('native', '')
+    self.output_dir = self.classes
+    self.headers_dir = self.headers
 
   def add_dependencies(self):
     sources = _collect_paths(self.sources, self.path)
+    native = _collect_paths(self.native, self.path)
+
+    class_pkg_list = self.package.split('.')
+    sourcepath = build_path_split(self.path)[:-len(class_pkg_list)]
+    sourcepath = build_path_join(*sourcepath)
 
     for src, reldir in sources:
       if src[-5:] != '.java':
         raise GenError('ERROR: unknown file extension on ' + src)
 
+      sfile = SourceFile(src, reldir)
+      sfile.sourcepath = sourcepath
+
       class_name = build_path_basename(src[:-5])
 
-      class_header = build_path_join(self.headers, class_name + '.h')
-      class_header_win = build_path_join(self.headers,
-                                         self.package.replace(".", "_")
-                                         + "_" + class_name + '.h')
-      class_pkg_list = self.package.split('.')
       class_pkg = build_path_join(*class_pkg_list)
       class_file = ObjectFile(build_path_join(self.classes, class_pkg,
                                               class_name + self.objext),
-                              self.when)
+                              self.compile_cmd, self.when)
       class_file.source_generated = 1
       class_file.class_name = class_name
-      hfile = HeaderFile(class_header, self.package + '.' + class_name,
-                         self.compile_cmd)
-      hfile.filename_win = class_header_win
-      hfile.source_generated = 1
-      self.gen_obj.graph.add(DT_OBJECT, hfile, class_file)
-      self.deps.append(hfile)
-
-      # target (a linked item) depends upon object
-      self.gen_obj.graph.add(DT_LINK, self.name, hfile)
-
-
-    # collect all the paths where stuff might get built
-    ### we should collect this from the dependency nodes rather than
-    ### the sources. "what dir are you going to put yourself into?"
-    self.gen_obj.target_dirs.append(self.path)
-    self.gen_obj.target_dirs.append(self.classes)
-    self.gen_obj.target_dirs.append(self.headers)
-    for pattern in self.sources.split():
-      dirname = build_path_dirname(pattern)
-      if dirname:
-        self.gen_obj.target_dirs.append(build_path_join(self.path, dirname))
 
-    self.gen_obj.graph.add(DT_INSTALL, self.name, self)
+      self.gen_obj.graph.add(DT_OBJECT, class_file, sfile)
+      self.gen_obj.graph.add(DT_LINK, self.name, class_file)
+      self.deps.append(class_file)
+
+      if (src, reldir) in native:
+        class_header = build_path_join(self.headers, class_name + '.h')
+        class_header_win = build_path_join(self.headers,
+                                           self.package.replace(".", "_")
+                                           + "_" + class_name + '.h')
+        hfile = HeaderFile(class_header, self.package + '.' + class_name,
+                           self.compile_cmd)
+        hfile.filename_win = class_header_win
+        hfile.source_generated = 1
+        self.gen_obj.graph.add(DT_OBJECT, hfile, sfile)
+        self.deps.append(hfile)
 
-class TargetJavaClasses(TargetJava):
-  def __init__(self, name, options, gen_obj):
-    TargetJava.__init__(self, name, options, gen_obj)
-    self.objext = '.class'
-    self.lang = 'java'
-    self.classes = options.get('classes')
-    self.output_dir = self.classes
+        # target (a linked item) depends upon object
+        self.gen_obj.graph.add(DT_LINK, self.name, hfile)
 
-  def add_dependencies(self):
-    sources = []
-    for p in self.path.split():
-      sources.extend(_collect_paths(self.sources, p))
-
-    for src, reldir in sources:
-      if src[-5:] == '.java':
-        objname = src[:-5] + self.objext
-
-        # As .class files are likely not generated into the same
-        # directory as the source files, the object path may need
-        # adjustment.  To this effect, take "target_ob.classes" into
-        # account.
-        dirs = build_path_split(objname)
-        sourcedirs = dirs[:-1]  # Last element is the .class file name.
-        while sourcedirs:
-          if sourcedirs.pop() in self.packages:
-            sourcepath = build_path_join(*sourcedirs)
-            objname = build_path_join(self.classes, *dirs[len(sourcedirs):])
-            break
-        else:
-          raise GenError('Unable to find Java package root in path "%s"' % 
objname)
-      else:
-        raise GenError('ERROR: unknown file extension on "' + src + '"')
-
-      ofile = ObjectFile(objname, self.compile_cmd, self.when)
-      sfile = SourceFile(src, reldir)
-      sfile.sourcepath = sourcepath
-
-      # object depends upon source
-      self.gen_obj.graph.add(DT_OBJECT, ofile, sfile)
-
-      # target (a linked item) depends upon object
-      self.gen_obj.graph.add(DT_LINK, self.name, ofile)
-
-      # Add the class file to the dependency tree for this target
-      self.deps.append(ofile)
 
     # collect all the paths where stuff might get built
     ### we should collect this from the dependency nodes rather than
     ### the sources. "what dir are you going to put yourself into?"
-    self.gen_obj.target_dirs.extend(self.path.split())
+    self.gen_obj.target_dirs.append(self.path)
     self.gen_obj.target_dirs.append(self.classes)
+    if self.headers:
+      self.gen_obj.target_dirs.append(self.headers)
     for pattern in self.sources.split():
       dirname = build_path_dirname(pattern)
       if dirname:
@@ -1056,8 +1009,7 @@ _build_types = {
   'apache-mod': TargetApacheMod,
   'shared-only-lib': TargetSharedOnlyLib,
   'shared-only-cxx-lib': TargetSharedOnlyCxxLib,
-  'javah' : TargetJavaHeaders,
-  'java' : TargetJavaClasses,
+  'java' : TargetJava,
   'i18n' : TargetI18N,
   'sql-header' : TargetSQLHeader,
   }
@@ -1321,7 +1273,8 @@ class IncludeDependencyInfo:
     Return a dictionary with included full file names as keys and None as
     values."""
     hdrs = { }
-    for line in fileinput.input(fname):
+
+    for line in fileinput.FileInput(fname, 
openhook=fileinput.hook_encoded("utf-8")):
       match = self._re_include.match(line)
       if not match:
         continue

Modified: subversion/branches/addremove/build/generator/gen_make.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/generator/gen_make.py?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/generator/gen_make.py (original)
+++ subversion/branches/addremove/build/generator/gen_make.py Sat May 23 
14:16:56 2020
@@ -208,7 +208,9 @@ class Generator(gen_base.GeneratorBase):
       swig_lang_deps[objname.lang].append(str(objname))
 
     for lang in self.swig.langs:
-      data.swig_langs.append(_eztdata(short=self.swig.short[lang],
+      data.swig_langs.append(_eztdata(name=lang,
+                                      short=self.swig.short[lang],
+                                      
short_upper=self.swig.short[lang].upper(),
                                       deps=swig_lang_deps[lang]))
 
     ########################################
@@ -309,6 +311,8 @@ class Generator(gen_base.GeneratorBase):
         ezt_target.link_cmd = target_ob.link_cmd
       if hasattr(target_ob, 'output_dir'):
         ezt_target.output_dir = target_ob.output_dir
+      if hasattr(target_ob, 'headers_dir'):
+        ezt_target.headers_dir = target_ob.headers_dir
 
       # Add additional install dependencies if necessary
       if target_ob.add_install_deps:
@@ -443,7 +447,7 @@ class Generator(gen_base.GeneratorBase):
         ### we should turn AREA into an object, then test it instead of this
         if area[:5] == 'swig-' and area[-4:] != '-lib' \
            or area[:7] == 'javahl-' \
-           or area[:6] == 'cxxhl-' \
+           or area[:6] == 'svnxx-' \
            or area == 'tools':
           ezt_area.extra_install = 'yes'
 
@@ -507,7 +511,10 @@ class Generator(gen_base.GeneratorBase):
     standalone.write('top_srcdir = .\n')
     standalone.write('top_builddir = .\n')
     standalone.write('SWIG = swig\n')
-    standalone.write('PYTHON = python\n')
+    swig_py_opts = os.environ.get('SWIG_PY_OPTS',
+                                  '-python -py3 -nofastunpack -modern')
+    standalone.write('SWIG_PY_OPTS = %s\n' % (swig_py_opts))
+    standalone.write('PYTHON = ' + sys.executable + '\n')
     standalone.write('\n')
     standalone.write(open("build-outputs.mk","r").read())
     standalone.close()
@@ -631,9 +638,10 @@ DIR=`pwd`
         lib_deps=[],
         lib_required=[],
         lib_required_private=[],
+        version=self.version,
         )
-      # libsvn_foo -> -lsvn_foo
-      data.lib_deps.append('-l%s' % lib_name.replace('lib', '', 1))
+      # libsvn_foo -> -lsvn_foo-1
+      data.lib_deps.append('-l%s-%s' % (lib_name.replace('lib', '', 1), 
data.version))
       for lib_dep in lib_deps.split():
         if lib_dep == 'apriconv':
           # apriconv is part of apr-util, skip it

Modified: subversion/branches/addremove/build/generator/gen_vcnet_vcproj.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/generator/gen_vcnet_vcproj.py?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/generator/gen_vcnet_vcproj.py (original)
+++ subversion/branches/addremove/build/generator/gen_vcnet_vcproj.py Sat May 
23 14:16:56 2020
@@ -120,10 +120,13 @@ class Generator(gen_win.WinGeneratorBase
       'instrument_purify_quantify' : self.instrument_purify_quantify,
       'version' : self.vcproj_version,
       'toolset_version' : 'v' + self.vcproj_version.replace('.',''),
+      'user_macros': self.user_macros,
       }
 
     if self.vcproj_extension == '.vcproj':
       self.write_with_template(fname, 'templates/vcnet_vcproj.ezt', data)
+      self.write_with_template(os.path.splitext(fname)[0] + '.vsprops',
+                               'templates/vcnet_vsprops.ezt', data)
     else:
       self.write_with_template(fname, 'templates/vcnet_vcxproj.ezt', data)
       self.write_with_template(fname + '.filters', 
'templates/vcnet_vcxproj_filters.ezt', data)
@@ -283,3 +286,11 @@ class Generator(gen_win.WinGeneratorBase
       }
 
     self.write_with_template('subversion_vcnet.sln', 
'templates/vcnet_sln.ezt', data)
+
+  def quote_define(self, value):
+    "Properly quote special characters in a define (if needed)"
+
+    if self.vcproj_extension == '.vcproj':
+      return value.replace('"', '""')
+    else:
+      return value

Modified: subversion/branches/addremove/build/generator/gen_win.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/addremove/build/generator/gen_win.py?rev=1878061&r1=1878060&r2=1878061&view=diff
==============================================================================
--- subversion/branches/addremove/build/generator/gen_win.py (original)
+++ subversion/branches/addremove/build/generator/gen_win.py Sat May 23 
14:16:56 2020
@@ -158,6 +158,13 @@ class WinGeneratorBase(gen_win_dependenc
     ### implement this from scratch using the algorithms described in
     ### http://www.webdav.org/specs/draft-leach-uuids-guids-01.txt
 
+    # Ensure data is in byte representation.  If it doesn't have an encode
+    # attribute, assume it is already in the correct form.
+    try:
+      data = data.encode('utf8')
+    except AttributeError:
+      pass
+
     myhash = hashlib_md5(data).hexdigest()
 
     guid = ("{%s-%s-%s-%s-%s}" % (myhash[0:8], myhash[8:12],
@@ -217,7 +224,6 @@ class WinGeneratorBase(gen_win_dependenc
     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)
                                              or x.name == '__JAVAHL__'
                                              or x.name == '__JAVAHL_TESTS__'
                                              or x.name == 'libsvnjavahl')]
@@ -332,11 +338,9 @@ class WinGeneratorBase(gen_win_dependenc
     sources = [ ]
 
     javac_exe = "javac"
-    javah_exe = "javah"
     jar_exe = "jar"
     if self.jdk_path:
       javac_exe = os.path.join(self.jdk_path, "bin", javac_exe)
-      javah_exe = os.path.join(self.jdk_path, "bin", javah_exe)
       jar_exe = os.path.join(self.jdk_path, "bin", jar_exe)
 
     if not isinstance(target, gen_base.TargetProject):
@@ -345,25 +349,13 @@ class WinGeneratorBase(gen_win_dependenc
         ctarget = None
         cdesc = None
         cignore = None
-        if isinstance(target, gen_base.TargetJavaHeaders):
-          classes = self.path(target.classes)
-          if self.junit_path is not None:
-            classes = "%s;%s" % (classes, self.junit_path)
-
-          headers = self.path(target.headers)
-          classname = target.package + "." + source.class_name
-
-          cbuild = "%s -verbose -force -classpath %s -d %s %s" \
-                   % (self.quote(javah_exe), self.quote(classes),
-                      self.quote(headers), classname)
-
-          ctarget = self.path(object.filename_win)
-          cdesc = "Generating %s" % (object.filename_win)
-
-        elif isinstance(target, gen_base.TargetJavaClasses):
+        if isinstance(target, gen_base.TargetJava):
           classes = targetdir = self.path(target.classes)
           if self.junit_path is not None:
             classes = "%s;%s" % (classes, self.junit_path)
+          headers = ''
+          if target.headers is not None:
+            headers = '-h %s' % self.quote(self.path(target.headers))
 
           sourcepath = self.path(source.sourcepath)
 
@@ -373,17 +365,21 @@ class WinGeneratorBase(gen_win_dependenc
             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 "
+          cbuild = ("%s -g -Xlint -Xlint:-options %s %s "
+                    " -target 1.8 -source 1.8 -classpath "
                     " %s -d %s "
                     " -sourcepath %s $(InputPath)") \
-                   % tuple(map(self.quote, (javac_exe, classes,
-                                            targetdir, sourcepath)))
+                   % (self.quote(javac_exe), per_project_flags, headers,
+                      self.quote(classes), self.quote(targetdir),
+                      self.quote(sourcepath))
 
 
-          ctarget = self.path(object.filename)
-          cdesc = "Compiling %s" % (source)
+          if isinstance(object, gen_base.HeaderFile):
+            ctarget = self.path(object.filename_win)
+            cdesc = "Generating %s" % (object.filename_win)
+          else:
+            ctarget = self.path(object.filename)
+            cdesc = "Compiling %s" % (source)
 
         rsrc = self.path(str(source))
         if quote_path and '-' in rsrc:
@@ -403,7 +399,7 @@ class WinGeneratorBase(gen_win_dependenc
                                    custom_desc=cdesc, ignored = cignore,
                                    extension=os.path.splitext(rsrc)[1]))
 
-    if isinstance(target, gen_base.TargetJavaClasses) and target.jar:
+    if isinstance(target, gen_base.TargetJava) and target.jar:
       classdir = self.path(target.classes)
       jarfile = msvc_path_join(classdir, target.jar)
       cbuild = "%s cf %s -C %s %s" \
@@ -507,9 +503,7 @@ class WinGeneratorBase(gen_win_dependenc
     return name[0] + '.pdb'
 
   def get_output_dir(self, target):
-    if isinstance(target, gen_base.TargetJavaHeaders):
-      return msvc_path("../" + target.headers)
-    elif isinstance(target, gen_base.TargetJavaClasses):
+    if isinstance(target, gen_base.TargetJava):
       return msvc_path("../" + target.classes)
     else:
       return msvc_path(target.path)
@@ -749,9 +743,14 @@ class WinGeneratorBase(gen_win_dependenc
 
     if target.name.endswith('svn_subr'):
       fakedefines.append("SVN_USE_WIN32_CRASHHANDLER")
+      
fakedefines.append(self.quote_define('SVN_WIN32_CRASHREPORT_EMAIL="us...@subversion.apache.org"'))
 
     return fakedefines
 
+  def quote_define(self, value):
+    "Properly quote special characters in a define (if needed)"
+    return value
+
   def get_win_includes(self, target, cfg='Release'):
     "Return the list of include directories for target"
 
@@ -786,13 +785,17 @@ class WinGeneratorBase(gen_win_dependenc
       else:
         lang_subdir = target.lang
 
+      if target.lang == "python":
+        lib = self._libraries['py3c']
+        fakeincludes.extend(lib.include_dirs)
+
       # 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)
 
-    if 'cxxhl' in target.name:
-      fakeincludes.append("subversion/bindings/cxxhl/include")
+    if 'svnxx' in target.name:
+      fakeincludes.append("subversion/bindings/cxx/include")
 
     return gen_base.unique(map(self.apath, fakeincludes))
 


Reply via email to