Boost logo

Boost-Build :

From: Larry Evans (cppljevans_at_[hidden])
Date: 2007-09-26 12:22:27


On 09/26/07 10:36, Rene Rivera wrote:
> Larry Evans wrote:
>> The description of "updating" rules and actions in:
>>
>> http://www.boost.org/doc/html/jam/language.html#jam.language.rules
[snip]
> It will work as described, and assuming the above is the entire content
> of the Jamfile, if you do:
>
> bjam -f Jamfile
>
> [...]
>> So, I guess, when rules and like-named actions are only connected,
>> automatically, the make rule; otherwise, they have to be explicitly
>> connected with the generators.register-standard rule. Is that
>> right?
>
> Volodya will have to answer that. But I believe all your observations
> here are based on the misunderstanding the difference between Boost.Jam
> and Boost.Build. Boost.Build is an abstraction on top of Boost.Jam, and
> hence the interface it presents to users is different than the one
> describe by the direct use of Boost.Jam.
Yep. Looks like you're right:

cd
/home/evansl/prog_dev/boost-svn/ro/trunk/tools.0/experiments/experiment-1/
bjam -f Jamfile x
rule my-update x : y
...found 1 target...
...updating 1 target...
my-update x
actions my-update x : y
Jamfile:
rule my-update
{
     ECHO "rule my-update" $(<) ":" $(>) ;
}
actions my-update
{
     echo "actions my-update" $(<) ":" $(>) ;
     echo "Jamfile:" ;
     cat Jamfile ;
}
my-update x : y ;
...updated 1 target...

Compilation finished at Wed Sep 26 11:09:42

Thanks *very much* for the clarification. I read about
the difference between Boost.Build and Boost.Jam, but
didn't really understand all that much. The keyword
you used was *interface*. Somehow, it's got to be
made clear to the user where that interface lies.
For example, if the actions in the:

   actions inline-file

of:

   http://www.boost.org/boost-build2/doc/html/bbv2/extending/tools.html

contained:

   my-update x : y ;

and the Jamfile was:

   import verbatim.jam ;
   verbatim a : b.cpp ;

would command line:

   bjam a

cause invocation of the my-update rule then the my-update actions?
I guess I'm still confused about where this Boost.Jam assocation of
rules and actions is useful. Could you give some examples?


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk