Update of bug #46596 (project make): Status: None => Duplicate Open/Closed: Open => Closed
_______________________________________________________ Follow-up Comment #4: You can simplify your example down to this: all: a a: b ; cp $< $@ b: c c: ; touch b In this makefile you're lying to make by telling it that running the final recipe will create a target "c", but in reality it doesn't do that; it creates a target "b". Make knows of no way to create target "b" itself (because the rule for "b" has no recipe). I think this may be an example of bug #41273; when the "b" file already exists on disk then the last modified time will be cached internally to make. Because there is no recipe to update the "b" target, make will never invalidate the cached modified time for "b". So, if the timestamp of "b" when make starts up is older than "a", then "a" will not be rebuilt. If the timestamp of "b" when make starts up is newer than "a", then "a" will be rebuilt. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?46596> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make