Index: build/targets.jam =================================================================== RCS file: /cvsroot/boost/boost/tools/build/v2/build/targets.jam,v retrieving revision 1.204 diff -u -p -r1.204 targets.jam --- build/targets.jam 8 Nov 2006 09:07:01 -0000 1.204 +++ build/targets.jam 15 Nov 2006 19:49:37 -0000 @@ -82,6 +82,7 @@ import path ; import set ; import assert ; import indirect ; +import toolset ; # Base class for all abstract targets. class abstract-target @@ -1408,6 +1409,8 @@ rule main-target-requirements ( : project # Project where the main target is to be declared ) { + specification += [ toolset.requirements ] ; + local requirements = [ property-set.refine-from-user-input [ $(project).get requirements ] : $(specification) : [ $(project).project-module ] : [ $(project).get location ] ] ; Index: build/toolset.jam =================================================================== RCS file: /cvsroot/boost/boost/tools/build/v2/build/toolset.jam,v retrieving revision 1.41 diff -u -p -r1.41 toolset.jam --- build/toolset.jam 5 Nov 2006 06:40:20 -0000 1.41 +++ build/toolset.jam 15 Nov 2006 19:49:37 -0000 @@ -465,7 +465,23 @@ rule inherit-rules ( toolset : base ) IMPORT $(toolset) : $(rules) : : $(toolset).$(rules) ; } +# Return the list of global 'toolset requirements'. +# Those requirements will be automatically added to +# the requirements of any main target. +rule requirements ( ) +{ + return $(.requirements) ; +} +# Adds elements to the list of global 'toolset requirements'. +# The requirements will be automatically added to the requirements +# for all main targets, as if they were specified literally. +# For best results, all requirements added should be conditional or +# indirect conditional. +rule add-requirements ( requirements * ) +{ + .requirements += $(requirements) ; +} local rule __test__ ( ) { Index: tools/cw.jam =================================================================== RCS file: /cvsroot/boost/boost/tools/build/v2/tools/cw.jam,v retrieving revision 1.15 diff -u -p -r1.15 cw.jam --- tools/cw.jam 12 Sep 2006 22:31:14 -0000 1.15 +++ tools/cw.jam 15 Nov 2006 19:49:37 -0000 @@ -23,6 +23,8 @@ if [ MATCH (--debug-configuration) : [ m feature.extend toolset : cw ; +toolset.add-requirements cw,shared:multi ; + nl = " " ; Index: tools/intel-win.jam =================================================================== RCS file: /cvsroot/boost/boost/tools/build/v2/tools/intel-win.jam,v retrieving revision 1.12 diff -u -p -r1.12 intel-win.jam --- tools/intel-win.jam 12 Sep 2006 09:28:11 -0000 1.12 +++ tools/intel-win.jam 15 Nov 2006 19:49:37 -0000 @@ -22,6 +22,8 @@ toolset.inherit-generators intel-win intel-win,shared:multi ; + # Initializes the intel toolset for windows rule init ( version ? : # the compiler version command * : # the command to invoke the compiler itself Index: tools/msvc.jam =================================================================== RCS file: /cvsroot/boost/boost/tools/build/v2/tools/msvc.jam,v retrieving revision 1.94 diff -u -p -r1.94 msvc.jam --- tools/msvc.jam 26 Oct 2006 09:10:10 -0000 1.94 +++ tools/msvc.jam 15 Nov 2006 19:49:38 -0000 @@ -47,6 +47,10 @@ toolset.inherit-flags msvc : midl ; # Inherit MC flags toolset.inherit-flags msvc : mc ; +# Dynamic runtime comes only in MT flavour. +toolset.add-requirements msvc,shared:multi ; + + RM = [ common.rm-command ] ; nl = " " ;