Add a step to 'make setup' that downloads and locally installs QEMU. Currently we use Alistair's fork of QEMU, as it has patches for HiFive support that upstream QEMU doesn't have. QEMU is installed into a `build/` directory that is in .gitignore so it doesn't touch the host system or dirty the repository.
diff --git a/.gitignore b/.gitignore index ae858ab..798463e 100644 --- a/.gitignore +++ b/.gitignore
@@ -1,3 +1,4 @@ +/build /Cargo.lock /layout.ld /platform
diff --git a/Makefile b/Makefile index b7eef32..5fc43b7 100644 --- a/Makefile +++ b/Makefile
@@ -32,7 +32,7 @@ endif .PHONY: setup -setup: +setup: setup-qemu rustup target add thumbv7em-none-eabi rustup target add riscv32imac-unknown-none-elf rustup target add riscv32imc-unknown-none-elf @@ -41,6 +41,17 @@ cargo install elf2tab --version 0.4.0 cargo install stack-sizes +.PHONY: setup-qemu +setup-qemu: + mkdir -p build + cd build && \ + git clone https://github.com/alistair23/qemu.git \ + -b riscv-tock.next --depth 1 && \ + cd qemu && \ + ./configure --prefix=$(CURDIR)/build \ + --target-list=arm-softmmu,riscv32-softmmu && \ + $(MAKE) install + .PHONY: examples examples: PLATFORM=nrf52 cargo build --release --target=thumbv7em-none-eabi --examples