Next Previous Contents

1. Description

Traditional makefiles used by make are quite limited in their functionality. Many using make have come to realise that dealing with large projects can be difficult and time-consuming, especially with various levels of inter-dependency between modules. You have only very basic ways of structuring elements in the project. smake's Smakefiles (so as not to cause conflicts with make's Makefiles) are based on Tcl scripts. With smake you have all the benefits of make plus a stable and mature script lanaguage.

Tcl (often pronounced tickle) is a free script language with a very simple syntax which is easy to learn but infinitely extendible. One of the great benefits of Tcl is that everything can be altered dynamically. Thus, if a project needs to change the behaviour of some aspects of smake, it can do so at will.

Smakefiles themselves are 100% Tcl with extra commands provided by smake. You can also load any available Tcl modules and packages (such as ones for using object-oriented environments), use namespaces, replace the action for checking dependencies (for instance to deal neatly with version control) and other Tcl-specific things in your makefiles.

For more information on Tcl see . To create simple Smakefiles no deep knowledge of Tcl is required. There are only 11 syntactical rules in Tcl. This document does assume some knowledge of them and of basic Tcl concepts. Nothing that a few minutes reading a document or two wont solve.


Next Previous Contents