aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: d2b6c523a3853178cb37d366839bf1c31ed6b23b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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 clean run

build:
	@RUSTFLAGS="$(RUSTFLAGS_PEDANTIC)" $(RUSTC_CMD)

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