diff options
author | Vladimir Prus <ghost@cs.msu.su> | 2010-04-20 12:12:31 +0000 |
---|---|---|
committer | Vladimir Prus <ghost@cs.msu.su> | 2010-04-20 12:12:31 +0000 |
commit | 73d7febc099e3f32676eca99123c25c7041323eb (patch) | |
tree | 5162ea70fde88ccc7b6ab0c14b9579551d755d92 /Jamroot | |
parent | 69e2ea080f67362fc4c1e4179c3ddd4c96509cab (diff) | |
download | boost-73d7febc099e3f32676eca99123c25c7041323eb.tar.gz |
Merge Jamroot from trunk
[SVN r61420]
Diffstat (limited to 'Jamroot')
-rw-r--r-- | Jamroot | 75 |
1 files changed, 64 insertions, 11 deletions
@@ -90,6 +90,12 @@ # --buildid=ID Adds the specified ID to the name of built # libraries. The default is to not add anything. # +# --python-buildid=ID Adds the specified ID to the name of built +# libraries that depend on Python. The default +# is to not add anything. This ID is added in +# addition t --buildid. +# +# # --help This message. # # --with-<library> Build and install the specified <library> @@ -134,9 +140,12 @@ import symlink ; import targets ; import project ; import option ; +import xsltproc ; +import build-system ; +import configure ; path-constant BOOST_ROOT : . ; -constant BOOST_VERSION : 1.42.0 ; +constant BOOST_VERSION : 1.43.0 ; constant BOOST_JAMROOT_MODULE : $(__name__) ; local version-tag = [ MATCH "^([^.]+)[.]([^.]+)[.]([^.]+)" : $(BOOST_VERSION) ] @@ -186,6 +195,11 @@ project boost # The standard library Sun compilers use by default has no chance # of working with Boost. Override it. <toolset>sun:<stdlib>sun-stlport + # Comeau does not support shared lib + <toolset>como:<link>static + <toolset>como-linux:<define>_GNU_SOURCE=1 + # When building docs within Boost, we want the standard Boost style + <xsl:param>boost.defaults=Boost : usage-requirements <include>. : build-dir bin.v2 ; @@ -202,6 +216,7 @@ all-libraries = [ sequence.unique $(all-libraries) ] ; # purposes, there's no library to build and install. all-libraries = [ set.difference $(all-libraries) : function_types ] ; +configure.register-components $(all-libraries) ; local rule explicit-alias ( id : targets + ) { @@ -324,6 +339,7 @@ PYTHON_ROOT ?= $(python-root) ; # Select the libraries to install. libraries = [ libraries-to-install $(all-libraries) ] ; +configure.components-building $(libraries) ; if --show-libraries in [ modules.peek : ARGV ] { @@ -342,6 +358,12 @@ if $(build-id) constant BUILD_ID : [ regex.replace $(build-id) "[*\\/:.\"\' ]" "_" ] ; } +# Python build id (only for Python libraries) +local python-id = [ MATCH "^--python-buildid=(.*)" : [ modules.peek : ARGV ] ] ; +if $(python-id) +{ + constant PYTHON_ID : [ regex.replace $(python-id) "[*\\/:.\"\']" "_" ] ; +} # This rule is called by Boost.Build to determine the name of target. We use it # to encode the build variant, compiler name and boost version in the target @@ -561,6 +583,9 @@ class top-level-target : alias-target-class rule generate ( property-set ) { + local x = [ modules.peek : top-level-targets ] ; + x += $(self.name) ; + modules.poke : top-level-targets : $(x) ; if $(self.build-type) = minimal { local expanded ; @@ -655,19 +680,47 @@ targets.create-metatarget top-level-target : [ project.current ] message explain : -"\nBuilding the Boost C++ Libraries. +"\nBuilding the Boost C++ Libraries.\n\n" ; +explicit explain ; + +rule pre-build ( ) +{ + local tl = [ modules.peek : top-level-targets ] ; + if stage in $(tl) || install in $(tl) + { + # FIXME: remove if when Boost regression tests use trunk + # bjam. + if PAD in [ RULENAMES ] + { + configure.print-component-configuration ; + } + } +} +IMPORT $(__name__) : pre-build : : $(__name__).pre-build ; +build-system.set-pre-build-hook $(__name__).pre-build ; -After the build, the headers will be located at - +rule post-build ( ok ? ) +{ + if forward in [ modules.peek : top-level-targets ] + { + if $(ok) + { + ECHO +"\n\nThe Boost C++ Libraries were successfully built! + +The following directory should be added to compiler include paths: + $(BOOST_ROOT) - -The libraries will be located at - + +The following directory should be added to linker library paths: + $(stage-abs) - -Use 'bjam install --prefix=<path>' if you wish to install headers and -libraries to a different location and remove the source tree.\n\n" - ; +" ; + } + } +} +IMPORT $(__name__) : post-build : : $(__name__).post-build ; +build-system.set-post-build-hook $(__name__).post-build ; # This rule should be called from libraries' Jamfiles and will create two # targets, "install" and "stage", that will install or stage that library. The |