The `icmbuild' script is a generic script that can be used to do program
maintenance using icmake. 

The script expects two files to be available in the directory where program
maintenance is required, and the icmbuild script should be available in your
path or it should be started as, e.g., ./icmbuild

The script assumes that your sources (currently C++ sources, but see the file
`icmconfig') exist in the directory in which icmconfig and the file CLASSES
live, and that the file CLASSES contains the names of all subdirectories in
which class-specific sources are kept. 

The script compiles all sources in each of these subdirectories, and then all
sources in the current working directory (except for the source containing
main())

The compiled sources result in object modules which are then stored in a
library, against which the main-source is linked. 

Additional libraries can be added to this linking process as well.

Once a library is constructed it is kept up to date by the script. Changing a
source will result in replacing its former module by its new module in the
library. 


To use icmbuild the following is suggested:

    1. Install icmbuild in your path

    2. copy icmconf and CLASSES to your project's base directory (i.e., the
       directory in which and where below the project's sources are found)

    3. Modify the #defines in the file icmconf to taste

    4. Mention the subdirectories containing sources in the file CLASSES

       Note that the order of the classes mentioned in classes *is* relevant.
       It's no problem when classes are added, but reordering should be 
       prevented. If reordering is required, recompile the library as the 
       final object files contain class order-numbers.
       These class-order numbers prevent file-name collisions and thus
       prevent replacing file x.o from class A by file x.o from class B.

    5. now simply run 

            icmbuild 

       from the project's base directory and let the help-info tell you
       what your options are. You should see something like:

        Usage: icmbuild mode
        Where `mode' is one of:
           clean           - clean up remnants of previous activities
           library         - build the static library tmp/libmodules.a
           program         - build tmp/binary
           program strip   - build stripped tmp/binary
           install <base>  - to install the software in the locations
                             defined in the icmconf file, optionally
                             below <base>
