Build System

The build system for Cheriette is built on four basic concepts:
  • Files

  • Artifacts

  • Tools

  • Contexts

Files are base units, like source and header files.

An artifact is generated from a set of input files and artifacts. An artifact is a logical unit. Example: A Cheriette kernel image, an ELF for a service.

A tool is used to take input files and transform them into output files. Example: A compiler or linker.

A context is used by tools to distinguish artficats for different purposes or targets from each other. Example: A cheri context, a morello target context, a kernel context, a usr context. An artifact with the cheri and kernel context for the initial kernel bootstrap code vs. an artifact with the nocheri and loader contexts for the loader.