Update makefiles to use mkoverlay

This commit is contained in:
Jaby 2022-12-04 04:03:45 +01:00 committed by Jaby
parent 61563c66c8
commit 77d6ce9ecf
2 changed files with 19 additions and 8 deletions

View File

@ -24,12 +24,12 @@ FORMAT ?= elf32-littlemips
endif endif
#Take this to PSEXETarget.mk?? #Take this to PSEXETarget.mk??
LDSCRIPT ?= $(PSCX_REDUX_DIR)/ps-exe.ld #LDSCRIPT ?= $(PSCX_REDUX_DIR)/ps-exe.ld
ifneq ($(strip $(OVERLAYSCRIPT)),) #ifneq ($(strip $(OVERLAYSCRIPT)),)
LDSCRIPT := $(addprefix $(OVERLAYSCRIPT) , -T$(LDSCRIPT)) #LDSCRIPT := $(addprefix $(OVERLAYSCRIPT) , -T$(LDSCRIPT))
else #else
LDSCRIPT := $(addprefix $(PSCX_REDUX_DIR)/default.ld , -T$(LDSCRIPT)) #LDSCRIPT := $(addprefix $(PSCX_REDUX_DIR)/default.ld , -T$(LDSCRIPT))
endif #endif
CC = $(PREFIX)-gcc-10 CC = $(PREFIX)-gcc-10
CXX = $(PREFIX)-g++-10 CXX = $(PREFIX)-g++-10
@ -62,7 +62,7 @@ CCFLAGS += -DJABYENGINE_$(TV_FORMAT)
#Linker flags #Linker flags
LDFLAGS_release += -Os 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 += $(ARCHFLAGS) -Wl,--oformat=$(FORMAT)
LDFLAGS_all += $(LDFLAGS_$(BUILD_PROFILE)) LDFLAGS_all += $(LDFLAGS_$(BUILD_PROFILE))

View File

@ -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 #We use the JabyEngine so we will include ourselves
JABY_ENGINE_LIB_DIR = $(JABY_ENGINE_DIR)/lib/PSX-$(BUILD_PROFILE) JABY_ENGINE_LIB_DIR = $(JABY_ENGINE_DIR)/lib/PSX-$(BUILD_PROFILE)
JABY_ENGINE_LIB_NAME = JabyEngine_$(TV_FORMAT) JABY_ENGINE_LIB_NAME = JabyEngine_$(TV_FORMAT)
#Linking rule #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) $(LD) -o $(TARGET).elf $(LDFLAGS_all) $(LDFLAGS) $(OBJS) -L$(JABY_ENGINE_LIB_DIR) -l$(JABY_ENGINE_LIB_NAME) $(LIBS)
#Strips the psexe #Strips the psexe
$(TARGET).psexe: $(TARGET).elf $(TARGET).psexe: $(TARGET).elf
$(PREFIX)-objcopy $(addprefix -R , $(OVERLAYSECTION)) -O binary $< $@ $(PREFIX)-objcopy $(addprefix -R , $(OVERLAYSECTION)) -O binary $< $@
#Create overlays
$(foreach ovl, $(OVERLAYSECTION), $(OUTPUT_DIR)/Overlay$(ovl)): $(TARGET).elf $(foreach ovl, $(OVERLAYSECTION), $(OUTPUT_DIR)/Overlay$(ovl)): $(TARGET).elf
$(PREFIX)-objcopy -j $(suffix $@) -O binary $< $@ $(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 #Rules section for default compilation and linking
all: $(TARGET).psexe $(foreach ovl, $(OVERLAYSECTION), $(OUTPUT_DIR)/Overlay$(ovl)) all: $(TARGET).psexe $(foreach ovl, $(OVERLAYSECTION), $(OUTPUT_DIR)/Overlay$(ovl))