Makefile changes 1

This commit is contained in:
username
2025-02-18 12:41:28 -05:00
parent 599f81ea5d
commit 1afde17e88
2 changed files with 1 additions and 176 deletions

View File

@@ -182,6 +182,7 @@ endif
#==============================================================================#
TOOLS_DIR := tools
LIBULTRA_DIR := lib/hackerlibultra
# (This is a bit hacky, but a lot of rules implicitly depend
# on tools and assets, and we use directory globs further down
@@ -349,7 +350,6 @@ DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
EGCS_AS := $(EGCS_PATH)/as
EGCS_ASFLAGS = -mcpu=r4300 -mabi=32 $(foreach i,$(INCLUDE_DIRS),-I$(i))
include libultra.mk
ifeq ($(VERSION),cn)
EGCS_REASSEMBLED_ASM_FILES := $(wildcard asm/*.s)

View File

@@ -1,175 +0,0 @@
ifeq ($(VERSION),jp)
LIBULTRA ?= D
else ifeq ($(VERSION),us)
LIBULTRA ?= D
LIBULTRA_REVISION ?= 1
else ifeq ($(VERSION),eu)
LIBULTRA ?= F
else ifeq ($(VERSION),sh)
LIBULTRA ?= H
else ifeq ($(VERSION),cn)
LIBULTRA ?= BB
endif
# Libultra number revision (only used on 2.0D)
LIBULTRA_REVISION ?= 0
# Special define for exclusive libultra files (driverominit)
LIBULTRA_EXCLUSIVE ?= 0
# LIBULTRA - sets the libultra OS version to use
$(eval $(call validate-option,LIBULTRA,D F H I K L BB))
ULTRA_VER_D := 1
ULTRA_VER_E := 2
ULTRA_VER_F := 3
ULTRA_VER_G := 4
ULTRA_VER_H := 5
ULTRA_VER_I := 6
ULTRA_VER_J := 7
ULTRA_VER_K := 8
ULTRA_VER_L := 9
ifeq ($(LIBULTRA),BB)
ULTRA_SRC_DIRS := $(shell find lib/ultra -type d)
ULTRA_VER_DEF := -DLIBULTRA_VERSION=$(ULTRA_VER_L) -DBBPLAYER -DLIBULTRA_STR_VER=\"L\"
LIBGULTRA ?= 1
else
ULTRA_SRC_DIRS := $(shell find lib/ultra -type d -not -path "lib/ultra/bb/*")
ULTRA_VER_DEF := -DLIBULTRA_VERSION=$(ULTRA_VER_$(LIBULTRA)) -DLIBULTRA_REVISION=$(LIBULTRA_REVISION) -DLIBULTRA_STR_VER=\"$(LIBULTRA)\"
endif
DEF_INC_CFLAGS += $(ULTRA_VER_DEF)
ifeq ($(NON_MATCHING),1)
LIBULTRA_EXCLUSIVE := 1
DEF_INC_CFLAGS += -DLIBULTRA_EXCLUSIVE
endif
# LIBGULTRA - whenever to compile libultra using IDO or GNU
# 1 - uses egcs to match iQue (uses gcc if COMPILER is gcc)
# 0 - uses ido, used to match JP, US, EU and Shindou
LIBGULTRA ?= 1
$(eval $(call validate-option,LIBGULTRA,0 1))
ULTRA_C_FILES := $(foreach dir,$(ULTRA_SRC_DIRS),$(wildcard $(dir)/*.c))
ULTRA_S_FILES := $(foreach dir,$(ULTRA_SRC_DIRS),$(wildcard $(dir)/*.s))
ULTRA_O_C_FILES := $(foreach file,$(ULTRA_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
ULTRA_O_AS_FILES := $(foreach file,$(ULTRA_S_FILES),$(BUILD_DIR)/$(file:.s=.o))
ULTRA_O_FILES := $(ULTRA_O_C_FILES) $(ULTRA_O_AS_FILES)
DEP_FILES += $(ULTRA_O_FILES:.o=.d)
LIBULTRA_AR := $(BUILD_DIR)/libultra.a
libultra: $(LIBULTRA_AR)
REG_SIZES := -mgp32
NOABICALL := -mno-abicalls
OPT_FLAGS_LIBC :=
ifeq ($(LIBULTRA),BB)
OPT_FLAGS_LIBC := -O2
else
ifneq ($(LIBULTRA),D)
OPT_FLAGS_LIBC := -O3
endif
endif
ULTRA_CC := $(CC)
ULTRA_CFLAGS = -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -G 0 -signed -32
ULTRA_ASFLAGS = -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -G 0 -nostdinc -o32 -c
GULTRA_CC := COMPILER_PATH=$(EGCS_PATH) $(EGCS_PATH)/gcc
GULTRA_CFLAGS = -mcpu=r4300 -fno-pic -Wa,--strip-local-absolute -G 0
GULTRA_ASFLAGS = -mcpu=r4300 -fno-pic -x assembler-with-cpp -c -DEGCS_GCC
ifeq ($(LIBGULTRA),1)
$(ULTRA_O_C_FILES): CC := $(CC)
$(ULTRA_O_C_FILES): CFLAGS = $(GULTRA_CFLAGS) $(NOABICALL) $(REG_SIZES)
$(ULTRA_O_AS_FILES): AS := $(GULTRA_CC)
$(ULTRA_O_AS_FILES): ASFLAGS = $(GULTRA_ASFLAGS)
$(ULTRA_O_AS_FILES): MIPSISET :=
else
$(ULTRA_O_C_FILES): CC := $(ULTRA_CC)
$(ULTRA_O_C_FILES): CFLAGS = $(ULTRA_CFLAGS)
$(ULTRA_O_AS_FILES): AS := $(ULTRA_CC)
$(ULTRA_O_AS_FILES): ASFLAGS = $(ULTRA_ASFLAGS)
$(ULTRA_O_AS_FILES): OPT_FLAGS :=
$(ULTRA_O_AS_FILES): MIPSISET := -mips2
endif
# Libultra specific flags
ifneq ($(LIBULTRA),BB)
$(BUILD_DIR)/lib/ultra/os/exceptasm.o: MIPSISET := -mips3
$(BUILD_DIR)/lib/ultra/libc/%.o: ASOPT_FLAGS := -O2
$(BUILD_DIR)/lib/ultra/libc/ll.o: MIPSISET := -mips3 -32
$(BUILD_DIR)/lib/ultra/libc/ll%.o: MIPSISET := -mips3 -32
endif
ifeq ($(NON_MATCHING),0)
$(BUILD_DIR)/lib/ultra/%.o: OPT_FLAGS :=
$(BUILD_DIR)/lib/ultra/audio/bnkf.o: OPT_FLAGS := -O3
$(BUILD_DIR)/lib/ultra/gu/%.o: OPT_FLAGS := -O3
$(BUILD_DIR)/lib/ultra/libc/ldiv.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/ultra/libc/string.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/ultra/libc/sprintf.o: OPT_FLAGS := $(OPT_FLAGS_LIBC)
$(BUILD_DIR)/lib/ultra/libc/syncprintf.o: OPT_FLAGS := $(OPT_FLAGS_LIBC)
$(BUILD_DIR)/lib/ultra/libc/xlitob.o: OPT_FLAGS := $(OPT_FLAGS_LIBC)
$(BUILD_DIR)/lib/ultra/libc/xldtob.o: OPT_FLAGS := $(OPT_FLAGS_LIBC)
$(BUILD_DIR)/lib/ultra/libc/xprintf.o: OPT_FLAGS := $(OPT_FLAGS_LIBC)
ifeq ($(LIBULTRA),BB)
$(BUILD_DIR)/lib/ultra/%.o: MIPSISET :=
$(BUILD_DIR)/lib/ultra/bb/os/%.o: MIPSISET := -mips3
$(BUILD_DIR)/lib/ultra/bb/os/%.o: REG_SIZES := -mgp64
$(BUILD_DIR)/lib/ultra/bb/wrapper.o: NOABICALL :=
$(BUILD_DIR)/lib/ultra/bb/wrapper.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/ultra/gu/%.o: MIPSISET := -mips2
$(BUILD_DIR)/lib/ultra/gu/%.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/ultra/io/%.o: MIPSISET := -mips2
$(BUILD_DIR)/lib/ultra/io/%.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/ultra/libc/%.o: MIPSISET := -mips2
$(BUILD_DIR)/lib/ultra/os/%.o: MIPSISET := -mips2
$(BUILD_DIR)/lib/ultra/os/%.o: ASOPT_FLAGS := -O2
endif
endif
$(BUILD_DIR)/lib/ultra/%.o: lib/ultra/%.c
$(call print,Compiling:,$<,$@)
$(V)$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/lib/ultra/$*.d $<
$(V)$(CC) -c $(CFLAGS) $(TARGET_CFLAGS) $(OPT_FLAGS) $(MIPSISET) $(DEF_INC_CFLAGS) -o $@ $<
ifeq ($(LIBGULTRA),1)
$(V)$(TOOLS_DIR)/patch_elf_32bit $@
endif
$(BUILD_DIR)/lib/ultra/%.o: lib/ultra/%.s
$(call print,Assembling:,$<,$@)
$(V)$(AS) $(ASFLAGS) $(ASOPT_FLAGS) $(MIPSISET) $(DEF_INC_CFLAGS) -o $@ $<
ifeq ($(LIBULTRA_EXCLUSIVE),0)
# Exclusive file due to being in audio alongside using IDO and different optimization flags
$(BUILD_DIR)/lib/ultra/io/driverominit.o: lib/ultra/io/driverominit.c
$(call print,Compiling:,$<,$@)
$(V)$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/lib/ultra/io/$*.d $<
$(V)$(ULTRA_CC) -c $(ULTRA_CFLAGS) $(TARGET_CFLAGS) $(DEF_INC_CFLAGS) -mips2 -g -o $@ $<
endif
# Link libultra
$(LIBULTRA_AR): $(ULTRA_O_FILES)
@$(PRINT) "$(GREEN)Linking libultra: $(BLUE)$@ $(NO_COL)\n"
$(V)$(AR) rcs -o $@ $(ULTRA_O_FILES)
$(V)$(TOOLS_DIR)/patch_elf_32bit $@