bug-make
[Top][All Lists]
Advanced

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

[bug #51311] Checking search retries for implicit make rules


From: Markus Elfring
Subject: [bug #51311] Checking search retries for implicit make rules
Date: Sun, 25 Jun 2017 15:40:48 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0

URL:
  <http://savannah.gnu.org/bugs/?51311>

                 Summary: Checking search retries for implicit make rules
                 Project: make
            Submitted by: elfring
            Submitted on: Sun 25 Jun 2017 09:40:47 PM CEST
                Severity: 3 - Normal
              Item Group: Bug
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: 4.2.1
        Operating System: Any
           Fixed Release: None
           Triage Status: None

    _______________________________________________________

Details:

The documentation contains the following information
<https://www.gnu.org/software/make/manual/html_node/Goals.html>:
“…
Any target in the makefile may be specified as a goal (…). Even targets not
in the makefile may be specified, if make can find implicit rules that say how
to make them.
…”


my_info?=echo
my_compilation?=echo
my_preparation?=cat
footer?=MOTD.txt
prepared_file?=MOTD.in

MOTD.info: ${footer}
        ${my_info} "$(shell date): Is this acceptable?: $(shell cat ${footer})" 
> $@

MOTD%.log: MOTD%.txt MOTD%.in
        ${my_compilation} "$<: $(shell cat ${prepared_file} ${footer})" > $@

${prepared_file}: MOTD.draft
        ${my_preparation} $< > $@


Test result:

address@hidden:~/Projekte/Bau> LANG=C make --no-builtin-rules -f
../GNU/make/rule-check3.make -d MOTD.log
…
Updating goal targets....
Considering target file 'MOTD.log'.
 File 'MOTD.log' does not exist.
 Looking for an implicit rule for 'MOTD.log'.
 No implicit rule found for 'MOTD.log'.
 Finished prerequisites of target file 'MOTD.log'.
Must remake target 'MOTD.log'.
make: *** No rule to make target 'MOTD.log'.  Stop.



I would interpret the second rule as a make pattern rule
<https://www.gnu.org/software/make/manual/html_node/Pattern-Match.html> which
is also categorised as an implicit rule then. An explicit make rule does not
exist in this small test example for the specified (non-default) goal. So I
would expect that another search try will be performed.
Why do I observe a mismatch there?

How much does it matter in this test case that I would like to try a
prerequisite out which should contain two “patterns”?




    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?51311>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

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