diff --git a/historic/jam/src/builtins.c b/historic/jam/src/builtins.c index 9f4b64629..4cc3bf63e 100644 --- a/historic/jam/src/builtins.c +++ b/historic/jam/src/builtins.c @@ -129,6 +129,7 @@ load_builtins() bind_builtin( "HDRMACRO" , builtin_hdrmacro, 0, 0 ) ); +# if 0 /* FAIL_EXPECTED is an experimental built-in that is used to indicate */ /* that the result of a target build action should be inverted (ok <=> fail) */ /* this can be useful when performing test runs from Jamfiles.. */ @@ -137,6 +138,9 @@ load_builtins() /* contact david.turner@freetype.org for more details.. */ bind_builtin( "FAIL_EXPECTED" , builtin_flags, T_FLAG_FAIL_EXPECTED, 0 ); +# endif + + bind_builtin( "RMOLD" , builtin_flags, T_FLAG_RMOLD, 0 ); { char * args[] = { "string", "pattern", "replacements", "+", 0 }; diff --git a/historic/jam/src/make1.c b/historic/jam/src/make1.c index f15d687b6..cc9c2b251 100644 --- a/historic/jam/src/make1.c +++ b/historic/jam/src/make1.c @@ -206,7 +206,13 @@ make1b( TARGET *t ) if( t->status == EXEC_CMD_FAIL && t->actions ) { ++counts->skipped; - printf( "...skipped %s for lack of %s...\n", t->name, failed ); + if ( ( t->flags & ( T_FLAG_RMOLD | T_FLAG_NOTFILE ) ) == T_FLAG_RMOLD ) + { + if( !unlink( t->boundname ) ) + printf( "...removing outdated %s\n", t->boundname ); + } + else + printf( "...skipped %s for lack of %s...\n", t->name, failed ); } if( t->status == EXEC_CMD_OK ) @@ -359,6 +365,7 @@ make1d( /* status and signal our completion so make1c() can run the next */ /* command. On interrupts, we bail heavily. */ +# if 0 /* apparently not needed */ if ( t->flags & T_FLAG_FAIL_EXPECTED ) { /* invert execution result when FAIL_EXPECTED was applied */ @@ -370,6 +377,7 @@ make1d( ; } } +# endif if( status == EXEC_CMD_FAIL && ( cmd->rule->actions->flags & RULE_IGNORE ) ) status = EXEC_CMD_OK; diff --git a/jam_src/builtins.c b/jam_src/builtins.c index 9f4b64629..4cc3bf63e 100644 --- a/jam_src/builtins.c +++ b/jam_src/builtins.c @@ -129,6 +129,7 @@ load_builtins() bind_builtin( "HDRMACRO" , builtin_hdrmacro, 0, 0 ) ); +# if 0 /* FAIL_EXPECTED is an experimental built-in that is used to indicate */ /* that the result of a target build action should be inverted (ok <=> fail) */ /* this can be useful when performing test runs from Jamfiles.. */ @@ -137,6 +138,9 @@ load_builtins() /* contact david.turner@freetype.org for more details.. */ bind_builtin( "FAIL_EXPECTED" , builtin_flags, T_FLAG_FAIL_EXPECTED, 0 ); +# endif + + bind_builtin( "RMOLD" , builtin_flags, T_FLAG_RMOLD, 0 ); { char * args[] = { "string", "pattern", "replacements", "+", 0 }; diff --git a/jam_src/make1.c b/jam_src/make1.c index f15d687b6..cc9c2b251 100644 --- a/jam_src/make1.c +++ b/jam_src/make1.c @@ -206,7 +206,13 @@ make1b( TARGET *t ) if( t->status == EXEC_CMD_FAIL && t->actions ) { ++counts->skipped; - printf( "...skipped %s for lack of %s...\n", t->name, failed ); + if ( ( t->flags & ( T_FLAG_RMOLD | T_FLAG_NOTFILE ) ) == T_FLAG_RMOLD ) + { + if( !unlink( t->boundname ) ) + printf( "...removing outdated %s\n", t->boundname ); + } + else + printf( "...skipped %s for lack of %s...\n", t->name, failed ); } if( t->status == EXEC_CMD_OK ) @@ -359,6 +365,7 @@ make1d( /* status and signal our completion so make1c() can run the next */ /* command. On interrupts, we bail heavily. */ +# if 0 /* apparently not needed */ if ( t->flags & T_FLAG_FAIL_EXPECTED ) { /* invert execution result when FAIL_EXPECTED was applied */ @@ -370,6 +377,7 @@ make1d( ; } } +# endif if( status == EXEC_CMD_FAIL && ( cmd->rule->actions->flags & RULE_IGNORE ) ) status = EXEC_CMD_OK;