Lev Serebryakov <lev {_AT_} serebryakov.spb.ru>


r1886708 | futatuki | 2021-02-20 07:19:59 +0000 (Sat, 20 Feb 2021)

swig-py: Fix dependency of make copy-swig-py target.

In the Unix/Linux build of swig-py, we introduce symlinks of Python
extention modules in $(SWIG_PY_DIR)/libsvn in r1869722, only for
'make check-swig-py', so that we can test the modules before install
them even if libsvn/*.py modules uses relative import.  This is need
for supporting SWIG >= 4.0 because libsvn/*.py modules generated by
SWIG 4.0 use relative import.  Also in r1883335, we introduce relative
import in libsvn/*.py even we use SWIG < 4.0.

In the Makefile rules these links were depends on Python extention
modules, but there is no dependency rule between copy-swig-py target
and '*.so' extension module files in same swig-py target. So we couldn't
warrant that *.so files were built before copy-swig-py target is
triggered, especially multi-job build.

On the other hand, the files in $(SWIG_PY_DIR)/libsvn is needed only
for execute tests, i.e. check-swig-py target, and is not needed for
install-swig-py target, so we can safely move copy-swig-py target from
source of swig-py target to source of check-swig-py target, and
we warrant that *.so files were built before copy-swig-py target is

* Makefile.in
  (): Move swig-py target before $(SWIG_PY_DIR)/libsvn target, as
  expected order of dependency.
  (swig-py): Remove source 'copy-swig-py'.
  (copy-swig-py): Add source 'swig-py' to make sure '*.so' extension
    modules are built before this rule is triggerd.
  (check-swig-py): Add source 'copy-swig-py'.

Reported by: Lev Serebryakov <lev {_AT_} serebryakov.spb.ru>