Imake was a build tool used to generate Makefiles for software to be portable to a range of operating systems. It was originally developed to build the X Window System, and was adopted by many X applications, and some non-X software such as the tcsh shell. It required maintaining a per-platform config file containing all the information about which interfaces were used on each platform, and thus did not scale well from the commercial Unix world it was designed for to the explosion of free OS distros, nor to handling interface choices that were needed by new programs. The X Window System itself moved from Imake to the GNU autotools (autoconf, automake, libtool, pkg-config) in 2005, and while X.Org still provides Imake for existing software that needs it, has deprecated it and recommends against using it in new software.
Software that was to be built with imake distributed files named Imakefile, one in each directory that needed a Makefile. The file was basically a Makefile format file in which certain sections or text would be generated using C language style macros which were expanded via the cpp preprocessor.
To build such software, users would usually run the command xmkmf which is a shell script wrapper around the imake command. imake in turn determined which platform specific defines needed to be passed to cpp, set up the include paths for the imake config files which cpp would include to find the macro definitions, and then used cpp to generate Makefile files in each subdirectory. Users could then run "make" or "make install" as necessary to build and install the software.
- X.Org download site for imake & config file releases
- X.Org git repo for imake
- X.Org git repo for imake config files