Icmake can be used as an alternative to make(1). Icmake allows the programmer to use a program language (closely resembling the well-known C-programming language) to define the actions involved in (complex) program maintenance. For this, icmake offers various special operators as well as a set of support functions that have proven to be useful in program maintenance. Traditional make-utilities recompile sources once header files are modified. In the context of C++ program development this is often a bad idea, as adding a new member to a class does not normally require you to recompile the class's sources. To handle class dependencies in a more sensible way, icmake's CLASSES file may define dependencies among classes. By default, class-dependencies are not interpreted. To create the program from its sources, either descend into the icmake directory, or unpack a created archive, cd into its top-level directory and follow the instructions provided in the INSTALL file found there. Alternatively, binary ready-to-install versions of icmake are available in verious Linux distributions, in particular Debian. See, e.g., https://packages.debian.org/search?keywords=icmake&searchon=names&suite=all§ion=all Github's web-pages for icmake are here: https://fbb-git.github.io/icmake