BSP ?= rpi2 DEBUG ?= 0 AUTO ?= 0 DEV_SERIAL ?= /dev/ttyUSB0 TARGET=armv7a-none-eabi QEMU_BINARY=qemu-system-arm QEMU_MACHINE_TYPE=raspi2b QEMU_RELEASE_ARGS=-cpu=cortex-a7 -m 1G -display none OBJDUMP_BINARY=arm-none-eabi-objdump NM_BINARY=arm-none-eabi-nm READELF_BINARY=arm-none-eabi-readelf LINKER_FILE=src/bsp/raspberrypi/linker.ld RUSTC_MISC_ARGS=-C target-cpu=cortex-a7 QEMU_RELEASE_ARGS=-chardev stdio,id=char0,mux=on,logfile=serial.log,signal=on -serial chardev:char0 -mon chardev=char0 KERNEL_ELF=target/$(TARGET)/release/kernel RUSTFLAGS=-C link-arg=-T$(LINKER_FILE) $(RUSTC_MISC_ARGS) RUSTFLAGS_PEDANTIC=$(RUSTFLAGS) -D warnings -D missing_docs FEATURES=--features bsp_$(BSP) COMPILER_ARGS=--target=$(TARGET) $(FEATURES) --release RUSTC_CMD=cargo rustc $(COMPILER_ARGS) export LINKER_FILE .PHONY: build doc clean run build: @RUSTFLAGS="$(RUSTFLAGS_PEDANTIC)" $(RUSTC_CMD) doc: @RUSTFLAGS="$(RUSTFLAGS_PEDANTIC)" cargo doc $(COMPILER_ARGS) clean: -@rm -rf target run: build @qemu-system-arm -cpu cortex-a7 -m 1G -kernel target/armv7a-none-eabi/release/kernel -machine raspi2b -serial mon:stdio -nographic init: rustup target install $(TARGET) rustup target add $(TARGET) rustup override set nightly rustup component add llvm-tools-preview cargo install cargo-binutils