C preprocessor (cpp) interface to the make utility. imake (“include make”) solves the portability problem of make by allowing machine dependencies to be kept in a central set of configuration files, separate from the descriptions of the various items to be built. The targets are contained in the Imakefile, a machine-independent description of the targets to be built, written as cpp macros. imake uses cpp to process the configuration files and the Imakefile, and to generate machine-specific Makefiles, which can then be used by make.

One of the configuration files is a template file, a master file for imake. This template file (default is Imake.tmpl) #includes the other configuration files that contain machine dependencies such as variable assignments, site definitions, and cpp macros, and directs the order in which the files are processed. Each file affects the interpretation of later files and sections of Imake.tmpl. Comments may be included in imake configuration files, but the initial # needs to be preceded with an empty C comment:


For more information, see cpp and make. Also check out the Nutshell Handbook Software Portability with imake (O’Reilly).



Execute the generated Makefile. Default is to leave this to the user.

-f filename

Name of per-directory input file. Default is Imakefile.

-s filename

Name of make description file to be generated. If filename is a -, the output is written to stdout. The default is to generate, but not ...

Get Linux in a Nutshell, Fourth Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.