shithub: docs.9front.org

ref: ba1d7b8b5be56a039dc2eb9776f90ad70636467b
dir: /mk.md/

View raw version
# mk(1)

mk is a build automation tool.

A mkfile is a script that mk can read to derive files from other files. 

When given a target, mk reads the rule for the target and calculates a
graph of dependencies.  mk then derives all targets and dependencies
with the recipes given.

All targets and dependencies are assumed to be files, unless the rule
is marked virtual.

## Pointers

* mk(1) man page
* `/sys/doc/mk.ps` is the definitive guide.
* `/sys/doc/mkfiles.ps` explains the system mkfiles in `/sys/src/cmd/`,
though some info is outdated.
* Amavect has [a repo of exercises](https://git.sr.ht/~amavect/mkexercises)
for absolute beginners of build systems.