URL: <https://savannah.gnu.org/bugs/?62936>
Summary: Confusing description of chained rules in the manual Project: make Submitter: None Submitted: Mon 22 Aug 2022 09:05:20 AM UTC Severity: 3 - Normal Item Group: Documentation Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: 4.3 Operating System: None Fixed Release: None Triage Status: None _______________________________________________________ Follow-up Comments: ------------------------------------------------------- Date: Mon 22 Aug 2022 09:05:20 AM UTC By: Anonymous Trying to understand a bug in my Makefile, I consulted the manual section on chained rules (https://www.gnu.org/software/make/manual/html_node/Chained-Rules.html#Chained-Rules) and found the following paragraph, which is more confusing than helpful: > The first difference is what happens if the intermediate file > does not exist. If an ordinary file b does not exist, and make > considers a target that depends on b, it invariably creates b > and then updates the target from b. But if b is an intermediate > file, then make can leave well enough alone. It won’t bother > updating b, or the ultimate target, unless some prerequisite > of b is newer than that target or there is some other reason > to update that target. The whole paragraph is about the case of an intermediate file that does not exist. But then there are references to updating the file - you cannot update a non-existing file! Also, "make can leave well enough alone" sounds more like the description of a person having a bad day than of a deterministically running computer program. Unfortunately, I cannot propose a better formulation because I don't know how Make deals with this case - I really need the manual to help me out! Cheers, Konrad. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?62936> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/