make
# inputs: target, sources, command FOR each S in sources DO IF S is target for some rule THEN src = sourcesFor(S) cmd = commandFor(S) make(S, src, cmd) ELSE // no rule IF S exists THEN nothing to do ELSE error END END