Boost logo

Boost-Build :

From: Jonathan Biggar (jon_at_[hidden])
Date: 2008-07-15 00:32:25


I got annoyed that running bjam --v2 install in a boost library build
directory doesn't work, so I decided to track down the problems and fix
them.

There were three issues:

1. The setting for <install-source-root> needed to be rooted at
BOOST_ROOT or the install process got very confused about where to
install things in some cases.

2. $(install-requirements) is calculated in Jamroot, but isn't
available when running from a subproject. I converted it into a project
constant BOOST_INSTALL_REQUIREMENTS, which is available in all subprojects.

3. I removed "<dependency>/boost//install-headers" from boost-install,
since running install in a subproject would fall over not being able to
find the "/boost" project. I tried a couple of ways to try and get that
project defined in the subproject (putting a use-project inside the
module part of the boost-install rule doesn't do the trick). Removing
the dependency means the boost headers don't get installed or updated if
you run install in a subproject.

Maybe someone else has an idea how to fix #3 better?

I've attached a patch.

-- 
Jon Biggar
Floorboard Software
jon_at_[hidden]
jon_at_[hidden]

--- Jamroot.orig 2008-07-14 21:04:33.063171000 -0700
+++ Jamroot.new 2008-07-14 21:29:17.837692000 -0700
@@ -342,7 +342,7 @@
 # Install to system location.
 
 local install-requirements =
- <install-source-root>boost
+ <install-source-root>$(BOOST_ROOT)/boost
     ;
 if $(layout-versioned)
 {
@@ -361,6 +361,8 @@
     install-requirements += <install-default-prefix>/usr/local ;
 }
 
+constant BOOST_INSTALL_REQUIREMENTS : $(install-requirements) ;
+
 local headers =
     [ path.glob-tree boost : *.hpp *.ipp *.h *.inc : CVS ]
     [ path.glob-tree boost/compatibility/cpp_c_headers : c* : CVS ]
@@ -479,11 +481,11 @@
 rule boost-install ( libraries * )
 {
     package.install install
- : <dependency>/boost//install-headers $(install-requirements)
+ : $(BOOST_INSTALL_REQUIREMENTS)
         : # No binaries
         : $(libraries)
- : # No headers, it's handled by the dependency
- ;
+ : # No headers
+ ;
 
     install stage : $(libraries) : <location>$(BOOST_STAGE_LOCATE) ;
 


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