Boost logo

Boost-Build :

From: jbpritts (jpritts_at_[hidden])
Date: 2005-03-02 11:58:35


Hello,

Suppose I have the following directory structure:

./project-root.jam
./Jamfile
./CommonModules/foo/Jamfile
./CommonModules/foo/doit.h
./CommonModules/bar/baz/Jamfile
./CommonModules/bar/baz/doit2.h

I am trying to write a Jamfile such that given the bjam
invocation "bjam install --prefix=/opt" at the top level directory
described above, the following will happen:

1.) foo.so will be placed in /opt/lib
2.) baz.so will be placed in /opt/lib
now here is the kicker...
3.) doit.h will be placed in /opt/include/CommonModules/foo
4.) doit2.h will be placed in /opt/include/CommonModules/bar/baz

This is similar to how Boost include files are installed.

I have failed to get 3.) and 4.) to work. bjam is dumping all the
header files in /opt/include. I would it like it to preserve the
relative path from the toplevel jamfile so that in my C++ files, I
can use the following syntax: #include <CommonModules/foo/doit.h>

Here is an excerpt of my top level Jamfile (it follows the example
Jamfile.v2 from the toplevel of the Boost libraries):

# Install to system location.

alias install : install-libs install-exes install-headers ;

install install-libs : $(libraries)
: <location>$(lib-locate)
;

install install-exes : $(executables)
: <location>$(exe-locate)
;

install install-headers : [ glob CommonModules/*/*.h ]
: <location>$(include-locate)
;

explicit install install-libs install-headers install-exes stage ;

I am using Boost.Jam 03.01.10 and Boost.Build V2.

Thanks,
Jim.

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk