for( actions = t->actions; actions; actions = actions->next ) if( actions->action->status > t->status ) t->status = actions->action->status;
for( actions = pState->t->actions; actions; actions = actions->next ) if( actions->action->status > pState->t->status ) pState->t->status = actions->action->status;
make1c( TARGET *t ){	CMD	*cmd = (CMD *)t->cmds;	/* If there are (more) commands to run to build this target */	/* (and we haven't hit an error running earlier comands) we */	/* launch the command with execcmd(). */		/* If there are no more commands to run, we collect the status */	/* from all the actions then report our completion to all the */	/* parents. */	if( cmd && t->status == EXEC_CMD_OK )	{	    if( DEBUG_MAKE )		if( DEBUG_MAKEQ || ! ( cmd->rule->actions->flags & RULE_QUIETLY ) )	    {		printf( "%s ", cmd->rule->name );		list_print( lol_get( &cmd->args, 0 ) );		printf( "\n" );	    }	    if( DEBUG_EXEC )		printf( "%s\n", cmd->buf );	    if( globs.cmdout )		fprintf( globs.cmdout, "%s", cmd->buf );	    if( globs.noexec )	    {		make1d( t, EXEC_CMD_OK );	    } 	    else	    {		fflush( stdout );		execcmd( cmd->buf, make1d, t, cmd->shell );	    }	}	else	{	    TARGETS	*c;	    ACTIONS	*actions;	    /* Collect status from actions, and distribute it as well */	    for( actions = t->actions; actions; actions = actions->next )		if( actions->action->status > t->status )		    t->status = actions->action->status;	    for( actions = t->actions; actions; actions = actions->next )		if( t->status > actions->action->status )		    actions->action->status = t->status;	    /* Tally success/failure for those we tried to update. */	    if( t->progress == T_MAKE_RUNNING )		switch( t->status )	    {	    case EXEC_CMD_OK:		++counts->made;		break;	    case EXEC_CMD_FAIL:		++counts->failed;		break;	    }	    /* Tell parents dependent has been built */	    t->progress = T_MAKE_DONE;	    for( c = t->parents; c; c = c->next )		make1b( c->target );	}}