Awesome
Maek
Maek is like make, but a bit mixed up.
Maek is a lightweight build system as a single javascript file. It is:
- Transparent: everything is in one file and uses only standard node modules. You control exactly what maek does. No spooky action-at-a-distance or system package databases.
- Explicit: prints the commands it runs and tells you why it runs them.
- Parallel: runs many jobs at once.
- Incremental: uses content hashes to decide which tasks to run.
- Extensible: it's one javascript file. Hack it to add more!
- Readable: the file tells you how to use it. Just open it in a text editor.
Maek is proudly not enterprise-grade software. It's meant for independent hackers and small teams who are fed up with features, fine with hacks, and just want make
but cross-platform and less error-prone.
Using Maek
To use Maek in your project, copy Maekfile.js
from this repository into your project, then edit the file to customize the tasks and build rules.
Build the default target:
$ node Maekfile.js
Build some specific targets:
$ node Maekfile.js objs/Game.o :test
Updating Maek
The script update-Maekfile.js
can be used to replace the "build engine" part of a Maekfile.js
:
$ node update-Maekfile.js ~/my-project/Maekfile.js
(It just divides Maekfile.js
at //===...===
lines and pastes the middle section from the target file.)