gdbstub/mini-gdbstub/Makefile

48 lines
886 B
Makefile

CFLAGS = -Iinclude -Wall -Wextra -MMD #-Werror
CURDIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
O ?= build
OUT := $(O)
EMU_OUT := $(abspath $(OUT))
SHELL_HACK := $(shell mkdir -p $(OUT))
GIT_HOOKS := .git/hooks/applied
LIBSRCS = $(shell find ./src -name '*.c')
_LIB_OBJ = $(notdir $(LIBSRCS))
LIB_OBJ = $(_LIB_OBJ:%.c=$(OUT)/%.o)
TEST_OBJ = $(EMU_OUT)/emu_test.obj
TEST_BIN = $(EMU_OUT)/emu_test.bin
vpath %.c $(sort $(dir $(LIBSRCS)))
.PHONY: all debug clean
all: CFLAGS += -O0 -g
all: LDFLAGS += -O0
debug: CFLAGS += -O0 -g -DDEBUG
debug: LDFLAGS += -O0
$(GIT_HOOKS):
@scripts/install-git-hooks
@echo
$(OUT)/%.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
emu:
cd src && make all
stub: emu
$(EMU_OUT)/emu $(TEST_BIN)
gdb: emu
gdb-multiarch $(TEST_OBJ) -ex "set architecture riscv:rv32" -ex "target remote 127.0.0.1:1234"
clean:
$(RM) -rf build
-include $(OUT)/*.d