imake
A tool which generates Makefiles from a template, a set of cpp macros, and a per-directory input file called an Imakefile. This allows machine dependencies (such has compiler options, alternate command names, and special make rules) to be kept separate from the descriptions of the various items to be built.
imake is distributed with, and used extensively by, the X Window System.