From: Thomas Witt (witt_at_[hidden])
Date: 2001-11-21 10:41:22
> > > I don't see how propagation to a dependent target could be relevant;
> > > the build proceeds from the target you specify to all of its
> > > dependencies,
> > > the other way around.
> > I do not understand this.
> dll x : x.cpp y.cpp ;
> You request that x be built. It is a fake target, whose dependency is
> x.dll. x.dll depends on x.obj and y.obj. x.obj depends on x.cpp, etc.
> The point is that targets which are DEPENDENT on these aren't built:
> they're not part of the build request.
> (It took me a long time to understand this, but people use dependent and
> dependency to mean opposites. If A depends on B, A is the dependent and B
> is the dependency.)
I understand. I meant propagation to its dependencies.
> Not exactly. Although they aren't supposed to affect link-compatibility,
> they usually /will/ affect the built products. I just didn't think it was a
> good idea to do anything that would leave around an odd version of a
> dependency target which was built indirectly, rather than explicitly.
> > I think of free-features as a way to specify how the build should behave.
> > Think of a msgstyle feature for metrowerks or something like <cflags>-v.
> > my oppinion build behaviour should be the same for all targets(as long as
> > they don't require different) of one jam invocation.
> Hmm; I understand. Maybe it makes sense to distinguish features that don't
> affect the built products at all from features which don't affect link
> compatibility but do affect the built product. For example, msgstyle,
> warnings, template instantiation depth, etc. are in the first category.
> Most <define> settings are in the 2nd category.
I strongly vote for seperate categories.
> I agree that it's not easily understood. I'm not sure that it would be
> right to propagate ALL free features.
> > As a sidenote I use the commandline variables to handle build behaviour
> > toolset in emacs (I need to change this on-the-fly).
> Me, too. If you want the regexps to parse the CW msgstyle that the toolset
> provides by default, I have added them at the end. I used to use msgstyle
> gcc but these messages are much more informative so I fixed my .emacs error
> parsing ;-)
Thanks, much appreciated.
If there is anything specific I can do to help with build development, let me
know. Though I am not sure whether my understanding of jam is sufficient yet.
-- Dipl.-Ing. Thomas Witt Institut fuer Verkehrswesen, Eisenbahnbau und -betrieb, Universitaet Hannover voice: +49(0) 511 762 - 4273, fax: +49(0) 511 762-3001 http://www.ive.uni-hannover.de
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk