From 44251cbc0c4c9899b8eb7eaec5c179c547f4d6b9 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 9 Sep 1992 20:46:57 +0000 Subject: Formerly remake.c.~35~ --- remake.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/remake.c b/remake.c index 355901b..7c08026 100644 --- a/remake.c +++ b/remake.c @@ -569,11 +569,24 @@ notice_finished_file (file) it had some recursive commands, and they lost. */ && file->update_status != 1) { - if (file->phony) - file->update_status = 0; + if (file->cmds != 0 && file->cmds->any_recurse) + { + /* If all the command lines were recursive, + we don't want to do the touching. */ + unsigned int i; + for (i = 0; i < file->cmds->ncommand_lines; ++i) + if (!file->cmds->lines_recurse[i]) + goto have_nonrecursing; + } else - /* Should set file's modification date and do nothing else. */ - file->update_status = touch_file (file); + { + have_nonrecursing: + if (file->phony) + file->update_status = 0; + else + /* Should set file's modification date and do nothing else. */ + file->update_status = touch_file (file); + } } if (!file->phony) -- cgit v1.2.3