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.
- 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
Then run Ninja in the build directory
ninja -C build
- At time of writing, this will generate artifacts for
riscv64andmorelloinbuild/: kernel_ARCH.elf: The Kirsch kernel for architecture ARCH as an ELF executable.loader_ARCH.elf: The Kirsch Loader with the kernel ELF embedded inside, as an ELF executable.loader_ARCH.bin: The Kirsch laoder with the kernel ELF embedded inside, as a binary blob. The first byte ofloader_ARCH.binis the first instruction to execute the loader.
In addition, the Ninja Morello target will compile Morello ARM ATF binaries
by executing the generators/morello_atf_package.sh script.
If you’d like to only build the artifacts of a single architecture, use the target
$ARCH_all, e.g. morello_all or riscv64_all.
To clean all build files, use
ninja -C build -t clean