Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-07-12 10:31:26

David Abrahams wrote:
> Just to clarify, my most immediate concerns are getting answers to
> these two items, so I can continue with my project of fixing the
> documentation:

Ok. I'll try to answer the other email too, but I'm dizzy after a day of
hacking :-(

> > This is unclear from the docs:
> >
> > given:
> >
> > foo/
> > foo/Jamfile [lib fu : fu.cpp]
> > foo/fu.cpp
> > foo/bar/
> > foo/bar/baz/
> > foo/bar/baz/Jamfile [exe baz : baz.cpp ..//fu]
> > foo/bar/baz/baz.cpp
> >
> > (no Jamfile in bar)
> >
> > is the Jamfile in Baz correct, or does it need to say
> >
> > exe baz : baz.cpp ../..//fu

When in foo/bar/baz/Jamfile,


means "foo/bar", and if there's no Jamfile there, then "..//fu" is not
correct, and ../..//fu should be used.

> > ...or maybe we just need a very clear and complete description of
> > these syntaxes in the documentation. It's possible that the reason
> > I'm confused is that I've never seen the rules written down.

I'll try to write down the rules:

1. The target-id with "//" in it refers to a target in some project. The part
before "//" identifies the project, and can be either path to the directory
where Jamfile for the other project is placed, or a symbolic id, matching
those in 'project' rule for the referred project. The part after "//" is the
name of main target in the referred project.

2. The target-id without "//" either refers to a project (using the rules
above), or to a file. We first check if a project by this name exists, and if
not, try interpreting the target id as name of the file.

3. A target id which refers to target in Jamfile, not file, may specify
additional properties in the end. All properties should include feature name,
so the beginning of property list is identified by "/<"



Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at