Hi,
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,
Eric