bug-make
[Top][All Lists]
Advanced

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

[bug #27497] Later double-colon rules don't fire if earlier ones think t


From: Paul D. Smith
Subject: [bug #27497] Later double-colon rules don't fire if earlier ones think target is up to date
Date: Tue, 22 Sep 2009 15:50:56 +0000
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.14) Gecko/2009090217 Ubuntu/9.04 (jaunty) Firefox/3.0.14

Update of bug #27497 (project make):

                  Status:                    None => Not A Bug              
             Open/Closed:                    Open => Closed                 

    _______________________________________________________

Follow-up Comment #1:

Make is behaving exactly as it should here.  You are confused because you
think that a double-colon in a pattern rule behaves the same way as a
double-colon in an explicit rule... but it doesn't.  A rule like "%.a :: %.c"
is very different than "foo.a :: foo.c".  See the section "Match-Anything
Pattern Rules" in the GNU make manual.

Pattern rules don't need double-colon capabilities because they work like
that all the time.  For pattern rules, if make cannot use the pattern (that is
either the target doesn't match the pattern, or the target does match but the
prerequisites don't exist and make doesn't know how to build them) then it
skips that pattern and tries the next one.

The "order matters" rule is a feature.  From the GNU make manual section
"Introduction to Pattern Rules", you'll see:

>   The order in which pattern rules appear in the makefile is
> important since this is the order in which they are
> considered.  Of equally applicable rules, only the first one
> found is used.

    _______________________________________________________

Reply to this item at:

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

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





reply via email to

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