? build/A.diff ? build/ChangeLog ? build/generators.diff ? build/generators.jam.new ? build/lib_prefix.diff ? build/project.ann.jam ? build/property.ann ? build/targets.ann.jam ? build/targets.jam.diff ? build/targets.jam.new ? build/virtual-target.ann.jam ? build/virtual-target.new.jam Index: tools/builtin.jam =================================================================== RCS file: /cvsroot/boost/boost/tools/build/v2/tools/builtin.jam,v retrieving revision 1.182 diff -u -r1.182 builtin.jam --- tools/builtin.jam 23 Jan 2006 08:18:48 -0000 1.182 +++ tools/builtin.jam 6 Feb 2006 15:40:49 -0000 @@ -177,6 +177,9 @@ vr4100 vr4111 vr4120 vr4130 vr4300 vr5000 vr5400 vr5500 # : propagated optional ; + + +feature indirect-conditional : : incidental free ; # Windows-specific features Index: build/targets.jam =================================================================== RCS file: /cvsroot/boost/boost/tools/build/v2/build/targets.jam,v retrieving revision 1.189 diff -u -r1.189 targets.jam --- build/targets.jam 26 Jan 2006 12:11:36 -0000 1.189 +++ build/targets.jam 6 Feb 2006 15:40:49 -0000 @@ -79,6 +79,7 @@ import path ; import set ; import assert ; +import indirect ; # Base class for all abstract targets. class abstract-target @@ -934,13 +935,15 @@ local raw = [ $(build-request).raw ] ; raw = [ property.refine $(raw) : [ feature.expand [ $(requirements).non-conditional ] ] ] ; - + # We've collected properties that surely must be present in common # properties. We now try to figure out what other properties # should be added in order to satisfy rules (4)-(6) from the docs. local conditionals = [ $(requirements).conditional ] ; - local count = $(conditionals) and-once-more ; + local count = $(conditionals) + [ feature.get-values : $(raw) ] + and-once-more ; local prev ; local current = $(raw) ; @@ -951,6 +954,15 @@ # Evaluate conditionals in context of current properties local e = [ property.evaluate-conditionals-in-context $(conditionals) : $(current) ] ; + + # Evaluate indirect conditionals. + local indirect = [ feature.get-values : $(current) ] ; + for local i in $(indirect) + { + local r = [ indirect.make-qualified $(i) ] ; + e += [ indirect.call $(r) $(current) ] ; + } + if $(e) = $(prev) { # If we got the same result, we've found final properties.