|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r59865 - trunk/tools/jam/src
From: ghost_at_[hidden]
Date: 2010-02-24 07:08:58
Author: vladimir_prus
Date: 2010-02-24 07:08:58 EST (Wed, 24 Feb 2010)
New Revision: 59865
URL: http://svn.boost.org/trac/boost/changeset/59865
Log:
Add 'ignore -n' option to BUILTIN_UPDATE_NOW.
Text files modified:
trunk/tools/jam/src/builtins.c | 21 ++++++++++++++++++---
1 files changed, 18 insertions(+), 3 deletions(-)
Modified: trunk/tools/jam/src/builtins.c
==============================================================================
--- trunk/tools/jam/src/builtins.c (original)
+++ trunk/tools/jam/src/builtins.c 2010-02-24 07:08:58 EST (Wed, 24 Feb 2010)
@@ -1290,18 +1290,22 @@
updates them.
Second parameter, if specified, if the descriptor (converted to a string)
of a log file where all build output is redirected.
+ Third parameter, if non-empty, specifies that the -n option should have
+ no effect -- that is, all out-of-date targets should be rebuild.
*/
LIST * builtin_update_now( PARSE * parse, FRAME * frame )
{
LIST * targets = lol_get( frame->args, 0 );
LIST * log = lol_get( frame->args, 1 );
+ LIST * force = lol_get (frame->args, 2);
int status = 0;
int original_stdout;
int original_stderr;
int n;
- int targets_count;
- const char** targets2;
- int i;
+ int targets_count;
+ const char** targets2;
+ int i;
+ int original_noexec;
if (log)
@@ -1314,6 +1318,12 @@
dup2 (fd, 1);
}
+ if (force)
+ {
+ original_noexec = globs.noexec;
+ globs.noexec = 0;
+ }
+
targets_count = list_length( targets );
targets2 = (const char * *)BJAM_MALLOC( targets_count * sizeof( char * ) );
for (i = 0 ; targets; targets = list_next( targets ) )
@@ -1321,6 +1331,11 @@
status |= make( targets_count, targets2, anyhow);
free( targets );
+ if (force)
+ {
+ globs.noexec = original_noexec;
+ }
+
if (log)
{
/* Flush whatever stdio might have buffered, while descriptions
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