From c2607d0bbd6ff799a1a399a2edf02a6648cf6d28 Mon Sep 17 00:00:00 2001 From: Jessica Hamilton Date: Tue, 21 Oct 2014 19:33:28 +1300 Subject: [PATCH] jam: add internal dependencies for multi-file generating actions * Based on https://svn.boost.org/trac/boost/changeset/39341 --- jam/compile.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/jam/compile.c b/jam/compile.c index efe84a6d70..9091613dde 100644 --- a/jam/compile.c +++ b/jam/compile.c @@ -576,6 +576,25 @@ evaluate_rule( action->rule = rule; action->targets = targetlist( (TARGETS *)0, lol_get( args, 0 ) ); action->sources = targetlist( (TARGETS *)0, lol_get( args, 1 ) ); + + /* Make targets[1,N-1] depend on targets[0], to describe the */ + /* generated targets for the rule. Do it with includes, to */ + /* reflect non-build dependency. */ + + if( action->targets ) + { + TARGET *t0 = action->targets->target; + for( t = action->targets->next; t; t = t->next ) + { + TARGET *tn = t->target; + if( !tn->includes ) + { + tn->includes = copytarget( tn ); + } + tn = tn->includes; + tn->depends = targetentry( tn->depends, t0 ); + } + } /* Append this action to the actions of each target */