Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2007-04-14 04:59:23


On Friday 13 April 2007 16:25, Dave Rahardja wrote:
>
> > -----Original Message-----
> > From: boost-build-bounces_at_[hidden]
> > [mailto:boost-build-bounces_at_[hidden]] On Behalf Of
> > Vladimir Prus
> > Sent: Friday, April 13, 2007 3:16 AM
> > To: boost-build_at_[hidden]
> > Subject: Re: [Boost-build] actions together, not working?
> >
> > On Friday 13 April 2007 00:32, Dave Rahardja wrote:
> > > Hi guys,
> > >
> > > Wonder what happened to my last post... but I noticed that "actions
> > > together" is not working, or perhaps I'm just not doing it
> > right. Here's my
> > > tool definition:
> >
> > > actions together compile.c++
> > > {
> > > copy $(>) $(<)
> > > }
> > >
> > > actions link
> > > {
> > > copy $(>[1]) $(<)
> > > }
> > >
> > > ------------
> > >
> > > I would expect "actions together compile..." would gather
> > all the C++ files
> > > together, and invoke the action with a list of the input
> > files. Is this
> > > accurate? Or can "actions together" be used only with
> > certain kinds of
> > > rules?
> >
> > I'm afraid I don't know what 'actions together' does; that's
> > some classic
> > Jam feature that's not used in Boost.Build.
> >
> > - Volodya
> > _______________________________________________
> > Unsubscribe & other changes:
> > http://lists.boost.org/mailman/listinfo.cgi/boost-build
> >
>
> >From the classic Jam docs:
>
> -----
> actions together
>
> The $(>) from multiple invocations of the same action on the same built
> target are glommed together.
> -----

Yeah, I know that much, but I don't know how that works, and when that
works.

> IMO, this behavior is very useful in shortening compile times, especially in
> environments where the invocation of the tool itself takes a long time (in
> my case, the compiler license check-out over the network almost quadruples
> the compile time).
>
> Basically, $(>)'s with the same flags should be batched together, then
> executed as a single call to the compiler when the linker or archiver is
> called.
>
> One downside is is that the outputs of each file cannot be individually
> specified. In some of our projects it is useful to compile .c and .cpp files
> to different object file names (say .c.o and .cpp.o) in order to distinguish
> files with the same base name but written in different languages. Doing this
> requires individual specification.

While batch compilation was requested here a number of times, I'm afraid it
would require somebody with free time to look into.

- Volodya


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