1
0
Fork 0

makefile: add clang support, clean target, `WAIT_GDB` option

This commit is contained in:
~quinn@unix.lgbt 2021-07-26 22:50:37 +10:00 committed by GitHub
parent 35e3ad9304
commit 99b25dec07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 21 additions and 9 deletions

View File

@ -1,16 +1,28 @@
CODE=src/
CROSS_COMPILE=riscv64-unknown-elf-
CC=$(CROSS_COMPILE)gcc
GDB=$(CROSS_COMPILE)gdb
CFLAGS=-march=rv64gc -mabi=lp64d -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles -Tkernel.ld -g -Wall -Wextra
EMU=qemu-system-riscv64
EFLAGS=-machine virt -cpu rv64 -bios opensbi-riscv64-generic-fw_dynamic.bin -m 256m -nographic -global virtio-mmio.force-legacy=false -s #-S
TARGET = riscv64-unknown-elf
CC = $(TARGET)-gcc
GDB = $(TARGET)-gdb
EMU = qemu-system-riscv64
.PHONY: all clean run
CODE = src/
CFLAGS = -march=rv64gc -mabi=lp64d -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles -Tkernel.ld -g -Wall -Wextra
ifeq ($(CC),clang)
CFLAGS += -target $(TARGET) -mno-relax -Wno-unused-command-line-argument
endif
EFLAGS = -machine virt -cpu rv64 -bios opensbi-riscv64-generic-fw_dynamic.bin -m 256m -nographic -global virtio-mmio.force-legacy=false -s
ifdef WAIT_GDB
EFLAGS += -S
endif
.PHONY: all clean run gdb
all: $(CODE)*.s $(CODE)*.c
$(CC) $(CFLAGS) $? -o kernel
clean:
-rm kernel
run:
$(EMU) $(EFLAGS) -kernel kernel