Daniel Shahaf wrote: > Jonathan Nieder wrote on Mon, Nov 07, 2011 at 12:45:19 -0600:
>> [[[ >> * Makefile.in >> (swig-pl, $(SWIG_PY_DIR)/libsvn): Depend on mkdir-init. > > Does the swig-rb target need to grow a similar dependency on mkdir-init? > Makefile.in doesn't seem to already contain such a dependency. Ah. Yes, that is needed. [...] >> + if test -d $$d; then \ >> + cd $$d && rm -rf *.lo *.la *.o *.pyc .libs; \ >> + fi; \ >> done > > Seems to me this could benefit from a subshell --- the 'cd' commands > last until the end of the target's scriptlet, but that isn't terribly > obvious to the reader. I'll get that done too. Good idea. [...] > Committed in r1198883, but I'll revert this shortly because a buildbot broke: [...] > mkdir > /var/lib/buildbot/svn-buildslave/svn-x64-ubuntu/build/subversion/bindings/swig/python/libsvn > mkdir: cannot create directory > `/var/lib/buildbot/svn-buildslave/svn-x64-ubuntu/build/subversion/bindings/swig/python/libsvn': > File exists > make: *** > [/var/lib/buildbot/svn-buildslave/svn-x64-ubuntu/build/subversion/bindings/swig/python/libsvn] > Error 1 > make: *** Waiting for unfinished jobs.... Thanks for fixing dealing with the breakage quickly. Oddly enough, I can't reproduce the error here (tried with -j4). I like to imagine the following will fix it. [[[ Create subversion/bindings/swig/python/libsvn directory in mkdir-init instead of its own rule. Otherwise, the build can fail because mkdir fails with EEXISTS if the $(SWIG_PY_DIR)/libsvn rule triggers twice. * build.conf (swig-dirs): Add subversion/bindings/swig/python/libsvn. * Makefile.in (copy-swig-py): Depend on mkdir-init instead of $(SWIG_PY_DIR)/libsvn. ($(SWIG_PY_DIR)/libsvn): Remove target. ]]] Index: Makefile.in =================================================================== --- Makefile.in (revision 1198883) +++ Makefile.in (working copy) @@ -785,10 +785,7 @@ clean-swig-pl: extraclean-swig-pl: clean-swig-pl $(EXTRACLEAN_SWIG_PL) -$(SWIG_PY_DIR)/libsvn: mkdir-init - mkdir $(SWIG_PY_DIR)/libsvn - -copy-swig-py: autogen-swig-py $(SWIG_PY_DIR)/libsvn +copy-swig-py: autogen-swig-py mkdir-init @for f in $(SWIG_PY_SRC_DIR)/*.py $(SWIG_PY_DIR)/*.py; do \ ! [ -f "$$f" ] || cp -pf $$f $(SWIG_PY_DIR)/libsvn; \ done Index: build.conf =================================================================== --- build.conf (revision 1198916) +++ build.conf (working copy) @@ -69,7 +69,7 @@ swig-perl-opts = -perl -nopm -noproxy swig-ruby-opts = -ruby swig-languages = python perl ruby swig-dirs = - subversion/bindings/swig/python + subversion/bindings/swig/python/libsvn subversion/bindings/swig/perl subversion/bindings/swig/ruby subversion/bindings/swig/proxy