Module Name: src Committed By: rillig Date: Sun Nov 8 09:48:52 UTC 2020
Modified Files: src/usr.bin/make: make.c Log Message: make(1): extract condition from GNode_IsOODate into separate function To generate a diff of this commit: cvs rdiff -u -r1.194 -r1.195 src/usr.bin/make/make.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.c diff -u src/usr.bin/make/make.c:1.194 src/usr.bin/make/make.c:1.195 --- src/usr.bin/make/make.c:1.194 Sun Nov 8 09:34:55 2020 +++ src/usr.bin/make/make.c Sun Nov 8 09:48:52 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: make.c,v 1.194 2020/11/08 09:34:55 rillig Exp $ */ +/* $NetBSD: make.c,v 1.195 2020/11/08 09:48:52 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -108,7 +108,7 @@ #include "job.h" /* "@(#)make.c 8.1 (Berkeley) 6/6/93" */ -MAKE_RCSID("$NetBSD: make.c,v 1.194 2020/11/08 09:34:55 rillig Exp $"); +MAKE_RCSID("$NetBSD: make.c,v 1.195 2020/11/08 09:48:52 rillig Exp $"); /* Sequence # to detect recursion. */ static unsigned int checked = 1; @@ -192,6 +192,23 @@ GNode_UpdateYoungestChild(GNode *gn, GNo gn->youngestChild = cgn; } +/* + * A node whose modification time is less than that of its + * youngest child or that has no children (youngestChild == NULL) and + * either doesn't exist (mtime == 0) and it isn't optional + * or was the object of a * :: operator is out-of-date. + * Why? Because that's the way Make does it. + */ +static Boolean +IsOlderThanYoungestChild(GNode *gn) +{ + return (gn->youngestChild != NULL && + gn->mtime < gn->youngestChild->mtime) || + (gn->youngestChild == NULL && + ((gn->mtime == 0 && !(gn->type & OP_OPTIONAL)) + || gn->type & OP_DOUBLEDEP)); +} + /* See if the node is out of date with respect to its sources. * * Used by Make_Run when deciding which nodes to place on the @@ -275,19 +292,7 @@ GNode_IsOODate(GNode *gn) } } oodate = TRUE; - } else if ((gn->youngestChild != NULL && - gn->mtime < gn->youngestChild->mtime) || - (gn->youngestChild == NULL && - ((gn->mtime == 0 && !(gn->type & OP_OPTIONAL)) - || gn->type & OP_DOUBLEDEP))) - { - /* - * A node whose modification time is less than that of its - * youngest child or that has no children (youngestChild == NULL) and - * either doesn't exist (mtime == 0) and it isn't optional - * or was the object of a * :: operator is out-of-date. - * Why? Because that's the way Make does it. - */ + } else if (IsOlderThanYoungestChild(gn)) { if (DEBUG(MAKE)) { if (gn->youngestChild != NULL && gn->mtime < gn->youngestChild->mtime) {