bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #60188] Explicit file built by an implicit rule is not intermediate


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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]