Formerly remake.c.~43~
authorRoland McGrath <roland@redhat.com>
Fri, 22 Jan 1993 22:02:48 +0000 (22:02 +0000)
committerRoland McGrath <roland@redhat.com>
Fri, 22 Jan 1993 22:02:48 +0000 (22:02 +0000)
remake.c

index 20d1eea..db81919 100644 (file)
--- a/remake.c
+++ b/remake.c
@@ -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);