|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r78246 - trunk/tools/build/v2/engine
From: steven_at_[hidden]
Date: 2012-04-28 14:19:15
Author: steven_watanabe
Date: 2012-04-28 14:19:12 EDT (Sat, 28 Apr 2012)
New Revision: 78246
URL: http://svn.boost.org/trac/boost/changeset/78246
Log:
Don't rescan targets when their internal include node is updated.
Text files modified:
trunk/tools/build/v2/engine/make1.c | 31 +++++++++++++------------------
1 files changed, 13 insertions(+), 18 deletions(-)
Modified: trunk/tools/build/v2/engine/make1.c
==============================================================================
--- trunk/tools/build/v2/engine/make1.c (original)
+++ trunk/tools/build/v2/engine/make1.c 2012-04-28 14:19:12 EDT (Sat, 28 Apr 2012)
@@ -585,30 +585,25 @@
/* Target has been updated so rescan it for dependencies. */
if ( ( t->fate >= T_FATE_MISSING ) &&
( t->status == EXEC_CMD_OK ) &&
- !t->rescanned )
+ !( t->flags & T_FLAG_INTERNAL ) )
{
TARGET * saved_includes;
- TARGET * target_to_rescan = t;
SETTINGS * s;
- target_to_rescan->rescanned = 1;
-
- if ( target_to_rescan->flags & T_FLAG_INTERNAL )
- target_to_rescan = t->original_target;
+ t->rescanned = 1;
/* Clean current includes. */
- saved_includes = target_to_rescan->includes;
- target_to_rescan->includes = 0;
+ saved_includes = t->includes;
+ t->includes = 0;
- s = copysettings( target_to_rescan->settings );
+ s = copysettings( t->settings );
pushsettings( root_module(), s );
- headers( target_to_rescan );
+ headers( t );
popsettings( root_module(), s );
freesettings( s );
- if ( target_to_rescan->includes )
+ if ( t->includes )
{
- target_to_rescan->includes->rescanned = 1;
/* Tricky. The parents have already been processed, but they
* have not seen the internal node, because it was just
* created. We need to make the calls to make1a() that would
@@ -619,20 +614,20 @@
* target is built, otherwise the parent would be considered
* built before this make1a() processing has even started.
*/
- make0( target_to_rescan->includes, target_to_rescan->parents->target, 0, 0, 0 );
+ make0( t->includes, t->parents->target, 0, 0, 0 );
/* Link the old includes on to make sure that it gets
* cleaned up correctly.
*/
- target_to_rescan->includes->includes = saved_includes;
- for ( c = target_to_rescan->parents; c; c = c->next )
+ t->includes->includes = saved_includes;
+ for ( c = t->parents; c; c = c->next )
c->target->depends = targetentry( c->target->depends,
- target_to_rescan->includes );
+ t->includes );
/* Will be processed below. */
- additional_includes = target_to_rescan->includes;
+ additional_includes = t->includes;
}
else
{
- target_to_rescan->includes = saved_includes;
+ t->includes = saved_includes;
}
}
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk