Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-04-22 20:06:07 -0700 (Tue, 22 Apr 2003)
Revision: 34
Log message:
.This is a minor fix, but in my mind it finishes the final omake
.feature. All that is left in alpha-test is for the PRL group to
.comment on features/bugs. Please do, so we can release!
.
.---The final feature description---
.
.Here's a description of the problem addressed here.
.
.Rules normally have an or-and semantics. Consider the following rule:
.
.x y z: a b c
. commands
.
.This means to build any of x y z (a disjunct),
.dependencies are a b c (a conjunct).
.
.But some rules are conjuctive, like the yacc rule:
.
.%.c %.h: %.y
. yacc $*.y
.
.This rule builds both files with suffixes .c, .h. Normal make will
.run yacc just once, because the file mtimes do the right thing.
.
.Before this commit, omake would run twice, adhering to the strict semantics.
.This commit fixes it by examining the target files before and after. If a
.file on the left is modified, it is added to the cache/memo. This eliminates
.the duplicate yacc call.