20 lines
544 B
Makefile
20 lines
544 B
Makefile
CC ?= clang
|
|
QEMU ?= qemu-system-riscv32
|
|
FW ?= /usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.bin
|
|
|
|
CFLAGS = -fuse-ld=lld -std=c11 -O2 -g3 -Wall -Wextra \
|
|
--target=riscv32 -march=rv32imac -mabi=ilp32 \
|
|
-ffreestanding -nostdlib
|
|
|
|
all: kernel.elf
|
|
|
|
kernel.elf: kernel.c common.c common.h kernel.h kernel.ld
|
|
$(CC) $(CFLAGS) -Wl,-T,kernel.ld -Wl,-Map,kernel.map -o $@ kernel.c common.c
|
|
|
|
run: kernel.elf
|
|
$(QEMU) -machine virt -nographic -serial mon:stdio --no-reboot \
|
|
-bios $(FW) -kernel kernel.elf
|
|
|
|
clean:
|
|
rm -f *.o *.elf *.map qemu.log
|