In GNU Make, it is possible to write a rule with more than one target. However, the meaning of this is the same as writing multiple rules that are identical except each has only one target. So if more than one of the targets is out-of-date, the command part of the rule will be executed more than one time.

There are programs that can create more than one output file when run. For example, "gcc -c foo.c bar.c" produces both foo.o and bar.o. For gcc, the only reason to use this feature would be to speed up compilation. Another example is "link.exe /pdb:bin/foo.pdb /out:bin/foo.exe src/foo.obj". In this example, both foo.pdb and foo.exe must be created by a single execution of link.exe.

GNU Make should have a syntax to support this concept: that a single command can update more than one target. There should be enough flexibility in the syntax to support both types of use.