To turn this around to a more positive direction....
Imake, and in particular the way it was used in X was of course a
product of its times -- it evolved in a world with much more limited
tools to build on, and in a world with far more variety in terms of
target systems to support. As it was it did a remarkably good job of
configuring and building X11 for supported systems, and adding support
for a typical "modern" (at the time) Unix-like system was actually quite
easy.
If PMake (now called BSD Make) had been fully fledged a wee bit earlier
it could have done the job of Imake (as well as old make at the same
time of course, without the rickety help of cpp), and perhaps have even
allowed the creation of a somewhat more elegant set of macros to support
the full range of X11 and its target systems. It would even have
allowed for parallel builds of what was at the time probably one of the
larger and more complex system components around.
Modern GNU Make has similar (though some of us would argue more limited
and less elegant) features that might have sufficed for X11, but it was
also too late to the game I think.
Today NetBSD supports a BSD Make build system for the full Xorg suite
including Xserver which works quite well, albeit only directly
supporting one target system in its current form.
--
Greg A. Woods <gwoods(a)acm.org>
Kelowna, BC +1 250 762-7675 RoboHack <woods(a)robohack.ca>
Planix, Inc. <woods(a)planix.com> Avoncote Farms <woods(a)avoncote.ca>