bug-make
[Top][All Lists]
Advanced

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

[bug #31621] interaction of pattern rules and globs


From: Petr Machata
Subject: [bug #31621] interaction of pattern rules and globs
Date: Thu, 11 Nov 2010 15:39:37 +0000
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.12) Gecko/20101027 Fedora/3.6.12-1.fc13 Firefox/3.6.12

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

                 Summary: interaction of pattern rules and globs
                 Project: make
            Submitted by: pmachata
            Submitted on: Чтв 11 Ноя 2010 15:39:36
                Severity: 3 - Normal
              Item Group: Bug
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: CVS
        Operating System: None
           Fixed Release: None
           Triage Status: None

    _______________________________________________________

Details:

make doesn't seem to like pattern rule prerequisites that use globs.  I found
no reference in the manual that states that this should be supported, so I
don't actually know if what I'm asking for is a bug fix or enhancement. 
Anyway:


$ find xxx
xxx
xxx/sums
xxx/sums/zzz.md5
$ make -rd -f x.mk xxx/md5
Reading makefiles...
Reading makefile `x.mk'...
# the following are my two debug printfs
-> parse_file_seq %/md5
-> parse_file_seq %/sums/*.md5
Updating makefiles....
<--- snip --->
Updating goal targets....
Considering target file `xxx/md5'.
 File `xxx/md5' does not exist.
 Looking for an implicit rule for `xxx/md5'.
 Trying pattern rule with stem `xxx'.
 Trying implicit prerequisite `xxx/sums/*.md5'.
 Trying pattern rule with stem `xxx'.
 Trying implicit prerequisite `xxx/sums/*.md5'.
 Looking for a rule with intermediate file `xxx/sums/*.md5'.
  Avoiding implicit rule recursion.
 No implicit rule found for `xxx/md5'.
 Finished prerequisites of target file `xxx/md5'.
Must remake target `xxx/md5'.
make: *** No rule to make target `xxx/md5'.  Stop.


... the problem being that the wildcard expansion takes place in
read.c:parse_file_seq, when reading the makefile.  That doesn't find any file
matching the %/... path, so it leaves the wild card as is, and later after the
stem-replacement, make looks for xxx/sums/*.md5.




    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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