Souce Structure =============== This is a rough description of the source tree. Please note that the structure is not finalized, and will change. If you do make changes to the structure, make them in such a way that they are well documented and thoroughly executed. - `build/` is the directory for *all* ephemeral build artifacts, with the exception of generated headers. All other derived and generated files end up here. - `compat/` includes wholesale copies of other projects, e.g. Free/CHERIBSD headers. Keeping this code separate signals that it is not ''normal'' Kirsch code and enables easier updating/replacing of the entire borrowed source tree. - `drivers/` unsure if this should be included...? - `generators/` Tools and their configuration for generating source or build files. In particular, this is where the python-based Ninja-build file generator. - `include/` Headers that are not part of a particular library or part of `compat/`. - `kernel/` Kernel sources. - `lib/` - `foreign/` non-Kirsch libraries, similar in function to `compat`, but for artifacts that need to be compiled. - `kirsch/` Kirsch libraries. - `link/` Until linker scripts are generated by the build system, they are temporarily all placed here. - `loader/` Home of all loader sources. - `mackerel/` Mackerel device specifications and support headers. - `scripts/` Various scripts for running emulators and formatting source code. - `usr/` Userspace sources.