gpsp/libdragon/Makefile

75 lines
1.8 KiB
Makefile

TARGET := gpsp.z64
SOURCES := n64main.c unf/usb.c unf/debug.c
#OPTFLAG = -O0 -ggdb
OPTFLAG = -O3 -flto=auto
CFLAGS := -Wall -Wno-unused-function -DFULLSCREEN
LDFLAGS := -flto=auto
#CFLAGS += -DTRACE_INSTRUCTIONS
#CFLAGS += -DTRACE_REGISTERS
#CFLAGS += -DTRACE_EVENTS
#CFLAGS += -DNO_PRINT_ONLY_TRACE
CORE_DIR := $(abspath ..)
HAVE_DYNAREC := 0
ifeq ($(HAVE_DYNAREC),1)
CFLAGS += -DHAVE_DYNAREC
endif
CFLAGS += -DMIPS_ARCH -DUSE_RGBA5551_FORMAT -DROM_BUFFER_SIZE=1
CFLAGS += -DHAVE_STRINGS_H -DHAVE_STDINT_H -DHAVE_INTTYPES_H -D__LIBRETRO__ -DINLINE=inline
CPU_ARCH := mips
include $(CORE_DIR)/Makefile.common
SOURCES_C := $(filter-out $(CORE_DIR)/libretro/libretro.c,$(SOURCES_C))
CFLAGS += $(INCFLAGS)
BUILD_DIR = build
CXXFLAGS := $(CFLAGS)
ASFLAGS := $(CFLAGS) -Wa,-I$(CORE_DIR) -DN64
include $(N64_INST)/include/n64.mk
N64_CFLAGS += $(OPTFLAG)
N64_CXXFLAGS += $(OPTFLAG)
OBJS := $(addprefix $(BUILD_DIR)/,$(SOURCES:.c=.o))
OBJS += $(addprefix $(BUILD_DIR)/,$(SOURCES_C:.c=.o))
OBJS += $(addprefix $(BUILD_DIR)/,$(SOURCES_CC:.cc=.o))
OBJS += $(addprefix $(BUILD_DIR)/,$(SOURCES_ASM:.S=.o))
all: $(TARGET)
clean:
$(RM) -rf $(BUILD_DIR)
.PHONY: all clean debug everdrive
$(BUILD_DIR)/%.o: $(SOURCE_DIR)/%.cc
@mkdir -p $(dir $@)
@echo " [CXX] $<"
$(CXX) -c $(CXXFLAGS) -o $@ $<
$(TARGET): N64_ROM_TITLE = "gameplaySP64"
$(TARGET): $(BUILD_DIR)/$(TARGET:.z64=.dfs)
$(BUILD_DIR)/$(TARGET:.z64=.elf): $(OBJS)
$(BUILD_DIR)/$(TARGET:.z64=.dfs): $(wildcard filesystem/*)
debug: $(TARGET)
ares --setting DebugServer/Enabled=true \
--setting Boot/Debugger=true \
--setting General/HomebrewMode=true \
$(TARGET) | grep -vE '^CPU ffffffff[^a]' &
gdb $(BUILD_DIR)/$(TARGET:.z64=.elf) -ex 'target remote tcp::9123'
everdrive: $(TARGET)
usb64 -rom=$(TARGET)
usb64 -start
-include $(OBJS:.o=.d)