diff options
author | Roland McGrath <roland@redhat.com> | 1992-09-09 20:46:57 +0000 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 1992-09-09 20:46:57 +0000 |
commit | 44251cbc0c4c9899b8eb7eaec5c179c547f4d6b9 (patch) | |
tree | f693a338ad17a6c5d7f82acbe2e200450d556321 | |
parent | a1849dfc5fac2a0c2106ee084ecc6a303a997416 (diff) | |
download | gunmake-44251cbc0c4c9899b8eb7eaec5c179c547f4d6b9.tar.gz |
Formerly remake.c.~35~
-rw-r--r-- | remake.c | 21 |
1 files changed, 17 insertions, 4 deletions
@@ -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) |