CC = riscv64-unknown-elf-gcc CFLAGS = -nostdlib -fno-builtin -mcmodel=medany -march=rv32ima -mabi=ilp32 OBJ = \ start.s \ sys.s \ lib.c \ timer.c \ task.c \ os.c \ user.c \ trap.c QEMU = qemu-system-riscv32 QFLAGS = -nographic -smp 4 -machine virt -bios none OBJDUMP = riscv64-unknown-elf-objdump all: os.elf os.elf: $(OBJ) $(CC) $(CFLAGS) -T os.ld -o os.elf $^ qemu: $(TARGET) @qemu-system-riscv32 -M ? | grep virt >/dev/null || exit @echo "Press Ctrl-A and then X to exit QEMU" $(QEMU) $(QFLAGS) -kernel os.elf clean: rm -f *.elf