diff options
Diffstat (limited to 'remake.c')
-rw-r--r-- | remake.c | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -192,12 +192,9 @@ update_file (file, depth) register int status = 0; register struct file *f; unsigned int ofiles_remade = files_remade; - int commands_finished = 0; for (f = file; f != 0; f = f->prev) { - int not_started = f->command_state == cs_not_started; - status |= update_file_1 (f, depth); check_renamed (f); @@ -207,7 +204,7 @@ update_file (file, depth) switch (f->command_state) { case cs_finished: - commands_finished |= not_started; + /* The file is done being remade. */ break; case cs_running: @@ -227,8 +224,15 @@ update_file (file, depth) /* For a top level target, if we have found nothing whatever to do for it, print a message saying nothing needs doing. */ - if (status == 0 && files_remade == ofiles_remade - && commands_finished && depth == 0 && !silent_flag && !question_flag) + /* Give a message iff updated successfully, and never under -s or -q. */ + if (status == 0 && !silent_flag && !question_flag + /* files_remade will have been incremented iff we actually + ran any commands (under -n, if we would have). */ + && files_remade == ofiles_remade + /* Only give the diagnostic for top-level targets. + The makefile chain run is done with DEPTH==1 precisely + to avoid this message. */ + && depth == 0) { if (file->phony || file->cmds == 0) message ("Nothing to be done for `%s'.", file->name); |