This program configures and installs Reactor.  It produces an initial
guess of "cm3.cfg".

The initial version of "cm3.cfg" is produced from a bundled script
that provides hints about how to find directories, executables, and
libraries on the host system.  The bundled script is copied verbatim
into the resulting cm3.cfg, except sections delimited by BEGIN_CONFIG
and END_CONFIG.  These sections define the search rules.  The
relevant grammar is:

   <config section> ::= BEGIN_CONFIG <title> { <config rule> } END_CONFIG
   <title>          ::= <quake string>
   <config rule>    ::= <key> { <arg> }
   <key>            ::= <quake integer>
   <arg>            ::= <quake string>

The first rule that matches is used as the configuration value.  The
user is asked to confirm the guess.

The recognized rules are:

   0 "foo"         => return the program named "foo" on the current
                      search path.

   1 ".foo"        => return the program that opens files with
                      the ".foo" extension in the registry.

   2 ".foo", "baz" => return the directory named "baz" that is a sibling
                      of the program that opens files with the ".foo"
                      extension in the registry.

   3 ".foo", "baz" => return the full path of the directory named "baz"
                      that is a sibling of the program that opens
                      files with the ".foo" extension in the registry.

   4 "foo", "baz"  => return the program named "baz" in the directory
                      defined by the environment variable "$foo".

   5 "foo", "baz"  => return the directory named "baz" that is a
                      sibling of the directory containing the program
                      named "foo" on the current search path.

   6 "foo", "baz"  => return the program named "baz" in the directory "foo".

   7               => return the INSTALL_ROOT directory from the earlier
                      dialogue with the user.

   8 "foo"         => return the directory named "foo".

   9 "foo", "baz"  => return the directory named "baz" in the directory
                      defined by the environment variable "$foo".

  10 "foo"         => return the program defined by the environment
                      variable "$foo"
 
  11 "foo"         => add "foo" to the list of files needed for rule #12
 
  12 "foo"         => return the linker search list "-Lfoo" if the
                      directory "foo" contains all the files listed
                      in this configuration item's rule #11's.

  13 "foo"         => return the linker search list "-Lfoo" if the
                      directory named "foo" exists.

  14               => return the INSTALL_KEY from the earlier dialogue
                      with the user.
