makefile: add clang support, clean target, WAIT_GDB
option
This commit is contained in:
parent
35e3ad9304
commit
99b25dec07
1 changed files with 21 additions and 9 deletions
28
Makefile
28
Makefile
|
@ -1,16 +1,28 @@
|
||||||
CODE=src/
|
TARGET = riscv64-unknown-elf
|
||||||
CROSS_COMPILE=riscv64-unknown-elf-
|
CC = $(TARGET)-gcc
|
||||||
CC=$(CROSS_COMPILE)gcc
|
GDB = $(TARGET)-gdb
|
||||||
GDB=$(CROSS_COMPILE)gdb
|
EMU = qemu-system-riscv64
|
||||||
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
|
|
||||||
|
|
||||||
.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
|
all: $(CODE)*.s $(CODE)*.c
|
||||||
$(CC) $(CFLAGS) $? -o kernel
|
$(CC) $(CFLAGS) $? -o kernel
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-rm kernel
|
||||||
|
|
||||||
run:
|
run:
|
||||||
$(EMU) $(EFLAGS) -kernel kernel
|
$(EMU) $(EFLAGS) -kernel kernel
|
||||||
|
|
||||||
|
|
Reference in a new issue