David,

    You've, unfortunately, hit on the biggest stumbling block to bjam's more widespread adoption. The documentation is a pretty formalistic specification of an abstract system. I've recently been working on convincing a client with a complex cross-compilation embedded system to move to Boost.Build from a miserable set of unmaintainable makefiles. Good samples just don't exist - yet. I know its on the developers TODO list and, if my client goes for it, I may be funded to build some good user level documentation myself (should know in Jan).

    Meanwhile, if you'd like to post a bit more detail about your current project directory structure and target dependencies/options maybe we can take a crack at getting you pointed in the right direction at least. Boost.Build is a very powerful and expressive system but that also means there can be several ways of doing the same thing but only experience really gives you the ability to figure out the 'best practice'.

    What you're describing doesn't sounds very difficult. Make sure you're using the newest Boost.Build ( http://boost.org/boost-build2/ ) as the links from the C++ Boost library aren't always correct. There's a good pdf that describes how to specify variants based on the tool selection, globs to specify a set of files to include as dependencies for a given target, and the ability to specify existing libraries as external pre-built targets which I believe should address all your specific points respectively. But examples are not strong and you have to read through the whole doc to dig out the useful bits. It is getting better though...

    Good luck,

    -- Ben Scherrey
       Proteus Technologies Ltd.

On Dec 22, 2007 12:43 AM, David Mack <dmtbone@yahoo.com> wrote:
There seems to be a fair few people using bjam and, whilst it's nice there's an 'example' directory packaged with the source, I I cannot find any 'non-trivial' examples of bjam being applied.
 
I'm working on a system that is compiled into multiple dlls and one executable using a ridiculously complicated make configuration.  I would very much like to take a stab at using bjam to address at least parts of the system, but I'm finding it very difficult to get off the ground.
 
The problems I've hit against immediately are basically doing anything that involves more than a single dependency or directory of .cpp files:
 
1. how would you specify separate <include>s for the standard template libraries dependent on whether the system is being built on windows (VC) or linux (gcc)?
 
2. how would you recursively compiling a hierarchy of folders into a library (to .lib or/and .dll) ?
 
3. how do you link against pre-built dlls ?
 
 
I'm sure I must be missing an obvious example/resource somewhere...
 
 
Thanks for your time,
David Mack


Sent from Yahoo! - a smarter inbox.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build