set_out_of_date(gn->mtime);
ts_set_out_of_date(gn->mtime);
Arch_MemMTime(gn)    GNode	  *gn;{    LstNode	  ln;    for (ln = Lst_First(&gn->parents); ln != NULL; ln = Lst_Adv(ln)) {	GNode	*pgn;	char	*nameStart,		*nameEnd;	pgn = (GNode *)Lst_Datum(ln);	if (pgn->type & OP_ARCHV) {	    /* If the parent is an archive specification and is being made	     * and its member's name matches the name of the node we were	     * given, record the modification time of the parent in the	     * child. We keep searching its parents in case some other	     * parent requires this child to exist...  */	    if ((nameStart = strchr(pgn->name, '(') ) != NULL) {		nameStart++;		nameEnd = strchr(nameStart, ')');	    } else		nameEnd = NULL;	    if (pgn->make && nameEnd != NULL &&		strncmp(nameStart, gn->name, nameEnd - nameStart) == 0 &&		gn->name[nameEnd-nameStart] == '\0')		    gn->mtime = Arch_MTime(pgn);	} else if (pgn->make) {	    /* Something which isn't a library depends on the existence of	     * this target, so it needs to exist.  */	    set_out_of_date(gn->mtime);	    break;	}    }    return gn->mtime;}