| 1 | |
| 2 | |
| 3 | = The Big Picture = |
| 4 | |
| 5 | The make tool is called [wiki:kmk kmk] and is a modified [wiki:GNUmake GNU make]. |
| 6 | |
| 7 | When invoked (without the {{{-f}}} option) this will happen: |
| 8 | 1. [wiki:kmk kmk] will look for {{{Makefile.kmk}}}, {{{makefile.kmk}}}, {{{GNUmakefile}}}, {{{makefile}}} or {{{Makefile}}} in that order and read the first it finds. |
| 9 | 1. In the makefile there are {{{include}}} statements which in turn will cause {{{header.kmk}}} and {{{footer.kmk}}} to be loaded. |
| 10 | 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}}}. |
| 11 | 1. {{{footer.kmk}}} will generate [wiki:goals make goals] from the target lists and target properties defined in the makefile. |
| 12 | 1. [wiki:kmk kmk] will start at the default goal ({{{all_recursive}}}) and resolve all its prerequisites. |
| 13 | 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. |