|
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