|
From: | Dmitry Goncharov |
Subject: | [bug #60188] Explicit file built by an implicit rule is not intermediate. |
Date: | Sun, 7 Mar 2021 14:02:25 -0500 (EST) |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 |
URL: <https://savannah.gnu.org/bugs/?60188> Summary: Explicit file built by an implicit rule is not intermediate. Project: make Submitted by: dgoncharov Submitted on: Sun 07 Mar 2021 07:02:23 PM UTC Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: SCM Operating System: None Fixed Release: None Triage Status: None _______________________________________________________ Details: Make incorrectly considers an explicit file built by an implicit rule as intermediate. $ cat makefile %.z: test.x touch $@ %.x: ; $ touch hello.z $ rm test.x rm: cannot remove 'test.x': No such file or directory $ make hello.z make: 'hello.z' is up to date. This is the relevant part of make -d output Considering target file 'hello.z'. Looking for an implicit rule for 'hello.z'. Trying pattern rule with stem 'hello'. Trying rule prerequisite 'test.x'. Trying pattern rule with stem 'hello'. Trying rule prerequisite 'test.x'. Looking for a rule with intermediate file 'test.x'. Avoiding implicit rule recursion. Trying pattern rule with stem 'test'. Found an implicit rule for 'hello.z'. Finished prerequisites of target file 'hello.z'. Prerequisite 'test.x' of target 'hello.z' does not exist. No need to remake target 'hello.z'. make considers test.x an intermediate and does not build hello.z. test.x should not be considered intermediate, because test.x is explicitly mentioned. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?60188> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/
[Prev in Thread] | Current Thread | [Next in Thread] |