ref: bbc32792b01cd2e597f31d88ee16bd8ace10da1b
parent: 27971f259b40eb94cbddafc6ed92553afb5f02bd
author: kvik <kvik@a-b.xyz>
date: Thu Oct 29 12:35:04 EDT 2020
mk: add article from old wiki (thanks Amavect)
--- /dev/null
+++ b/mk.md
@@ -1,0 +1,21 @@
+# 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.