Module Name:    src
Committed By:   rillig
Date:           Tue Dec 28 14:06:43 UTC 2021

Modified Files:
        src/usr.bin/make: make.h parse.c suff.c

Log Message:
make: extract OP_NOTARGET into separate function

No binary change, except for line numbers in assertions.


To generate a diff of this commit:
cvs rdiff -u -r1.279 -r1.280 src/usr.bin/make/make.h
cvs rdiff -u -r1.588 -r1.589 src/usr.bin/make/parse.c
cvs rdiff -u -r1.360 -r1.361 src/usr.bin/make/suff.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/make.h
diff -u src/usr.bin/make/make.h:1.279 src/usr.bin/make/make.h:1.280
--- src/usr.bin/make/make.h:1.279	Mon Dec 27 18:26:22 2021
+++ src/usr.bin/make/make.h	Tue Dec 28 14:06:42 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: make.h,v 1.279 2021/12/27 18:26:22 rillig Exp $	*/
+/*	$NetBSD: make.h,v 1.280 2021/12/28 14:06:42 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -360,8 +360,6 @@ typedef enum GNodeType {
 	OP_DEPS_FOUND	= 1 << 24,
 	/* Node found while expanding .ALLSRC */
 	OP_MARK		= 1 << 23,
-
-	OP_NOTARGET	= OP_NOTMAIN | OP_USE | OP_EXEC | OP_TRANSFORM
 } GNodeType;
 
 typedef struct GNodeFlags {
@@ -815,6 +813,14 @@ GNode_IsError(const GNode *gn)
 	return gn->made == ERROR || gn->made == ABORTED;
 }
 
+MAKE_INLINE bool MAKE_ATTR_USE
+GNode_IsMainCandidate(const GNode *gn)
+{
+	/* XXX: What about OP_USEBEFORE? */
+	return (gn->type & (OP_NOTMAIN | OP_USE | OP_EXEC | OP_TRANSFORM)) ==
+	       0;
+}
+
 MAKE_INLINE const char * MAKE_ATTR_USE
 GNode_VarTarget(GNode *gn) { return GNode_ValueDirect(gn, TARGET); }
 MAKE_INLINE const char * MAKE_ATTR_USE

Index: src/usr.bin/make/parse.c
diff -u src/usr.bin/make/parse.c:1.588 src/usr.bin/make/parse.c:1.589
--- src/usr.bin/make/parse.c:1.588	Tue Dec 28 01:27:37 2021
+++ src/usr.bin/make/parse.c	Tue Dec 28 14:06:42 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: parse.c,v 1.588 2021/12/28 01:27:37 rillig Exp $	*/
+/*	$NetBSD: parse.c,v 1.589 2021/12/28 14:06:42 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -109,7 +109,7 @@
 #include "pathnames.h"
 
 /*	"@(#)parse.c	8.3 (Berkeley) 3/19/94"	*/
-MAKE_RCSID("$NetBSD: parse.c,v 1.588 2021/12/28 01:27:37 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.589 2021/12/28 14:06:42 rillig Exp $");
 
 /* types and constants */
 
@@ -154,8 +154,7 @@ typedef enum ParseSpecial {
 	SP_INCLUDES,	/* .INCLUDES; not mentioned in the manual page */
 	SP_INTERRUPT,	/* .INTERRUPT */
 	SP_LIBS,	/* .LIBS; not mentioned in the manual page */
-	/* .MAIN and we don't have anything user-specified to make */
-	SP_MAIN,
+	SP_MAIN,	/* .MAIN and no user-specified targets to make */
 	SP_META,	/* .META */
 	SP_MFLAGS,	/* .MFLAGS or .MAKEFLAGS */
 	SP_NOMETA,	/* .NOMETA */
@@ -187,8 +186,8 @@ typedef ListNode SearchPathListNode;
 /* result data */
 
 /*
- * The main target to create. This is the first target on the first
- * dependency line in the first makefile.
+ * The main target to create. This is the first target defined in any of the
+ * makefiles.
  */
 static GNode *mainNode;
 
@@ -981,7 +980,7 @@ FindMainTarget(void)
 
 	for (ln = targets->first; ln != NULL; ln = ln->next) {
 		GNode *gn = ln->datum;
-		if (!(gn->type & OP_NOTARGET)) {
+		if (GNode_IsMainCandidate(gn)) {
 			DEBUG1(MAKE, "Setting main node to \"%s\"\n", gn->name);
 			mainNode = gn;
 			Targ_SetMain(gn);

Index: src/usr.bin/make/suff.c
diff -u src/usr.bin/make/suff.c:1.360 src/usr.bin/make/suff.c:1.361
--- src/usr.bin/make/suff.c:1.360	Wed Dec 15 12:58:01 2021
+++ src/usr.bin/make/suff.c	Tue Dec 28 14:06:42 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: suff.c,v 1.360 2021/12/15 12:58:01 rillig Exp $	*/
+/*	$NetBSD: suff.c,v 1.361 2021/12/28 14:06:42 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -115,7 +115,7 @@
 #include "dir.h"
 
 /*	"@(#)suff.c	8.4 (Berkeley) 3/21/94"	*/
-MAKE_RCSID("$NetBSD: suff.c,v 1.360 2021/12/15 12:58:01 rillig Exp $");
+MAKE_RCSID("$NetBSD: suff.c,v 1.361 2021/12/28 14:06:42 rillig Exp $");
 
 typedef List SuffixList;
 typedef ListNode SuffixListNode;
@@ -741,7 +741,7 @@ UpdateTarget(GNode *target, GNode **inou
 	char *ptr;
 
 	if (*inout_main == NULL && *inout_removedMain &&
-	    !(target->type & OP_NOTARGET)) {
+	    GNode_IsMainCandidate(target)) {
 		DEBUG1(MAKE, "Setting main node to \"%s\"\n", target->name);
 		*inout_main = target;
 		Targ_SetMain(target);

Reply via email to