123456789101112131415161718192021222324252627282930313233343536373839404142 |
- target := aarch64-unknown-none
- mode := release
- kernel := target/$(target)/$(mode)/aarch64
- sysroot := $(shell rustc --print sysroot)
- objdump := $(shell find $(sysroot) -name llvm-objdump) --arch-name=aarch64
- objcopy := $(shell find $(sysroot) -name llvm-objcopy)
- BUILD_ARGS += --target $(target)
- ifeq ($(mode), release)
- BUILD_ARGS += --release
- endif
- .PHONY: kernel clean qemu run env
- env:
- rustup component add llvm-tools-preview rustfmt
- rustup target add $(target)
- kernel:
- cargo build $(BUILD_ARGS)
- asm: kernel
- $(objdump) -d $(kernel) | less
- sym: kernel
- $(objdump) -t $(kernel) | less
- header: kernel
- $(objdump) -x $(kernel) | less
- clean:
- cargo clean
- qemu: kernel
- qemu-system-aarch64 \
- -machine virt \
- -cpu max \
- -serial mon:stdio \
- -kernel $(kernel)
- run: qemu
|