From: David Abrahams (abrahams_at_[hidden])
Date: 2001-06-05 12:09:49
----- Original Message -----
> Some further questions...
> The documentation talks about a subproject rule, while the system
> seems to use a SubDir rule with different syntax. Can you fully
> explain how SubDir is used?
I just haven't written the subproject rule, but it would go something like
SubDir TOP [ split-path $(<) ] ;
In other words, it's just a more-user-friendly way of invoking SubDir, which
is documented here:
The main reason that SubDir is not equivalent to subproject AFAICT is that
Jam does not (yet) support a uniform ability to split unix-style paths (IOW,
on MacOS, paths are separated in Jam by ':' and only by ':'). So the
developer (Christopher Siewald) had to specify all paths with $(SLASH) or by
using separate elements of a list as they did for SubDir.
Mr. Siewald seemed to be warm to the idea of integrating support for uniform
interpretation of Unix-style paths, if someone would implement it. I think
the biggest problem is that it would need to support VMS and I don't know
enough about VMS path syntax to be sure that I'm not breaking something. Any
VMS experts out there?
> SubInclude seems to require that subprojects be in subdirectories of
> the main project. This means that if I want to build thread_test as
> a subproject of the Boost.Threads library I have to move the
Sorry; I can't picture your directory structure. Could you supply a diagram
of what you're describing? In any case, it seems to me that Boost would be
the main project and everything else would be a subproject.
> which I *think* violates the latest Boost directory
> structure guidelines (we need to document this soon... it's hard to
> find e-mails on this in the archives). Do you expect test programs
> and example programs to be top level projects?
No, I expect them to be targets within subprojects.
> How should jamfiles for examples and test programs link to the static
> libraries generated? If they are subprojects a line such as
> works nicely and is what you used for Y in the example, but how would
> this work for top level projects?
I hope I've already cleared that question up above; if not, please ask
> Basically, I've got jamfiles that create the static threads.lib and
> the test_thread.exe for msvc, but I've had to re-arrange the
> directories and make test a subproject of src, which seems fragile
> for Boost distributions. If you don't follow what I'm asking here I
> can upload the Boost.Threads library with the jamfiles.
That might be neccessary, but let's first see if we can clear things up in
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk