blob: 480374e4fe6573955982f3290e5c4570d0a44758 [file] [log] [blame] [view]
# 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
| Target | Source | Output | Description |
| :-------------------| :-------------------------------| :----------------------| :----------------------------------------------------|
| prereqs | | | Install build prerequisites |
| tools | | cache | Install RISCV compiler and emulator tools, including |
| | | out/host | Rust, GCC, CLANG, `verilator`, `qemu`, `renode` |
| kata | kata/ | out/kata | SMC seL4 and user space applications |
| matcha_tock_release | sw/tock/boards/opentitan-matcha | out/tock-release | The operating system running on the security core, |
| | sw/libtock-rs | out/libtock-rs | and its Rust library |
| multihart_boot_rom | sw/multihart_boot_rom | out/shodan_boot_rom | Shodan boot rom |
| springbok | sw/vec | out/springbok/rvv | Vector core BSP and RVV test code |
| iree_compiler | | out/host/iree_compiler | IREE host compiler |
| iree_runtime | toolchain/iree | out/springbok_iree | IREE runtime applications |
| | sw/vec_iree | | |
| iree | | | Shorthand for `iree_compiler` and `iree_runtime` |
| opentitan_sw_all | hw/opentitan | out/opentitan | HW testing binaries |
| qemu | toolchain/ristv-qemu | out/host/qemu | QEMU emulator |
| renode | sim/renode | out/host/renode | Renode emulator |
| spike | toolchain/spike | out/host/spike | RISC-V ISA simulator (Spike) |
| systemc | sim/systemc | out/host/systemc | libsystemc library |
| springbok_systemc | hw/springbok/systemc | out/springbok/systemc | Springbok systemc implementation |
| verilator | sim/verilator | out/host/verilator | System Verilog HW emulator |
| simulate | | | E2E build and launch renode simulation. |
| | | | Targets include `matcha_tock_release`, |
| | | | `kata-bundle-release`, `multihart_boot_rom`, `iree` |
| debug-simulation | | | Debug version of `simulate` to be used with GDB, |
| | | | tock target is `matcha_tock_debug`; kata is |
| | | | `kata-bundle-debug`.
## Clean targets
| Target | Description |
| :--------------------| :---------------------------------------|
| clean | Remove the whole out directory |
| qemu_clean | Remove out/host/qemu |
| renode_clean | Remove out/host/renode |
| spike_clean | Remove out/host/spike |
| verilator_clean | Remove out/host/verilator |
| toolchain_clean | Remove cache/toolchain |
| toolchain_llvm_clean | Remove cache/toolchain_iree_rv32imf |
| opentitan_sw_clean | Remove out/opentitan |
| tock_clean | Clean 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.
| Target | Description |
| :--------------------| :--------------------------------------------------|
| toolchain | Build GCC toolchain for the security core/SMC |
| toolchain_llvm | Build LLVM toolchain for the vector core |
| toolchain_vp | (Optional) Build GCC toolchain for the vector core |