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.
/sys/doc/mk.psis the definitive guide.
/sys/doc/mkfiles.psexplains the system mkfiles in
/sys/src/cmd/, though some info is outdated.