=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/make/engine.c,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- src/usr.bin/make/engine.c 2013/05/25 11:54:14 1.44 +++ src/usr.bin/make/engine.c 2013/05/30 08:58:38 1.45 @@ -1,4 +1,4 @@ -/* $OpenBSD: engine.c,v 1.44 2013/05/25 11:54:14 espie Exp $ */ +/* $OpenBSD: engine.c,v 1.45 2013/05/30 08:58:38 espie Exp $ */ /* * Copyright (c) 2012 Marc Espie. * @@ -286,9 +286,8 @@ void Make_TimeStamp(GNode *parent, GNode *child) { - if (is_strictly_before(parent->cmtime, child->mtime)) { + if (is_strictly_before(parent->youngest->mtime, child->mtime)) { parent->youngest = child; - parent->cmtime = child->mtime; } } @@ -491,17 +490,17 @@ printf(".EXEC node..."); } oodate = true; - } else if (is_strictly_before(gn->mtime, gn->cmtime) || - (is_out_of_date(gn->cmtime) && + } else if (is_strictly_before(gn->mtime, gn->youngest->mtime) || + (gn == gn->youngest && (is_out_of_date(gn->mtime) || (gn->type & OP_DOUBLEDEP)))) { /* * A node whose modification time is less than that of its - * youngest child or that has no children (cmtime == - * OUT_OF_DATE) and either doesn't exist (mtime == OUT_OF_DATE) + * youngest child or that has no children (gn->youngest == gn) + * and either doesn't exist (mtime == OUT_OF_DATE) * or was the object of a :: operator is out-of-date. */ if (DEBUG(MAKE)) { - if (is_strictly_before(gn->mtime, gn->cmtime)) + if (is_strictly_before(gn->mtime, gn->youngest->mtime)) printf("modified before source(%s)...", gn->youngest->name); else if (is_out_of_date(gn->mtime))