} else if (is_before(pgn->mtime, cgn->mtime) || (!is_before(cgn->mtime, now) && cgn->made == MADE))
} else if (is_strictly_before(pgn->mtime, cgn->mtime) || (!is_strictly_before(cgn->mtime, now) && cgn->made == MADE))
MakeAddAllSrc(cgnp, pgnp)    void *cgnp; /* The child to add */    void *pgnp; /* The parent to whose ALLSRC variable it should be */			/* added */{    GNode	*cgn = (GNode *)cgnp;    GNode	*pgn = (GNode *)pgnp;    if ((cgn->type & (OP_EXEC|OP_USE|OP_INVISIBLE)) == 0) {	const char *child;	if (OP_NOP(cgn->type) ||	    (child = Varq_Value(TARGET_INDEX, cgn)) == NULL) {	    /*	     * this node is only source; use the specific pathname for it	     */	    child = cgn->path != NULL ? cgn->path : cgn->name;	}	Varq_Append(ALLSRC_INDEX, child, pgn);	if (pgn->type & OP_JOIN) {	    if (cgn->made == MADE) {		Varq_Append(OODATE_INDEX, child, pgn);	    }	} else if (is_before(pgn->mtime, cgn->mtime) ||		   (!is_before(cgn->mtime, now) && cgn->made == MADE))	{	    /*	     * It goes in the OODATE variable if the parent is younger than the	     * child or if the child has been modified more recently than	     * the start of the make. This is to keep pmake from getting	     * confused if something else updates the parent after the	     * make starts (shouldn't happen, I know, but sometimes it	     * does). In such a case, if we've updated the kid, the parent	     * is likely to have a modification time later than that of	     * the kid and anything that relies on the OODATE variable will	     * be hosed.	     *	     * XXX: This will cause all made children to go in the OODATE	     * variable, even if they're not touched, if RECHECK isn't defined,	     * since cgn->mtime is set to now in Make_Update. According to	     * some people, this is good...	     */	    Varq_Append(OODATE_INDEX, child, pgn);	}    }}