- There is no setRule command. target accepts patterns as well as
names and they're treated the same, resulting in shorter code and
easier usage.
- There is no upTarget command. The whole stack of targets built is
available in the local variable stack.
- Exec is now called system and has options to be quiet and to
ignore errors (a la make)
- Target changed is more inline with the traditional make. There
are four cases when a target is considered changed:
- when the code does a return 1
- when any dependency is built
- when a dependency is not built, but is a file with an older
timestamp than the target
- when the target does not exist as a file at the end of the
code.
- Targets built once are not built again in the same session (like
make)
- target allows multiple targets (for convenience), just like each
of them had been specified separately with the same body.
And to a lesser extent
- (commentable) auto logging of commands run
- accept multiple targets on command line
- allow definition of global variables on the command line
- allow definition of environment variables on the command line
- single file (< 300 lines) with no external dependencies
- new commands
- dputs (for debug)
- log (for logging)
- tcl (print command before running).
- no compile and link commands (not really core)