--- boost_1_40_0/Jamroot 2009-08-23 18:17:37.000000000 +0200 +++ boost1.40-1.40.0/Jamroot 2009-10-21 20:06:00.223496183 +0200 @@ -339,6 +339,12 @@ constant BUILD_ID : [ regex.replace $(build-id) "[*\\/:.\"\' ]" "_" ] ; } +# Python build id (only for Python libraries) +local python-id = [ MATCH "^--pythonid=(.*)" : [ 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 --- boost_1_40_0/libs/python/build/Jamfile.v2 2007-11-25 19:38:02.000000000 +0100 +++ boost1.40-1.40.0/libs/python/build/Jamfile.v2 2009-10-21 18:21:56.656818332 +0200 @@ -3,6 +3,7 @@ # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) import os ; +import indirect ; import modules ; import python ; @@ -24,8 +25,27 @@ project boost/python : source-location ../src + : requirements + -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag + @$(__name__).tag ; +rule tag ( name : type ? : property-set ) +{ + local result = $(name) ; + if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB + { + if $(name) = boost_python && $(PYTHON_ID) + { + result = $(result)-$(PYTHON_ID) ; + } + } + + # forward to the boost tagging rule + return [ indirect.call $(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag + $(result) : $(type) : $(property-set) ] ; +} + rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } } rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } } --- boost_1_40_0/libs/mpi/build/Jamfile.v2 2009-08-06 21:04:54.000000000 +0200 +++ boost1.40-1.40.0/libs/mpi/build/Jamfile.v2 2009-10-21 18:22:35.870246226 +0200 @@ -9,6 +9,7 @@ # Andrew Lumsdaine import mpi ; +import indirect ; import python ; libraries = ; @@ -18,8 +19,27 @@ project boost/mpi : source-location ../src + : requirements + -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag + @$(__name__).tag ; +rule tag ( name : type ? : property-set ) +{ + local result = $(name) ; + if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB + { + if $(name) = boost_mpi_python && $(PYTHON_ID) + { + result = $(result)-$(PYTHON_ID) ; + } + } + + # forward to the boost tagging rule + return [ indirect.call $(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag + $(result) : $(type) : $(property-set) ] ; +} + lib boost_mpi : broadcast.cpp