(notice_finished_file): Only recheck modtimes if FILE->command_state was

cs_running on entry (meaning the commands actually just ran).
(update_file_1): Whenever we set FILE->update_status, call
notice_finished_file instead of just set_command_state.
This commit is contained in:
Roland McGrath 1994-09-07 07:06:46 +00:00
parent 9e97330bcb
commit e4a94e0210

View file

@ -478,9 +478,8 @@ update_file_1 (file, depth)
if (dep_status != 0) if (dep_status != 0)
{ {
set_command_state (file, cs_finished);
file->update_status = dep_status; file->update_status = dep_status;
file->updated = 1; notice_finished_file (file);
depth--; depth--;
@ -549,9 +548,8 @@ update_file_1 (file, depth)
if (!must_make) if (!must_make)
{ {
DEBUGPR ("No need to remake target `%s'.\n"); DEBUGPR ("No need to remake target `%s'.\n");
set_command_state (file, cs_finished);
file->update_status = 0; file->update_status = 0;
file->updated = 1; notice_finished_file (file);
return 0; return 0;
} }
@ -596,6 +594,7 @@ notice_finished_file (file)
register struct file *file; register struct file *file;
{ {
struct dep *d; struct dep *d;
int ran = file->command_state == cs_running;
file->command_state = cs_finished; file->command_state = cs_finished;
file->updated = 1; file->updated = 1;
@ -629,7 +628,7 @@ notice_finished_file (file)
} }
} }
if (!file->phony) if (ran && !file->phony)
{ {
struct file *f; struct file *f;
@ -656,7 +655,7 @@ notice_finished_file (file)
d->file->updated = 1; d->file->updated = 1;
d->file->update_status = file->update_status; d->file->update_status = file->update_status;
if (!d->file->phony) if (ran && !d->file->phony)
/* Fetch the new modification time. /* Fetch the new modification time.
We do this instead of just invalidating the cached time We do this instead of just invalidating the cached time
so that a vpath_search can happen. Otherwise, it would so that a vpath_search can happen. Otherwise, it would