OnWorks favicon

icmbuild - Online in the Cloud

Run icmbuild in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command icmbuild that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



icmbuild - A generic, easy configurable, program maintenance script


icmbuild [-h] [-c] args


The icmbuild script is a generic script that can be used to do program maintenance using

Icmbuild requires that the file icmconf is available in the directory where program
maintenance is requested.

Icmbuild assumes that your sources exist in and below the current working directory. The
file icmconf in icmake(1)’s distribution provides an example of an icmconf file that can
be used by icmbuild. In that example icmconf file it is assumed that C++ sources are
maintained, but program maintenance for, e.g., C sources can easily be configured.

Icmbuild() compiles all sources in each of the subdirectories named in the file CLASSES,
and then compiles all sources in the current working directory.

The compiled sources result in object modules which may be kept in a library, against
which the main-object module is linked. It is also possible to specify additional
libraries against which the program must be linked.

If a library is constructed it is kept up to date by icmbuild. When a source is
successfully compiled its new object module will replace the old one that is found in the
library. At that point the object files are no longer required and are removed by


To use icmbuild do as follows:

o Install icmbuild in your path;

o copy icmconf (and probably the file CLASSES) to your project’s base directory
(i.e., the directory in which and where below the project’s sources are found);

o Modify the #defines in the file icmconf to taste;

o Enter the names of subdirectories containing sources on separate lines in the file

Note that the order of the classes mentioned in CLASSES is relevant. New class
(subdirectory) names can always be added, but reordering the lines in the CLASSES
file should be avoided. If reordering is necessary, then first run the command
icmbuild clean to remove all files thus far created by icmbuild. Recompilation is
necessary as the names of the object files contain class order-numbers for
identification. These class-order numbers prevent file-name collisions (e.g., two
classes might use a file data.cc) and thus replacement of a file x.o from class A
by file x.o from class B is prevented;

o Now simply run

icmbuild -h

from the project’s base directory and let the help-info tell you what your options
are. See the next section for the modes of operation.


Icmbuild recognizes two options, at most one should be specified:

o -h: Provide a short usage overview.

o -c: Clear the screen (using tput clear) before starting the compilation process

Following the optional -c icmbuild() the following arguments may be passed to icmbuild:

o clean
clean up remnants of previous activities

o library
build the library (static and optionally the dynamic library)

o program
build the binary program

o program strip
build the stripped binary program

o install program path install the constructed program in the specified path (to be
used after issuing icmbuild program)

o install static path install the constructed static library in the specified path
(to be used after issuing icmbuild library)

o install shared path install the constructed shared library in the specified path
(to be used after issuing icmbuild library) After adding a line to icmconf

#define DEFCOM "program"

icmbuild by default uses the argument program. After adding

#define DEFCOM "strip"

icmbuild by default uses the argument strip. After adding

#define DEFCOM "library"

icmbuild by default uses the argument library.

DEFCOM is ignored when an explicit operational mode is passed to icmbuild.

Use icmbuild online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Clover EFI bootloader
    Clover EFI bootloader
    Project has moved to
    Features:Boot macOS, Windows, and Linux
    in UEFI or legacy mode on Mac or PC with
    Download Clover EFI bootloader
  • 2
    Join us in Gitter!
    Enable the URPMS repository in your
    system -
    Download unitedrpms
  • 3
    Boost C++ Libraries
    Boost C++ Libraries
    Boost provides free portable
    peer-reviewed C++ libraries. The
    emphasis is on portable libraries which
    work well with the C++ Standard Library.
    See http://www.bo...
    Download Boost C++ Libraries
  • 4
    VirtualGL redirects 3D commands from a
    Unix/Linux OpenGL application onto a
    server-side GPU and converts the
    rendered 3D images into a video stream
    with which ...
    Download VirtualGL
  • 5
    Library to enable user space
    application programs to communicate with
    USB devices. Audience: Developers, End
    Users/Desktop. Programming Language: C.
    Download libusb
  • 6
    SWIG is a software development tool
    that connects programs written in C and
    C++ with a variety of high-level
    programming languages. SWIG is used with
    Download SWIG
  • More »

Linux commands