The small smake program by Kristoffer Lawson proved immensely useful for me; but it took me some while to figure out how to tweak it that it suited my needs - just have to put Tcl commands in the right place. So here is my addition to the original man page: Here is another example Smakefile that demonstrates how smake can be extended using Tcl syntax. target hello.o { depend {foo.h main.c} { compile main.c \ -Wall \ -I/usr/include/ \ -I.. } } target testiprg { depend {main.o} { link testiprg {foo.o main.o \ -L/usr/lib} {tcl8.0 tk8.0} } } # note the position of the curly braces for link! target all { global Compiler Linker set Compiler "c++" set Linker "c++" depend testiprg {} }