summaryrefslogtreecommitdiff
path: root/usr.bin/make/gnode.h
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2001-11-22 21:18:11 +0000
committerMarc Espie <espie@cvs.openbsd.org>2001-11-22 21:18:11 +0000
commitec71a36688c1b5a0cfcfadc90f254d807c300a1e (patch)
treeb5dab43999163bfa959fc6af923f12cf079b44f8 /usr.bin/make/gnode.h
parentb758900e6e062ebe70d5e28898dcf4dfbf40e768 (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.h3
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