help-make
[Top][All Lists]
Advanced

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

Re: The explanation of order-only prerequisites is not clear


From: grischka
Subject: Re: The explanation of order-only prerequisites is not clear
Date: Thu, 09 Sep 2010 13:37:04 +0200
User-agent: Thunderbird 2.0.0.23 (Windows/20090812)

> First, this is not more clear than the manual.
> [...]
> Second, it's flat-out wrong.

... And third, the manual is flat-out wrong too.

To begin with, the chapter "4.3 Types of Prerequisites" is not as it says
about "Types" but only about that one special type.  The other type it
says is "described in the previous section" which is (at least structurally)
not true either because the previous section is about "Rule Syntax" and not
about prerequisites.

Then, to introduce this new type it first introduces another concept
which however is equally new, that is the concept or "order".  This
concept of "order" is not explained anywhere else which is not surprising
as it actually conflicts with the fundamental deal of the make program
itself, which is to calculate the order of invocation automatically
whereas the makefile writer merely specifies dependencies.

Moreover the terms "prerequisite" and "dependency" are synonyms for the
most part of the manual but this chapter now tries to take advantage
from making a strange distinction:  As it reads, there are prerequisites
that don't constitute a dependency but an "order only".  This is plain
wrong of course.  Interestingly enough, in the code it is not "order_only"
but "ignore_mtime" and one short comment explains it better than the whole
manual chapter:

file.c:433:
  /* Files that follow '|' [...] satisfy the dependency by existing:
     their modification times are irrelevant.  */

See, still a dependency, just a more "relaxed" one.

The manual however (intentionally?) hides this simple fact, in a chapter
where the headline doesn't fit the contents, by introducing a new concept
that fails to explain the feature, followed by an example that fails to
explain the concept (necessarily).

--- grischka



reply via email to

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