Author: troycurtisjr
Date: Sun Jan  6 00:42:27 2019
New Revision: 1850519

URL: http://svn.apache.org/viewvc?rev=1850519&view=rev
Log:
On branch swig-py3: Improve error messages for swig language builds.

* Makefile.in
  (SWIG_PY_ERRMSG, SWIG_PL_ERRMSG, SWIG_RB_ERRMSG): New

* build/ac-macros/swig.m4
  (SWIG_PY_ERRMSG, SWIG_PL_ERRMSG, SWIG_RB_ERRMSG): Set a meaningful error
    message if the language binding is not configured for any reason, and clear
    the error message if the configuration is successful.

* build/generator/gen_make.py
  (Generator.write): Add 'name' and 'short_upper' to the ezt template data for
    each swig language option.

* build/generator/templates/build-outputs.mk.ezt
  (.swig_py_checked, .swig_pl_checked, .swig_rb_checked): New make targets.
  (autogen-swig-py, autogen-swig-pl, autogen-swig-rb, swig-py, swig-pl, 
swig-rb):
    Add corresponding swig_<lang>_checked dependency to top-level swig building
    targets.


Modified:
    subversion/branches/swig-py3/Makefile.in
    subversion/branches/swig-py3/build/ac-macros/swig.m4
    subversion/branches/swig-py3/build/generator/gen_make.py
    subversion/branches/swig-py3/build/generator/templates/build-outputs.mk.ezt

Modified: subversion/branches/swig-py3/Makefile.in
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/Makefile.in?rev=1850519&r1=1850518&r2=1850519&view=diff
==============================================================================
--- subversion/branches/swig-py3/Makefile.in (original)
+++ subversion/branches/swig-py3/Makefile.in Sun Jan  6 00:42:27 2019
@@ -150,7 +150,9 @@ SWIG_PY_INCLUDES = @SWIG_PY_INCLUDES@ @S
 SWIG_PY_COMPILE = @SWIG_PY_COMPILE@
 SWIG_PY_LINK = @SWIG_PY_LINK@
 SWIG_PY_LIBS = @SWIG_PY_LIBS@
+SWIG_PY_ERRMSG = @SWIG_PY_ERRMSG@
 SWIG_PL_INCLUDES = @SWIG_PL_INCLUDES@
+SWIG_PL_ERRMSG = @SWIG_PL_ERRMSG@
 SWIG_RB_INCLUDES = @SWIG_RB_INCLUDES@ -I$(SWIG_SRC_DIR)/ruby/libsvn_swig_ruby
 SWIG_RB_COMPILE = @SWIG_RB_COMPILE@
 SWIG_RB_LINK = @SWIG_RB_LINK@
@@ -159,6 +161,7 @@ SWIG_RB_SITE_LIB_DIR = @SWIG_RB_SITE_LIB
 SWIG_RB_SITE_ARCH_DIR = @SWIG_RB_SITE_ARCH_DIR@
 SWIG_RB_TEST_VERBOSE = @SWIG_RB_TEST_VERBOSE@
 SWIG_RB_RI_DATADIR = $(DESTDIR)$(datadir)/ri/$(RUBY_MAJOR).$(RUBY_MINOR)/site
+SWIG_RB_ERRMSG = @SWIG_RB_ERRMSG@
 
 CTYPESGEN = @CTYPESGEN@
 CTYPES_PYTHON_SRC_DIR = $(abs_srcdir)/subversion/bindings/ctypes-python

Modified: subversion/branches/swig-py3/build/ac-macros/swig.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/ac-macros/swig.m4?rev=1850519&r1=1850518&r2=1850519&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/ac-macros/swig.m4 (original)
+++ subversion/branches/swig-py3/build/ac-macros/swig.m4 Sun Jan  6 00:42:27 
2019
@@ -103,6 +103,7 @@ AC_DEFUN(SVN_FIND_SWIG,
   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])
 
@@ -112,6 +113,7 @@ AC_DEFUN(SVN_FIND_SWIG,
     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
 
@@ -125,11 +127,13 @@ AC_DEFUN(SVN_FIND_SWIG,
       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],[
@@ -193,6 +197,9 @@ AC_DEFUN(SVN_FIND_SWIG,
                              ["$svn_cv_pycfmt_apr_int64_t"],
                              [Define to the Python/C API format character 
suitable]
                              [ for apr_int64_t])
+
+          dnl SWIG Python bindings successfully configured, clear the error 
message
+          SWIG_PY_ERRMSG=""
         fi
             
       fi
@@ -200,6 +207,7 @@ AC_DEFUN(SVN_FIND_SWIG,
 
   fi
 
+  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
@@ -210,6 +218,9 @@ AC_DEFUN(SVN_FIND_SWIG,
       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
@@ -217,6 +228,7 @@ AC_DEFUN(SVN_FIND_SWIG,
 
   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.
@@ -334,6 +346,9 @@ int main()
                   [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
   AC_SUBST(SWIG)
   AC_SUBST(SWIG_PY_INCLUDES)
@@ -341,8 +356,10 @@ int main()
   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)
@@ -350,4 +367,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/swig-py3/build/generator/gen_make.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/gen_make.py?rev=1850519&r1=1850518&r2=1850519&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/gen_make.py (original)
+++ subversion/branches/swig-py3/build/generator/gen_make.py Sun Jan  6 
00:42:27 2019
@@ -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]))
 
     ########################################

Modified: 
subversion/branches/swig-py3/build/generator/templates/build-outputs.mk.ezt
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/templates/build-outputs.mk.ezt?rev=1850519&r1=1850518&r2=1850519&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/templates/build-outputs.mk.ezt 
(original)
+++ subversion/branches/swig-py3/build/generator/templates/build-outputs.mk.ezt 
Sun Jan  6 00:42:27 2019
@@ -70,8 +70,18 @@ RELEASE_MODE = 1
 # Section 3: SWIG autogen rules
 ########################################
 [for swig_langs]
-autogen-swig-[swig_langs.short]:[for swig_langs.deps] [swig_langs.deps][end]
+.swig_[swig_langs.short]_checked:
+       @if [ -n "$(SWIG_[swig_langs.short_upper]_ERRMSG)" ]; then \
+         echo "SWIG [swig_langs.name] disabled at configure time: 
$(SWIG_[swig_langs.short_upper]_ERRMSG)" >&2; \
+         exit 1; \
+       fi
+       @touch $@
+
+autogen-swig-[swig_langs.short]: .swig_[swig_langs.short]_checked [for 
swig_langs.deps] [swig_langs.deps][end]
 autogen-swig: autogen-swig-[swig_langs.short]
+
+# Ensure the swig build targets depend on the configuration check
+swig-[swig_langs.short]: .swig_[swig_langs.short]_checked
 [end]
 
 


Reply via email to