Building Kirsch

Kirsch uses a custom, python-based build system to generate a Ninja build file. Ninja then resolves the generated build file and runs all the compilation commands.

At the moment, Kirsch can be built for either the morello or virt targets.

Generate Ninja build file

To generate the Ninja build file, run the following:
  • In an environment with the complete Toolchain

  • From the root of the Kirsch git repository

python3 generators/build.py > build/ninja.build

This can take a few seconds

Building for Morello

After having generated the Ninja build file, run the following two commands from the root of the Kirsch git repository:

ninja -C build morello/debug/cheriette_morello_atf_fvp_bl1.bin
ninja -C build morello/debug/loader.bin

The first command will build the ATF package, while the second command builds the actual binary of the OS.

To build the release version instead of the debug version, replace debug with release in both commands.

Building for Virt

After having generated the Ninja build file, run the following command from the root of the Kirsch git repository:

ninja -C build virt/debug/loader.bin

To build the release version instead of the debug version, replace debug with release in both commands.

Clean build files

To clean all build files, use

ninja -C build -t clean