gdbstub/Makefile

42 lines
943 B
Makefile
Raw Permalink Normal View History

2025-09-20 17:55:30 +08:00
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 \
# -ex "file $(TEST_OBJ)" \
# -ex "set debug remote 1" \
# -ex "target remote localhost:1234" \
gdb: kernel
gdb-multiarch $(TEST_OBJ) -ex "target remote localhost:1234"