diff --git a/bootstrap.jam b/bootstrap.jam index 7c903808e..a4ea30696 100644 --- a/bootstrap.jam +++ b/bootstrap.jam @@ -20,11 +20,18 @@ include boost-base.jam ; # if $(JAM_VERSION) && $(JAM_VERSION:J="") >= 030101 && $(JAM_VERSION:J="") < 030104 { + # Only the last invocation of UPDATE takes effect; we must + # accumulate the entire list before invoking UPDATE. I always + # thought this was a confusing semantics, and probably the fact + # that the author of UPDATE got it wrong is proof. + + local t ; for local e in $(ARGV[2-]) { if ! [ MATCH "^(-).*" : $(e) ] { - UPDATE $(e) ; + t += $(e) ; } } + UPDATE $(t) ; } diff --git a/v1/bootstrap.jam b/v1/bootstrap.jam index 7c903808e..a4ea30696 100644 --- a/v1/bootstrap.jam +++ b/v1/bootstrap.jam @@ -20,11 +20,18 @@ include boost-base.jam ; # if $(JAM_VERSION) && $(JAM_VERSION:J="") >= 030101 && $(JAM_VERSION:J="") < 030104 { + # Only the last invocation of UPDATE takes effect; we must + # accumulate the entire list before invoking UPDATE. I always + # thought this was a confusing semantics, and probably the fact + # that the author of UPDATE got it wrong is proof. + + local t ; for local e in $(ARGV[2-]) { if ! [ MATCH "^(-).*" : $(e) ] { - UPDATE $(e) ; + t += $(e) ; } } + UPDATE $(t) ; }