From f5b4245a30a663dc0605abd8faadc26de5d78b08 Mon Sep 17 00:00:00 2001 From: Jaby Date: Sun, 4 Dec 2022 04:03:45 +0100 Subject: [PATCH] Update makefiles to use mkoverlay --- lib/Makefile | 14 +++++++------- lib/PSEXETarget.mk | 13 ++++++++++++- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lib/Makefile b/lib/Makefile index cd717a6c..2729db24 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -24,12 +24,12 @@ FORMAT ?= elf32-littlemips endif #Take this to PSEXETarget.mk?? -LDSCRIPT ?= $(PSCX_REDUX_DIR)/ps-exe.ld -ifneq ($(strip $(OVERLAYSCRIPT)),) -LDSCRIPT := $(addprefix $(OVERLAYSCRIPT) , -T$(LDSCRIPT)) -else -LDSCRIPT := $(addprefix $(PSCX_REDUX_DIR)/default.ld , -T$(LDSCRIPT)) -endif +#LDSCRIPT ?= $(PSCX_REDUX_DIR)/ps-exe.ld +#ifneq ($(strip $(OVERLAYSCRIPT)),) +#LDSCRIPT := $(addprefix $(OVERLAYSCRIPT) , -T$(LDSCRIPT)) +#else +#LDSCRIPT := $(addprefix $(PSCX_REDUX_DIR)/default.ld , -T$(LDSCRIPT)) +#endif CC = $(PREFIX)-gcc-10 CXX = $(PREFIX)-g++-10 @@ -62,7 +62,7 @@ CCFLAGS += -DJABYENGINE_$(TV_FORMAT) #Linker flags LDFLAGS_release += -Os -LDFLAGS_all += -Wl,-Map=$(TARGET).map -nostdlib -T$(LDSCRIPT) -static -Wl,--gc-sections -Wl,--build-id=none +LDFLAGS_all += -Wl,-Map=$(TARGET).map -nostdlib -T$(PSCX_REDUX_DIR)/ps-exe.ld -T$(AUTO_OVERLAY_DIR)/Overlays.ld -static -Wl,--gc-sections -Wl,--build-id=none LDFLAGS_all += $(ARCHFLAGS) -Wl,--oformat=$(FORMAT) LDFLAGS_all += $(LDFLAGS_$(BUILD_PROFILE)) diff --git a/lib/PSEXETarget.mk b/lib/PSEXETarget.mk index 07038344..7445dd7d 100644 --- a/lib/PSEXETarget.mk +++ b/lib/PSEXETarget.mk @@ -1,17 +1,28 @@ +#Not intended to be overriden +AUTO_OVERLAY_DIR = $(OUTPUT_DIR)/auto_overlay + +include $(AUTO_OVERLAY_DIR)/Overlays.mk + #We use the JabyEngine so we will include ourselves JABY_ENGINE_LIB_DIR = $(JABY_ENGINE_DIR)/lib/PSX-$(BUILD_PROFILE) JABY_ENGINE_LIB_NAME = JabyEngine_$(TV_FORMAT) #Linking rule -$(TARGET).elf: $(OBJS) $(JABY_ENGINE_LIB_DIR)/lib$(JABY_ENGINE_LIB_NAME).a +$(TARGET).elf: $(OBJS) $(JABY_ENGINE_LIB_DIR)/lib$(JABY_ENGINE_LIB_NAME).a $(AUTO_OVERLAY_DIR)/Overlays.ld $(LD) -o $(TARGET).elf $(LDFLAGS_all) $(LDFLAGS) $(OBJS) -L$(JABY_ENGINE_LIB_DIR) -l$(JABY_ENGINE_LIB_NAME) $(LIBS) #Strips the psexe $(TARGET).psexe: $(TARGET).elf $(PREFIX)-objcopy $(addprefix -R , $(OVERLAYSECTION)) -O binary $< $@ +#Create overlays $(foreach ovl, $(OVERLAYSECTION), $(OUTPUT_DIR)/Overlay$(ovl)): $(TARGET).elf $(PREFIX)-objcopy -j $(suffix $@) -O binary $< $@ +#Create overlay makefile +$(AUTO_OVERLAY_DIR)/Overlays.mk: $(OVERLAY_CONFIG) + @mkdir -p $(AUTO_OVERLAY_DIR) + mkoverlay --mk-file $(AUTO_OVERLAY_DIR)/Overlays.mk --ld-script $(AUTO_OVERLAY_DIR)/Overlays.ld $< + #Rules section for default compilation and linking all: $(TARGET).psexe $(foreach ovl, $(OVERLAYSECTION), $(OUTPUT_DIR)/Overlay$(ovl)) \ No newline at end of file