Paul, Sorry, it took me a while to reply. My comments are below.
Paul D. Smith <[EMAIL PROTECTED]> writes: > The rules I mentioned in this list apply only between the two > prerequisites listed, in that pathway. If the "waited for" prerequisite > appears on any other path where it is not waited for, then it's fair > game for parallelization. I find it somewhat counter-intuitive. The appearance of the .WAIT "separator" places a restriction on what make can do. Having somewhere else a rule that relaxes this restriction is a bad idea. > I think...? I haven't had my tea yet this morning but I think that's > right. If I AM right, then I wonder if .WAIT is really necessary...? > > > Hm. Actually, the order-only version is much STRONGER than the .WAIT > version because it applies to the targets as a whole, not just to how > they appear within a single prerequisite list. That is, rewriting the > "odd" examples above this way would give very different answers than the > ones I gave before. > > > Can you be a little more detailed about what you were thinking, Boris? Ok, the ordinary TARGET:PREREQUISITE relationship can be defined as: (1) If TARGET is brought up-to-date then PREREQUISITE is brought up-to-date (2) If PREREQUISITE is newer then TARGET then TARGET is remade (3) If both TARGET and PREREQUISITE are remade then PREREQUISITE is made before TARGET. I realize that these definitions are not completely orthogonal but they are good enough for now. Then, the so-called order-only relationship, TARGET:|PREREQUISITE, would be obtained by removing (2) from the above: (1) If TARGET is brought up-to-date then PREREQUISITE is brought up-to-date (2) If both TARGET and PREREQUISITE are remade then PREREQUISITE is made before TARGET. Now, if we further relax the requirements and remove (1), we will get what I call "truly order-only" prerequisites: (2) If both TARGET and PREREQUISITE are remade then PREREQUISITE is made before TARGET. It is obvious that you don't need such "truly order-only" prerequisites unless you are doing something behind make's back. That's why I believe we don't need either .WAIT or "truly order-only" prerequisites. If I had to chose between the two I would go with the "truly order-only" prerequisites for it is a clean, coherent and easy to explain extension. For example, if the syntax for such a feature were TARGET:&PREREQUISITE then instead of all: foo fox foo: bar .WAIT baz fox: bar baz we would write all: foo fox foo fox: bar baz bar: &baz hth, -boris
signature.asc
Description: Digital signature
_______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make