Boost logo

Boost-Build :

From: Kostas Kostiadis (kos_at_[hidden])
Date: 2006-05-31 09:46:32

Hello all,

I have a project, which involves a bunch of libs.
I want to keep the sources separate from the output.
The "build-dir" rule helps to an extend, but it doesn't do exactly what I

Here's an example that should make things easier to understand...
Assume my project is structured as follows:

   - libs
   --- math

   - projects
   --- helloWorld

After I build helloWorld (which depends on math), I'd like the following to

1) /libs should stay exactly as it was...(i.e. there should be no object or
.lib/.a files in there)

2) Everything but the final executable should go in

i.e. there should be

/output/projects/helloWorld/libs/math/math.a ( <<< the actual lib )

3) The final executable (i.e. helloWorld) should go in
(This is the only file that lives outside of the top level /output).

4) I'd like to remove all the /gcc/link-static/ etc that gets appended to
the path.
All I'm interested in is appedning to the _filename_ some info...e.g.
helloWorld_debug or helloWorld_release_static.
The important thing is that the executables all go to the same output
location, since this is where the data lives that helloWorld needs.
(There is a separate data build process that makes all the data and copies
it in the right place).

In the end, /projects/helloWorld/output would have all you need to run
helloWorld...i.e. it might look something like:


Hope that makes sense...The question is, what jam files do I need to modify
and what rules, to get the desired effects?
I've started building with -d9 to see what actually happens, and there is a
lot of stuff to do with path.jam and virtual-target.jam, etc. but there is a
LOT of stuff in there...I was hoping someone could point me to the right
direction and narrow things down a bit.


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