To Install flexc++ by hand instead of using the binary distribution perform
the following steps:

    0. Flexc++ 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 flexc++ does not
        use the SSL, Milter and Xpointer classes; they may --as far as flexc++
        is concerned-- be left out of the library)

    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 to suit your own local situation. In particular, check
       the skeletons (SKEL), program (BINARY), and CXX (using ccache)
        specifications. If you don't (want to) use 'ccache' it can safely be
        removed from INSTALL.im's CXX specification.

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

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

    5. Run (probably as root) 

            ./build install 'LOG:path' 'what' 'base'

        to install components of Flexc++. 

        Here, 
            'LOG:path' is an optional item specifying the absolute or relative
                path of a log file to contain a log of all installed files (see
                also the next item). Using LOG:~/.flexcpp usually works
                well. Do not put any blanks between LOG: and the path
                specification, or protect the LOG: specification by quotes.

            'what' specifies what you want to install.
                Specify:
                          x, to install all components,
                or specify a combination of:
                          b (binary program),
                          d (standard documentation),
                          m (man-pages)
                          s (skeleton files)
                          u (user guide)
                E.g., use 
                    ./build install bs 'base'
                if you only want to be able to run flexc++, and want it to be
                installed below 'base'. 

                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.
    
            'base' is optional and specifies 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.

    6.  Uninstalling previously installed components of Flexc++ is easy if a
        log path (LOG:...) was specified at the `./build install ...'
        command. In that case, run the command

            ./build uninstall logpath

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

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

            ./build distclean





