See also the KICKSTART chapter in the manual:

    doc/manual/index.html, click the kickstart chapter.

===========================================================================

To install simrisc by hand instead of using a binary distribution perform
the following steps:

    0. simrisc and its construction depends, in addition to the normally
        standard available system software on specific software and versions
        which is documented in the file `required'.

       (If you compile the bobcat library yourself, note that simrisc does
        not use the SSL, Milter and Xpointer classes; they may --as far as
        simrisc is concerned-- be left out of the library by running
        './build light')

    1. It is expected you use icmake for the package construction. For this a
        top-level script (build) and support scripts in the ./icmake/
        directory are available. By default, the 'build' script echoes the
        commands it executes to the standard output stream. By specifying the
        option -q (e.g., ./build -q ...) this is prevented, significantly
        reducing the output generated by 'build'.

    2. Inspect the values of the variables in the file INSTALL.im Modify these
       when necessary.

    3. Run
            ./build program [strip]
       to compile simrisc. The argument `strip' is optional and strips
       symbolic information from the final executable.

    4. If you installed Yodl then you can create the documentation:
            ./build man
        builds the man-page, and
            ./build manual
        builds the manual.

    5.  Before installing the components of simrisc, consider defining the
        environment variable SIMRISC, defining its value as the (preferably
        absolute) filename of a file on which installed files and directories
        are logged.
        Defining the SIMRISC environment variable as ~/.simrisc usually
        works well.

    6. Run (probably as root)

            ./build install 'what' 'base'

        to install. Here, 'what' specifies what you want to install.
        Specify:
                  x, to install all components,
        or specify a combination of:
                  a (additional documentation),
                  b (binary program),
                  d (standard documentation),
                  m (man-pages)
                  u (user guide)

        E.g., use
            ./build install bm 'base'
        if you only want to be able to run simrisc, and want its man-page to
        be installed below 'base'.

        ./build install's last argument 'base' is optional: the base directory
        below which the requested files are installed. This base directory is
        prepended to the paths #defined in the INSTALL.im file. If 'base' is
        not specified, then INSTALL.im's #defined paths are used as-is.

        When requesting non-existing elements (e.g., './build install x' was
        requested, but the man-pages weren't constructed) then these
        non-existing elements are silently ignored by the installation
        process.

        If the environment variable SIMRISC was defined when issuing the
        `./build install ...' command then a log of all installed files is
        written to the file indicated by the SIMRISC environment variable
        (see also the next item).

        Defining the SIMRISC environment variable as ~./simrisc usually
        works well.

    7.  Uninstalling previously installed components of simrisc is easy
        if the environment variable SIMRISC was defined before issuing the
        `./build install ...' command. In that case, run the command

            ./build uninstall logfile

        where 'logfile' is the file that was written by ./build install.
        Modified files and non-empty directories are not removed, but the
        logfile itself is removed following the uninstallation.

    8. Following the installation nothing in the directory tree which contains
        this file (i.e., INSTALL) is required for the proper functioning of
        simrisc, so consider removing it. If you only want to remove
        left-over files from the build-process, just run

            ./build distclean
