CFLAGS = -I../include -Wall -Wextra LDFLAGS = CURDIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) OUT := build BIN = $(OUT)/ SHELL_HACK := $(shell mkdir -p $(OUT)) TEST_OBJ = $(OUT)/kernel.elf TEST_DUMP = $(OUT)/kernel.dump TEST_BIN = $(OUT)/kernel.bin .PHONY: kernel clean kernel: $(TEST_OBJ) $(TEST_BIN) $(TEST_OBJ): riscv64-unknown-elf-gcc -g -march=rv64gc -mabi=lp64d -nostdlib -T link.ld -o $@ kernel.c start.s riscv64-unknown-elf-objdump -d -S $@ > $(TEST_DUMP) $(TEST_BIN): $(TEST_OBJ) riscv64-unknown-elf-objcopy -O binary $< $@ clean: $(RM) -r $(BIN) qemu: kernel qemu-system-riscv64 -machine virt -smp 1 -bios none -kernel $(TEST_OBJ) -nographic -s -S gdb: kernel gdb-multiarch -x rv.gdb