I'm ultimately seeking to create an rpm generator to package files in a dist directory from a pre-defined list, with a scanner that will read this list and build the targets necessary to satisfy the install. To simplify things, I'll start with a tar generator that works something like:
tar dist : files.list ;

And suppose files.list just has one entry of '/usr/bin/hello'.

Building dist.tar should first build dist/usr/bin/hello. This implies to me that bjam should understand how to build dist/usr/bin/hello from the command line, given the following Jamfile:
make hello : : @sayhi ;

actions sayhi {
        echo hi > $(<) ;

install dist/usr/bin : hello ;

Unfortunately, it doesn't work:
rm -rf dist bin ; bjam dist/usr/bin/hello
don't know how to make <e>dist/usr/bin/hello
...found 1 target...
...can't find 1 target...
Of course, just building the target directly works, but that will not satisfy my requirements:
rm -rf dist bin ; bjam

MkDir1 bin
MkDir1 bin/gcc-4.1.3
MkDir1 bin/gcc-4.1.3/debug
Jamfile</home/eric/Desktop/boost/test>.sayhi bin/gcc-4.1.3/debug/hello
MkDir1 dist
MkDir1 dist/usr
MkDir1 dist/usr/bin
common.copy dist/usr/bin/hello

Is it possible to enhance install to produce makeable targets in at the install location that depend on the source targets? Or can an installex rule be created to accomplish this? This is my ultimate Boost.Build use case so I really hope that this is possible. I've been looking at stage.jam and package.jam, but I can't yet make heads or tails of them.

(Of course I'm basing this problem on the assumption that if bjam knows how to build a target, it also knows how to do it from the command-line as well.)

Thanks a lot,