Comparison of Make and Speedy Make
File format
- Speedy Make uses XML.
- Make uses its own format, where tabs are significant.
Dependency graph
- Speedy Make knows dependencies by parsing sources file and extracting
include statements.
Sometime, only the main source file of a whole project is required in the makefile. - Make requires explicit definition of dependencies: for each file to build, the list of required files must be given in the form:
objectfile: source1 source2 source3 etc...
cc $@ $<
This is followed by the list of commands to perform. Each command stays
on a line that starts with a tab code.
Dependency tracking
- Both make and Speedy Make use the date of last modification of the files to know whichever must be compiled. And the included headers also.
Variables
- Speedy Make uses variable prefixed by $ for a global replacement and * for an iterative replacement. It allows also to add a replacing extension in square brackets.
- Make uses variable defined in the makefile or the automatic variables $@ and $<.
Overriding of variables
- Both make and Speedy Make allow to override variables at command line.
Multiple tasks
- Speedy Make has options recognized by the interpreter for main tasks. It is also possible to select an action at command line.
- Make requires multiple definitions of processing in the makefile for various tasks. They may be choosen at command line.
Compiling and linking
- Both make and Speedy Make call external programs, with options given in the makefile.
Configure
- This is planned in Speedy Make.
- Make must be called after another program named "configure", that uses its own definition file (very hard to write).
More tools
GNU make.
The GNU make manual
Makefile Tutorial