diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2001-11-22 21:18:11 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2001-11-22 21:18:11 +0000 |
commit | ec71a36688c1b5a0cfcfadc90f254d807c300a1e (patch) | |
tree | b5dab43999163bfa959fc6af923f12cf079b44f8 /usr.bin/make/gnode.h | |
parent | b758900e6e062ebe70d5e28898dcf4dfbf40e768 (diff) |
Explicitly mark nodes whose commands have been filled with
implicit (suffix) rules. Then, only expand the IMPSRC/< variable
if the node has been marked.
This matches what Single Unix 2 and common sense say: implicit rules
shouldn't count when an explicit rule has been found (an explicit rule
being a full-scale dependency, with some associated commands)
Note that Single Unix leaves the `PREFIX' question open, so we leave
the PREFIX code as it is.
This fixes regression case mk14, which now fails as it should.
This is just a bug-fix. Some more correct (and faster) code should
probably be substituted. Namely, right now, the suffix code is too
greedy, whereas it should test for explicit rules earlier, and not
even bother instantiating implicit rules from templates when they
duplicate actual existing rules.
ok millert@
Diffstat (limited to 'usr.bin/make/gnode.h')
-rw-r--r-- | usr.bin/make/gnode.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/usr.bin/make/gnode.h b/usr.bin/make/gnode.h index 17d94d72be2..4087a885991 100644 --- a/usr.bin/make/gnode.h +++ b/usr.bin/make/gnode.h @@ -1,7 +1,7 @@ #ifndef GNODE_H #define GNODE_H /* $OpenPackages$ */ -/* $OpenBSD: gnode.h,v 1.2 2001/09/19 10:58:07 mpech Exp $ */ +/* $OpenBSD: gnode.h,v 1.3 2001/11/22 21:18:10 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. @@ -176,6 +176,7 @@ struct GNode_ { * commands for a target */ #define OP_SAVE_CMDS 0x04000000 /* Saving commands on .END (Compat) */ #define OP_DEPS_FOUND 0x02000000 /* Already processed by Suff_FindDeps */ +#define OP_IS_SUFFIX 0x01000000 /* Cmds filled by suffix rule */ /* * OP_NOP will return true if the node with the given type was not the |