= The Big Picture = The make tool is called [wiki:kmk kmk] and is a modified [wiki:GNUmake GNU make]. When invoked (without the {{{-f}}} option) this will happen: 1. [wiki:kmk kmk] will look for {{{Makefile.kmk}}}, {{{makefile.kmk}}}, {{{GNUmakefile}}}, {{{makefile}}} or {{{Makefile}}} in that order and read the first it finds. 1. In the makefile there are {{{include}}} statements which in turn will cause {{{header.kmk}}} and {{{footer.kmk}}} to be loaded. 1. {{{header.kmk}}} will setup a bunch of useful variables and load the first {{{Config.kmk}}} or {{{config.kmk}}} file in the directory tree starting from the makefile directory and up to {{{DEPTH}}}. 1. {{{footer.kmk}}} will generate [wiki:goals make goals] from the target lists and target properties defined in the makefile. 1. [wiki:kmk kmk] will start at the default goal ({{{all_recursive}}}) and resolve all its prerequisites. 1. This will cause the list of passes in {{{DEFAULT_PASSES}}} to be iterated, recusing into subdirectories if configured to do so for each pass.