# IMBOOT manual page

## Table of Contents

- NAME
- SYNOPSIS
- DESCRIPTION
- OPTIONS
- EXAMPLES
- WHO-TO-BLAME
- BUGS

## NAME

imboot - bootstrap a Makefile from an Imakefile

## SYNOPSIS

imboot [ -c name ] [ -C name ] [ -Ddefine ] [ -Idir ] [ -d ] [ -u ] [ topdir [ curdir ] ]

## DESCRIPTION

imboot is a general-purpose imake bootstrapper for generating a Makefile from an Imakefile. By default, imboot looks for configuration files in a private project-specific directory (i.e., located within the current project's source tree). The -c (or -C) option may be given to tell imboot to use a set of publicly installed configuration files instead of (or in addition to) any files in the project's private directory.

The private configuration file directory, if used, is taken to be config or config/cf at the top of the project source tree. config is the usual location, but by looking in config/cf as well, imboot works within the X11R6 source tree. The public configuration file directory will be one of those located under /usr/local/lib/config. The name of the directory is specified by the -c and -C options.

The topdir argument specifies the location of the project root. The default is "." and thus may be omitted if the current directory is the project root. Otherwise it may be specified as an absolute pathname or as a path relative to the current directory. curdir, if given, specifies the name of the current directory, relative to the project root. curdir is usually omitted.

## OPTIONS

imboot understands the following options:

-c name
  Use the named set of public configuration files instead of the files in the project's private configuration file directory.
-C name
  Use the named set of public configuration files in addition to the files in the project's private configuration file directory. imboot tells imake to look in the private directory under the project root before looking in the public directory when searching for configuration files. The intent is to support an extensible configuration file architecture such that the public files define a baseline configuration that individual projects can extend or override by providing project-specific information in files in their private configuration file directory.
-Ddefine
  This option is passed directly to imake, which passes it to cpp.
-Idir
  This option is passed directly to imake, which passes it to cpp. It can be used to specify additional directories in which to look to look for configuration files.
-d
  Force definition of UseInstalled. This is shorthand for -DUseInstalled, which is turned on automatically when you specify -c or -C.
-u
  Force undefinition of UseInstalled.

For the -c name or -C name options, the name argument may also be an absolute pathname, in which case it is used as given for locating configuration files.

## EXAMPLES

Suppose you want to use a set of public configuration files named XYZ. If you're in the root directory of a project, you can bootstrap a Makefile using the XYZ configuration files like this:

% imboot -c XYZ

If you're in a subdirectory, say, src/prog1 (two levels down), the location of the project root is ../.. and you bootstrap the Makefile with:

% imboot -c XYZ ../..

If the XYZ configuration files use an extensible architecture and your project has private configuration files in a config directory, you can use the private files as well. The commands just shown become:

% imboot -C XYZ
% imboot -C XYZ ../..

## WHO-TO-BLAME

Paul DuBois, dubois@primate.wisc.edu

## BUGS

It's difficult to get -D or -I arguments that require quotes passed through to imake.