Author: futatuki
Date: Fri Dec 18 15:32:35 2020
New Revision: 1884610

URL: http://svn.apache.org/viewvc?rev=1884610&view=rev
Log:
Distinguish configure scripts on release mode and non release mode.

Although makefiles in Subversion's release tarball do not support generating
SWIG language bindings C source files using swig, the configure scripts
shipped with the release tarball had an option to specify how to find
SWIG executable, and checked it.  To avoid this, we introduce "release mode"
to the configure script and hide the option and code to check a SWIG
executable on it.  

* . (svn:ignore):
  Ignore aclocal.m4.
* Makefile.in (local-extraclean):
  Clean up aclocal.m4.
* aclocal.m4.in ():
  Renamed from aclocal.m4
* autogen.sh ():
  Write an macro "SVN_RELEASE_MODE" definition to aclocal.m4 if --release
  is specfied on the command line.
* build/ac-macros/swig.m4
  (): Also mension about Perl and Ruby.
  (SVN_CHECK_SWIG):
   - Hide --with-swig option in release mode.
   - Check SWIG executable only if non release mode and at least one of 
     SWIG bindings is specfied to be built.
  (SVN_FIND_SWIG):
    Move checks for each bindings into new macro SVN_DETERMINE_SWIG_OPTS.
  (SVN_DETERMINE_SWIG_OPTS): New macro split from SVN_FIND_SWIG. 
  - When not in release mode, warn if Perl/Python/Ruby interpreter is set but
   SWIG is not found. Also do not build them with make swig-pl/make swig-py/
   make swig-rb in this case.
  - Check swig version only when it is needed and when not in release mode.
* configure.ac ():
  - Tweak help string for --with-swig-perl, --with-swig-python,
    --with-swig-ruby. 
  - Warn if --with-swig-perl is not specified but variable 'PERL' is set.
  - Warn if --with-swig-ruby is not specified but variable 'RUBY' is set,
    even the value is not 'no' nor 'none'.
* subversion/bindings/swig/INSTALL (Step 2):
  Mention that configure and makefiles in the release tarball don't
  support generating SWIG bindings C source files.

Review by: brane
           (commit message, help string, and the structure of
            SVN_CHECK_SWIG macro)

Added:
    subversion/trunk/aclocal.m4.in
      - copied unchanged from r1884609, subversion/trunk/aclocal.m4
Removed:
    subversion/trunk/aclocal.m4
Modified:
    subversion/trunk/   (props changed)
    subversion/trunk/Makefile.in
    subversion/trunk/autogen.sh
    subversion/trunk/build/ac-macros/swig.m4
    subversion/trunk/configure.ac
    subversion/trunk/subversion/bindings/swig/INSTALL

Propchange: subversion/trunk/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Dec 18 15:32:35 2020
@@ -14,6 +14,7 @@ TAGS
 tags
 neon
 build-outputs.mk
+aclocal.m4
 autogen-standalone.mk
 autom4te.cache
 gen-make.opts

Modified: subversion/trunk/Makefile.in
URL: 
http://svn.apache.org/viewvc/subversion/trunk/Makefile.in?rev=1884610&r1=1884609&r2=1884610&view=diff
==============================================================================
--- subversion/trunk/Makefile.in (original)
+++ subversion/trunk/Makefile.in Fri Dec 18 15:32:35 2020
@@ -478,6 +478,7 @@ local-distclean: local-clean
 local-extraclean: extraclean-bindings local-distclean
        rm -f $(top_srcdir)/build-outputs.mk \
               $(top_srcdir)/subversion/svn_private_config.h.in \
+              $(top_srcdir)/aclocal.m4 \
               $(top_srcdir)/configure \
               $(top_srcdir)/gen-make.opts \
               $(top_srcdir)/build/config.guess \

Modified: subversion/trunk/autogen.sh
URL: 
http://svn.apache.org/viewvc/subversion/trunk/autogen.sh?rev=1884610&r1=1884609&r2=1884610&view=diff
==============================================================================
--- subversion/trunk/autogen.sh (original)
+++ subversion/trunk/autogen.sh Fri Dec 18 15:32:35 2020
@@ -51,6 +51,17 @@ while test $# != 0; do
       ;;
   esac
 done
+
+# Generate aclocal.m4
+cp -f aclocal.m4.in aclocal.m4
+if test -n "$RELEASE_MODE"; then
+  cat <<EOF >>aclocal.m4
+
+# Generated by 'autogen.sh --release'
+AC_DEFUN([SVN_RELEASE_MODE],[1])
+EOF
+fi
+
 # ### The order of parameters is important; buildcheck.sh depends on it and
 # ### we don't want to copy the fancy option parsing loop there. For the
 # ### same reason, all parameters should be quoted, so that buildcheck.sh

Modified: subversion/trunk/build/ac-macros/swig.m4
URL: 
http://svn.apache.org/viewvc/subversion/trunk/build/ac-macros/swig.m4?rev=1884610&r1=1884609&r2=1884610&view=diff
==============================================================================
--- subversion/trunk/build/ac-macros/swig.m4 (original)
+++ subversion/trunk/build/ac-macros/swig.m4 Fri Dec 18 15:32:35 2020
@@ -22,29 +22,39 @@ dnl
 dnl if it is, then check to see if we have the correct version of python.
 dnl
 dnl if we do, then set up the appropriate SWIG_ variables to build the
-dnl python bindings.
+dnl Python, Perl, and Ruby bindings.
 
 AC_DEFUN(SVN_CHECK_SWIG,
 [
-  AC_ARG_WITH(swig,
-              AS_HELP_STRING([--with-swig=PATH],
-                             [Try to use 'PATH/bin/swig' to build the
-                              swig bindings.  If PATH is not specified,
-                              look for a 'swig' binary in your PATH.]),
+  m4_ifndef([SVN_RELEASE_MODE],
   [
-    case "$withval" in
+    AC_ARG_WITH(swig,
+                AS_HELP_STRING([--with-swig=PATH],
+                               [Try to use 'PATH/bin/swig' to build the
+                                swig bindings.  If PATH is not specified,
+                                look for a 'swig' binary in your PATH.]),
+    [
+      case "$withval" in
       yes)
         svn_find_swig_arg=required
       ;;
       *)
         svn_find_swig_arg=$withval
       ;;
-    esac
-  ],
-  [
-    svn_find_swig_arg=check
+      esac
+    ],
+    [
+      if    test "$SWIG_PY_PYTHON" != "none" \
+         || test "$SWIG_PL_PERL"   != "none" \
+         || test "$SWIG_RB_RUBY"   != "none" ; then
+        svn_find_swig_arg=check
+      else
+        svn_find_swig_arg=no
+      fi
+    ])
+    SVN_FIND_SWIG($svn_find_swig_arg)
   ])
-  SVN_FIND_SWIG($svn_find_swig_arg)
+  SVN_DETERMINE_SWIG_OPTS
 ])
 
 AC_DEFUN(SVN_FIND_SWIG,
@@ -93,92 +103,104 @@ AC_DEFUN(SVN_FIND_SWIG,
       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 "$SWIG_PY_PYTHON" != "none"; then
-    AC_MSG_NOTICE([Configuring python swig binding])
 
-    AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[
-      ac_cv_python_includes="`$SWIG_PY_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])
+AC_DEFUN(SVN_DETERMINE_SWIG_OPTS,
+[
+  m4_ifndef([SVN_RELEASE_MODE],
+  [
+    # not in release mode  
+    SWIG_PY_COMPILE="none"
+    SWIG_PY_LINK="none"
+    SWIG_PY_OPTS="none"
+    SWIG_PY_ERRMSG="check config.log for details"
+    if test "$SWIG_PY_PYTHON" = "none"; then
+      SWIG_PY_ERRMSG="You specfied not to build Python bindings or \
+suitable Python interpreter is not found."
     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])
+      if test "$SWIG" = "none"; then
+        AC_MSG_WARN([You specified to build SWIG Python bindings, but SWIG is 
not found.])
+        SWIG_PY_ERRMSG="SWIG is need to build SWIG Python bindings, but it is 
not found."
       else
-        SVN_PY3C()
+        AC_MSG_NOTICE([Configuring python swig binding])
 
-        if test "$py3c_found" = "no"; then
-          SWIG_PY_ERRMSG="py3c library not found"
-          AC_MSG_WARN([py3c library not found; disabling python swig bindings])
+        AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[
+        ac_cv_python_includes="`$SWIG_PY_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
-          AC_CACHE_CHECK([for compiling Python extensions], 
[ac_cv_python_compile],[
-            ac_cv_python_compile="`$SWIG_PY_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="`$SWIG_PY_PYTHON 
${abs_srcdir}/build/get-py-info.py --link`"
-          ])
-          SWIG_PY_LINK="$ac_cv_python_link"
+          python_header_found="no"
 
-          AC_CACHE_CHECK([for linking Python libraries], [ac_cv_python_libs],[
-            ac_cv_python_libs="`$SWIG_PY_PYTHON 
${abs_srcdir}/build/get-py-info.py --libs`"
+          save_cppflags="$CPPFLAGS"
+          CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+          AC_CHECK_HEADER(Python.h, [
+            python_header_found="yes"
           ])
-          SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`"
+          CPPFLAGS="$save_cppflags"
 
-          if test "$SWIG" = "none"; then
-            SWIG_PY_ERRMSG=""
+          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
-            # 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"
-              $SWIG_PY_PYTHON -c 'import sys; sys.exit(0x3000000 > 
sys.hexversion)' && \
-                 ac_cv_python_is_py3="yes"
-            ])
+            SVN_PY3C()
 
-            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
+            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
-              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=""
+              AC_CACHE_CHECK([for compiling Python extensions], 
[ac_cv_python_compile],[
+                ac_cv_python_compile="`$SWIG_PY_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="`$SWIG_PY_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="`$SWIG_PY_PYTHON 
${abs_srcdir}/build/get-py-info.py --libs`"
+              ])
+              SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`"
+
+              # 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"
+                $SWIG_PY_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
-                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])
+                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
@@ -186,151 +208,373 @@ AC_DEFUN(SVN_FIND_SWIG,
       fi
     fi
 
-  fi
+    SWIG_PL_ERRMSG="check config.log for details"
+    if test "$SWIG_PL_PERL" = "none"; then
+      SWIG_PL_ERRMSG="You specfied not to build Perl bindings or \
+suitable Perl interpreter is not found."
+    else
+      if test "$SWIG" = "none"; then
+        AC_MSG_WARN([You specified to build SWIG Perl bindings, but SWIG is 
not found.])
+        SWIG_PL_ERRMSG="SWIG is need to build SWIG Perl bindings, but it is 
not found."
+      else
+        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="`$SWIG_PL_PERL -e 'q([[); print $]] * 1000000,$/;'`"
+        AC_MSG_RESULT([$PERL_VERSION])
+        if test "$PERL_VERSION" -ge "5008000"; then
+          SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$SWIG_PL_PERL -MExtUtils::Embed 
-e ccopts`"
+          SWIG_PL_LINK="`$SWIG_PL_PERL -MExtUtils::Embed -e ldopts`"
+          SWIG_PL_LINK="`SVN_REMOVE_STANDARD_LIB_DIRS($SWIG_PL_LINK)`"
 
-  SWIG_PL_ERRMSG="check config.log for details"
-  if test "$SWIG_PL_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="`$SWIG_PL_PERL -e 'q([[); print $]] * 1000000,$/;'`"
-    AC_MSG_RESULT([$PERL_VERSION])
-    if test "$PERL_VERSION" -ge "5008000"; then
-      SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$SWIG_PL_PERL -MExtUtils::Embed -e 
ccopts`"
-      SWIG_PL_LINK="`$SWIG_PL_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
+    fi
 
-      dnl SWIG Perl bindings successfully configured, clear the error message
-      SWIG_PL_ERRMSG=""
+    SWIG_RB_COMPILE="none"
+    SWIG_RB_LINK="none"
+    SWIG_RB_ERRMSG="check config.log for details"
+    if test "$SWIG_RB_RUBY" = "none"; then
+      SWIG_RB_ERRMSG="You specfied not to build Ruby bindings or \
+suitable Ruby interpreter is not found."
     else
-      AC_MSG_WARN([perl bindings require perl 5.8.0 or newer.])
-    fi
-  fi
+      if test "$SWIG" = "none"; then
+        AC_MSG_WARN([You specified to build SWIG Ruby bindings, but SWIG is 
not found.])
+        SWIG_RB_ERRMSG="SWIG is need to build SWIG Ruby bindings, but it is 
not found."
+      else
+        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="$SWIG_RB_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"
+          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
+        else
+          dnl Ruby 1.8
+          svn_cv_ruby_includes="-I. -I$rbconfig_archdir"
+        fi
+        ])
+        SWIG_RB_INCLUDES="\$(SWIG_INCLUDES) $svn_cv_ruby_includes"
 
-  SWIG_RB_COMPILE="none"
-  SWIG_RB_LINK="none"
-  SWIG_RB_ERRMSG="check config.log for details"
-  if test "$SWIG_RB_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])
+        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="`$SWIG_RB_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])
+
+        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])
+
+        dnl SWIG Ruby bindings successfully configured, clear the error message
+        SWIG_RB_ERRMSG=""
+      fi
     fi
-    rbconfig="$SWIG_RB_RUBY -rrbconfig -e "
+  ],
+  [
+    # in release mode  
+    SWIG_PY_COMPILE="none"
+    SWIG_PY_LINK="none"
+    SWIG_PY_OPTS="none"
+    SWIG_PY_ERRMSG="check config.log for details"
+    if test "$SWIG_PY_PYTHON" = "none"; then
+      SWIG_PY_ERRMSG="You specfied not to build Python bindings or \
+suitable Python interpreter is not found."
+    else
+      AC_MSG_NOTICE([Configuring python swig binding])
+
+      AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[
+        ac_cv_python_includes="`$SWIG_PY_PYTHON 
${abs_srcdir}/build/get-py-info.py --includes`"
+      ])
+      SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes"
 
-    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"
+      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
-        svn_cv_ruby_includes="$svn_cv_ruby_includes 
-I$rbconfig_rubyhdrdir/$rbconfig_arch"
+
+        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()
+
+          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="`$SWIG_PY_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="`$SWIG_PY_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="`$SWIG_PY_PYTHON 
${abs_srcdir}/build/get-py-info.py --libs`"
+            ])
+            SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`"
+
+            SWIG_PY_ERRMSG=""
+          fi
+        fi
       fi
+    fi
+
+    SWIG_PL_ERRMSG="check config.log for details"
+    if test "$SWIG_PL_PERL" = "none"; then
+      SWIG_PL_ERRMSG="You specfied not to build Perl bindings or \
+suitable Perl interpreter is not found."
     else
-      dnl Ruby 1.8
-      svn_cv_ruby_includes="-I. -I$rbconfig_archdir"
+      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="`$SWIG_PL_PERL -e 'q([[); print $]] * 1000000,$/;'`"
+      AC_MSG_RESULT([$PERL_VERSION])
+      if test "$PERL_VERSION" -ge "5008000"; then
+        SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$SWIG_PL_PERL -MExtUtils::Embed 
-e ccopts`"
+        SWIG_PL_LINK="`$SWIG_PL_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
-    ])
-    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="`$SWIG_RB_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"
+    SWIG_RB_COMPILE="none"
+    SWIG_RB_LINK="none"
+    SWIG_RB_ERRMSG="check config.log for details"
+    if test "$SWIG_RB_RUBY" = "none"; then
+      SWIG_RB_ERRMSG="You specfied not to build Ruby bindings or \
+suitable Ruby interpreter is not found."
+    else
+      rbconfig="$SWIG_RB_RUBY -rrbconfig -e "
 
-    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)`"
+      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
+          svn_cv_ruby_includes="$svn_cv_ruby_includes 
-I$rbconfig_rubyhdrdir/$rbconfig_arch"
+        fi
+      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="`$SWIG_RB_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"
+      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])
+      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([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])
 
-    dnl SWIG Ruby bindings successfully configured, clear the error message
-    SWIG_RB_ERRMSG=""
-  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)

Modified: subversion/trunk/configure.ac
URL: 
http://svn.apache.org/viewvc/subversion/trunk/configure.ac?rev=1884610&r1=1884609&r2=1884610&view=diff
==============================================================================
--- subversion/trunk/configure.ac (original)
+++ subversion/trunk/configure.ac Fri Dec 18 15:32:35 2020
@@ -1321,21 +1321,36 @@ SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
 
 AC_ARG_WITH(swig_perl,
 [AS_HELP_STRING([[--with-swig-perl[=PATH|auto|no]|--without-swig-perl]],
-                [specify path to SWIG bindings target Perl interpreter 
[default=auto]])],
+                [Specify path to SWIG bindings target Perl interpreter
+                 [default=auto]. If the option value is 'auto' or it is not
+                  specfied, search for the Perl program.]
+                m4_ifndef([SVN_RELEASE_MODE],
+                  [[Implies --with-swig=yes if PATH is specfied or Perl 
+                    is found on 'auto' detection.]]))
+],
 [],
 [
-if test "$PERL" = "no" -o "$PERL" = "none"; then
-  with_swig_perl=no
-  AC_MSG_WARN([Disabling the SWIG Perl bindings' build by setting the PERL])
-  AC_MSG_WARN([environment variable to "none" is deprecated.])
-  AC_MSG_WARN([])
-  AC_MSG_WARN([Please use --without-swig-perl instead.])
+if test -n "$PERL"; then
+  if test "$PERL" = "no" -o "$PERL" = "none"; then
+    with_swig_perl=no
+    AC_MSG_WARN([Disabling the SWIG Perl bindings' build by setting the PERL])
+    AC_MSG_WARN([environment variable to "none" is deprecated.])
+    AC_MSG_WARN([])
+    AC_MSG_WARN([Please use --without-swig-perl instead.])
+  else
+    with_swig_perl=auto
+    AC_MSG_WARN([Specfying the Perl path for SWIG Perl bindings' build])
+    AC_MSG_WARN([by setting the PERL environment variable is deprecated.])
+    AC_MSG_WARN([])
+    AC_MSG_WARN([Please use --with-swig-perl=PATH instead.])
+  fi
 else
   with_swig_perl=auto
 fi
 ])
 case $with_swig_perl in
   yes|auto|"")
+    # honor PERL variable only if it is set and is full path. 
     AC_PATH_PROG(PERL, perl, none)
     SWIG_PL_PERL="$PERL"
     ;;
@@ -1351,14 +1366,16 @@ AC_SUBST(SWIG_PL_PERL)
 # Python: as a target of SWIG Python bindings
 AC_ARG_WITH(swig_python,
 [AS_HELP_STRING([[--with-swig-python[=PATH|auto|no]|--without-swig-python]],
-                [specify path to SWIG bindings target Python interpreter 
[default=auto]])],
+                [Specify path to SWIG bindings target Python interpreter
+                 [default=auto]. If the option value is 'auto' or it is not
+                 specfied, search for the Python program.]
+                m4_ifndef([SVN_RELEASE_MODE],
+                  [[Implies --with-swig=yes if PATH is specfied or Python
+                    is found on 'auto' detection.]]))
+],
 [],
 [
-if test "$PYTHON" = "no" -o "$PYTHON" = "none"; then
-  with_swig_python=no
-else
   with_swig_python=auto
-fi
 ])
 case $with_swig_python in
   yes|auto|"")
@@ -1375,21 +1392,36 @@ AC_SUBST(SWIG_PY_PYTHON)
 
 AC_ARG_WITH(swig_ruby,
 [AS_HELP_STRING([[--with-swig-ruby[=PATH|auto|no]|--without-swig-ruby]],
-                [specify path to SWIG bindings target Ruby interpreter 
[default=auto]])],
+                [specify path to SWIG bindings target Ruby interpreter
+                 [default=auto]. If the option value is 'auto' or it is not
+                  specfied, search for the Ruby program.] 
+                m4_ifndef([SVN_RELEASE_MODE],
+                  [[Implies --with-swig=yes if PATH is specfied or Ruby
+                    is found on 'auto' detection.]]))
+],
 [],
 [
-if test "$RUBY" = "no" -o "$RUBY" = "none"; then
-  with_swig_ruby=no
-  AC_MSG_WARN([Disabling the SWIG Ruby bindings' build by setting the RUBY])
-  AC_MSG_WARN([environment variable to "none" is deprecated.])
-  AC_MSG_WARN([])
-  AC_MSG_WARN([Please use --without-swig-ruby instead.])
+if test -n "$RUBY"; then
+  if test "$RUBY" = "no" -o "$RUBY" = "none"; then
+    with_swig_ruby=no
+    AC_MSG_WARN([Disabling the SWIG Ruby bindings' build by setting the RUBY])
+    AC_MSG_WARN([environment variable to "none" is deprecated.])
+    AC_MSG_WARN([])
+    AC_MSG_WARN([Please use --without-swig-ruby instead.])
+  else
+    with_swig_ruby="$RUBY"
+    AC_MSG_WARN([Specfying the Ruby path for SWIG Ruby bindings' build])
+    AC_MSG_WARN([by setting the RUBY environment variable is deprecated.])
+    AC_MSG_WARN([])
+    AC_MSG_WARN([Please use --with-swig-ruby=PATH instead.])
+  fi
 else
   with_swig_ruby=auto
 fi
 ])
 case $with_swig_ruby in
   yes|auto|"")
+    # honor RUBY variable only if it is set and is full path. 
     AC_PATH_PROGS(RUBY, ruby ruby1 ruby1.8 ruby18 ruby1.9 ruby19 ruby1.9.3 
ruby193 ruby2 ruby2.0 ruby20 ruby2.1 ruby21 ruby2.2 ruby22 ruby2.3 ruby23 
ruby2.4 ruby24, none)
     SWIG_RB_RUBY="$RUBY"
     ;;

Modified: subversion/trunk/subversion/bindings/swig/INSTALL
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/INSTALL?rev=1884610&r1=1884609&r2=1884610&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/swig/INSTALL (original)
+++ subversion/trunk/subversion/bindings/swig/INSTALL Fri Dec 18 15:32:35 2020
@@ -141,7 +141,13 @@ Step 2:  Build and Install Subversion.
 
   See Subversion's own INSTALL file for details.
 
-  Make sure that Subversion's ./configure script sees your installed SWIG!
+  If you are using a Subversion distribution tarball and want to rebuild
+  the SWIG language bindings C source files with your installed SWIG, 
+  you need to execute autogen.sh, because the bundled configure script 
+  and makefiles don't support it.
+
+  If you don't use SWIG bindings C source files already generated,
+  make sure that Subversion's ./configure script sees your installed SWIG!
   It tries to detect SWIG near the very end of its output.
   You can find it by running 'grep "^SWIG=" config.log'.
 


Reply via email to