On Mon, Oct 17, 2016 at 11:17 PM, Rene Rivera <grafikrobot@gmail.com> wrote:
On Mon, Oct 17, 2016 at 10:01 PM, Stefan Seefeld <stefan@seefeld.name> wrote:
On 17.10.2016 22:53, Rene Rivera wrote:
> Almost missed this email. Sorry about the delayed response..

No worries. Thanks for the explanation ! I'll make sure to add the
'numpy' rule to the boostdoc and boostrelease targets.

In your case it would only be to the "boostrelease" target :-) IIUC you are building non-integrated docs.
 
But first I need to fix the numpy rule to correctly perform the build,
involving:

1) a copy of a set of files from the source tree to the build tree 
2) the invocation of a command ('make' or 'sphinx-build') inside that
build tree
3) a copy of a set of generated files from the build tree to the
destination (which is AFAIU in the source tree).

and I still don't know how to do the copying imperatively, i.e. not as
part of the ("functional") evaluation of a dependency graph.
The "common" module has some support code to copy files around (though
the "copy" rule itself is empty !?). Is there no way to invoke some
"common.copy" with explicit file arguments (the result of a glob() call) ?

(Among the many reasons I think using the "install" rule for this is
inappropriate is the fact that I don't know upfront what files to copy
back. Which files are generated in the process depends on the content
itself, which I'd rather not inspect to code the build logic.)

Not sure what your intent is so I may get this wrong. But from reading your Jamfile and the Makefile. Here's what I think you should do..

path-constant here : . ;
if [ os.name ] = NT {
make numpydoc.txt : numpy/make.bat : @numpydoc
    [ conditional <depends> : [ glob-tree-ex numpy : *.rst ] ] ;

Just noticed this could be made more portable.. And fixing one mistake (It's what I get for replying late at night)
 
action numpydoc
{
    rd /S /Q "$(>:D)/_build" 
    cd "$(>:D)"
    call "$(>:D=)" && echo "done" > "$(<)"

Replace those commands with:
 
cd "$(>:D)"
call "$(>:D=)" clean && call "$(>:D=)" && echo "done" > "$(<)"
 
}
} else {
make numpydoc.txt : numpy/Makefile : @numpydoc ;
action numpydoc
{
    rm -rf "$(>:D)/_build"
    cd "$(>:D)"
    make "$(>:D=)" && echo "done" > "$(<)"

And replace those with:

cd "$(>:D)"
make clean && make && echo "done" > "$(<)"


--
-- Rene Rivera
-- Grafik - Don't Assume Anything
-- Robot Dreams - http://robot-dreams.net
-- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail