You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by tr...@apache.org on 2019/01/06 00:42:27 UTC

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

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]
 
 



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

Posted by Troy Curtis Jr <tr...@gmail.com>.
On Sun, Jan 6, 2019 at 11:09 AM Daniel Shahaf <d....@daniel.shahaf.name>
wrote:

> troycurtisjr@apache.org wrote on Sun, Jan 06, 2019 at 00:42:27 -0000:
> > 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.
>
> Thanks!
>
> Don't you need to rm these .swig_*_checked files somewhere?  Compare:
> .
>     % grep -Rn swig_checked | me
>     autogen.sh:181:  # Remove the .swig_checked file
>     autogen.sh:182:  rm -f .swig_checked
>     configure.ac:1644:rm -f .swig_checked
>     %
>

Ah yes, good catch! I'll get that added in.


> Cheers,
>
> Daniel
>
> > +++
> 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]
>

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

Posted by Troy Curtis Jr <tr...@gmail.com>.
On Sun, Jan 6, 2019 at 11:09 AM Daniel Shahaf <d....@daniel.shahaf.name>
wrote:

> troycurtisjr@apache.org wrote on Sun, Jan 06, 2019 at 00:42:27 -0000:
> > 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.
>
> Thanks!
>
> Don't you need to rm these .swig_*_checked files somewhere?  Compare:
> .
>     % grep -Rn swig_checked | me
>     autogen.sh:181:  # Remove the .swig_checked file
>     autogen.sh:182:  rm -f .swig_checked
>     configure.ac:1644:rm -f .swig_checked
>     %
>

Ah yes, good catch! I'll get that added in.


> Cheers,
>
> Daniel
>
> > +++
> 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]
>

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

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
troycurtisjr@apache.org wrote on Sun, Jan 06, 2019 at 00:42:27 -0000:
> 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.

Thanks!

Don't you need to rm these .swig_*_checked files somewhere?  Compare:
.
    % grep -Rn swig_checked | me
    autogen.sh:181:  # Remove the .swig_checked file
    autogen.sh:182:  rm -f .swig_checked
    configure.ac:1644:rm -f .swig_checked
    % 

Cheers,

Daniel

> +++ 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]

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

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
troycurtisjr@apache.org wrote on Sun, Jan 06, 2019 at 00:42:27 -0000:
> 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.

Thanks!

Don't you need to rm these .swig_*_checked files somewhere?  Compare:
.
    % grep -Rn swig_checked | me
    autogen.sh:181:  # Remove the .swig_checked file
    autogen.sh:182:  rm -f .swig_checked
    configure.ac:1644:rm -f .swig_checked
    % 

Cheers,

Daniel

> +++ 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]