diff options
author | Paul Smith <psmith@gnu.org> | 2007-08-15 13:53:53 +0000 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2007-08-15 13:53:53 +0000 |
commit | 19b6504f8a92ec9db6330976dba85804e9c18d6e (patch) | |
tree | 77e2083b69f3e020f68260352c51f5f41832d10d /remake.c | |
parent | bb4d040fadcb76a8828eaf24b4f0557ec11f44fb (diff) | |
download | gunmake-19b6504f8a92ec9db6330976dba85804e9c18d6e.tar.gz |
Incorporate Icarus Sparry's fix for 3330 and 15919, and test cases.
One of our translations disappeared from the translations site so remove it.
The fdl.texi file was changed to not contain any @node entries, so add some
around it in make.texi.
Diffstat (limited to 'remake.c')
-rw-r--r-- | remake.c | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -982,6 +982,12 @@ check_dep (struct file *file, unsigned int depth, necessary, and see whether any of them is more recent than the file on whose behalf we are checking. */ struct dep *lastd; + int deps_running = 0; + + /* Reset this target's state so that we check it fresh. It could be + that it's already been checked as part of an order-only + prerequisite and so wasn't rebuilt then, but should be now. */ + set_command_state (file, cs_not_started); lastd = 0; d = file->deps; @@ -1020,14 +1026,17 @@ check_dep (struct file *file, unsigned int depth, if (d->file->command_state == cs_running || d->file->command_state == cs_deps_running) - /* Record that some of FILE's deps are still being made. - This tells the upper levels to wait on processing it until - the commands are finished. */ - set_command_state (file, cs_deps_running); + deps_running = 1; lastd = d; d = d->next; } + + if (deps_running) + /* Record that some of FILE's deps are still being made. + This tells the upper levels to wait on processing it until the + commands are finished. */ + set_command_state (file, cs_deps_running); } } |