Build targets in Shodan repository

Here are lists of user-facing targets in Shodan. They are invoked with the command of m [make flags] <target>.

Build targets

TargetSourceOutputDescription
prereqsInstall build prerequisites
toolscacheInstall RISCV compiler and emulator tools, including
out/hostRust, GCC, CLANG, verilator, qemu, renode
katakata/out/kataSMC seL4 and user space applications
matcha_tock_releasesw/tock/boards/opentitan-matchaout/tock-releaseThe operating system running on the security core,
sw/libtock-rsout/libtock-rsand its Rust library
multihart_boot_romsw/multihart_boot_romout/shodan_boot_romShodan boot rom
springboksw/vecout/springbok/rvvVector core BSP and RVV test code
iree_compilerout/host/iree_compilerIREE host compiler
iree_runtimetoolchain/ireeout/springbok_ireeIREE runtime applications
sw/vec_iree
ireeShorthand for iree_compiler and iree_runtime
opentitan_sw_allhw/opentitanout/opentitanHW testing binaries
qemutoolchain/ristv-qemuout/host/qemuQEMU emulator
renodesim/renodeout/host/renodeRenode emulator
spiketoolchain/spikeout/host/spikeRISC-V ISA simulator (Spike)
systemcsim/systemcout/host/systemclibsystemc library
springbok_systemchw/springbok/systemcout/springbok/systemcSpringbok systemc implementation
verilatorsim/verilatorout/host/verilatorSystem Verilog HW emulator
simulateE2E build and launch renode simulation.
Targets include matcha_tock_release,
kata-bundle-release, multihart_boot_rom, iree
debug-simulationDebug version of simulate to be used with GDB,
tock target is matcha_tock_debug; kata is
kata-bundle-debug.

Clean targets

TargetDescription
cleanRemove the whole out directory
qemu_cleanRemove out/host/qemu
renode_cleanRemove out/host/renode
spike_cleanRemove out/host/spike
verilator_cleanRemove out/host/verilator
toolchain_cleanRemove cache/toolchain
toolchain_llvm_cleanRemove cache/toolchain_iree_rv32imf
opentitan_sw_cleanRemove out/opentitan
tock_cleanClean out/tock-debug
and out/tock-release (make clean)

Optional toolchain targets (Used upon request)

The following targets should not be called in the typical development. They should be called by CI and only upon request, i.e., NOT be built regularly.

TargetDescription
toolchainBuild GCC toolchain for the security core/SMC
toolchain_llvmBuild LLVM toolchain for the vector core
toolchain_vp(Optional) Build GCC toolchain for the vector core