
Installation and Search Path Configuration
------------------------------------------

The _config.ss_ library of the "config" collection specifies the
location of directories (such as the main documentation directory) and
also directory search paths (such as a list of directories to search
for documentation).

 Note: instead of `require'ing "config.ss" directly, use the "dirs.ss"
 library from "setup", which combines information from "config.ss" and
 other sources.

The "config.ss" module must export the following values:

  doc-dir - a `delay'ed path/string/bytes for the main documentation
   directory; it defaults to a "doc" sibling directory of the main
   collection directory.

  lib-dir - a `delay'ed path/string/bytes for the main directory
   containing C libraries and build information; it defaults to a
   "lib" sibling directory of the main collection directory.

  dll-dir - a `delay'ed path/string/bytes for a directory containing
   Unix shared libraries for the main executable; it defaults to the
   main C-library directory

  include-dir - a `delay'ed path/string/bytes for the main directory
   containing C header files; it defaults to an "include" sibling
   directory of the main collection directory.

  bin-dir - a `delay'ed path/string/bytes for the main directory
   containing executables; it defaults to a "bin" sibling directory of
   the main collection directory.

  doc-search-dirs - a `delay'ed list of paths/strings/bytes/#f
   representing the search path for documentation; each #f in the
   list, if any, is replaced with the default search path, which is
   the user- and version-specific "doc" directory followed by the main
   documentation directory.

  lib-search-dirs - like `doc-search-dirs', but for directories
   containing C libraries and other build information

  include-search-dirs - like `doc-search-dirs', but for directories
   containing C header files

  absolute-installation? - a (simple, non-delayed) boolean that is
   true if this installation is using absolute path names

  cgc-suffix - a string used as the suffix (before the actual suffix,
   such as ".exe") for a CGC executable; use Windows-style casing, and
   the string will be downcased as appropriate (e.g., for a Unix
   binary name); #f means that if the "mzscheme" binary identifies
   itself as CGC, then the suffix is "", otherwise it is "CGC"

  3m-suffix - analogous to `cgc-suffix', but for 3m; #f means that
   if the "mzscheme" binary identifies itself as CGC, then the suffix
   is "3m", otherwise it is ""

In all cases, the value of an exported name can be a `delay'ed #f
(instead of a path/string/bytes or list) to indicate the default.

A user can override an installation's "config.ss" though a "config"
collection in the user's collection directory (which normally takes
precedence over the main collection directory).


The _configtab.ss_ library of the "setup" collection defines a
language module that can be used to implement "config.ss" files. When
_configtab.ss_ is used as a language module, the module body must
consist of a sequence of

   (define id val)

declarations, where each `id' is one of the names that the "config.ss"
module must export, and `val' is an expression for the value (which
will be automatically wrapped with `delay' when needed). If a required
export has no corresponding `define', a definition with #f is inserted
automatically.
