diff --git a/README.md b/README.md index 3797a90c7..50907d4a0 100644 --- a/README.md +++ b/README.md @@ -27,28 +27,48 @@ The latest design documentation can be found [here](https://trustworthy.systems/ More information about the sDDF project can be found on the Trustworthy Systems website [here](https://trustworthy.systems/projects/drivers/). -## Building and running examples +## Dependencies -You can find examples making use of the sDDF in the `examples/` directory. Each example has its -own README for how to build and run it. +* Microkit SDK 1.4.1 +* GNU Make +* Clang and LLVM bintools -## Dependencies +The Microkit SDK can be acquired from [here](https://github.com/seL4/microkit/releases/tag/1.4.1). + +sDDF is primarily compiled via Makefiles, but the [Zig](https://ziglang.org) build system is also +available. If you are intending on using Zig instead of Make, please see https://ziglang.org/download/. + +See the instructions below for installing the rest of the dependencies based on your +machine: -### Toolchain +### apt -Any C toolchain should work but most testing and experimentation is currently performed with -the `aarch64-none-elf` GCC toolchain distributed by ARM. You can download it from -[here](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads). +On apt based Linux distributions run the following commands: -The specific version used for testing is: -`aarch64-none-elf-gcc (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16)) 10.2.1 20201103`. +```sh +sudo apt install make llvm lld +``` -### Microkit SDK +### Homebrew -The sDDF is built using the [seL4 Microkit](https://github.com/seL4/microkit) (version 1.4.1). +On macOS, you can install the dependencies via Homebrew: +```sh +brew install llvm lld make +``` + +### Nix + +There is a Nix flake available in the repository, so you can get a development shell via: +```sh +nix develop +``` + +## Examples + +You can find examples making use of the sDDF in the `examples/` directory. Each example has its +own README for how to build and run it. -You can download version 1.4.1 of Microkit SDK from -[here](https://github.com/seL4/microkit/releases/tag/1.4.1). +Note that some examples may have dependencies in addition to the ones listed in this README. ## Developing sDDF diff --git a/examples/echo_server/README.md b/examples/echo_server/README.md index 6a56de0d2..5a3d4dfee 100644 --- a/examples/echo_server/README.md +++ b/examples/echo_server/README.md @@ -6,7 +6,17 @@ # Network echo server +## Dependencies + +Due to the echo server relying on libc functionality, it currently only works with GCC +instead of LLVM like all the other examples. + +The specific toolchain we use for testing and benchmarking the network sub-system is +the `aarch64-none-elf` GCC toolchain distributed by ARM. You can download it from +[here](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads). + ## Building + ```sh make BUILD_DIR= MICROKIT_SDK= MICROKIT_CONFIG=(benchmark/release/debug) ```