mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-09 00:00:44 +00:00
[iQue] Build some C files with EGCS (#2396)
This commit is contained in:
parent
ffc9f2d4f1
commit
9dafc2f2e4
19 changed files with 121 additions and 37 deletions
67
Makefile
67
Makefile
|
@ -57,11 +57,6 @@ N64_EMULATOR ?=
|
|||
# This may also be used to disable debug features on debug ROMs by setting DEBUG_FEATURES to 0
|
||||
# DEBUG_FEATURES ?= 1
|
||||
|
||||
CFLAGS ?=
|
||||
CCASFLAGS ?=
|
||||
CPPFLAGS ?=
|
||||
CPP_DEFINES ?=
|
||||
|
||||
# Version-specific settings
|
||||
REGIONAL_CHECKSUM := 0
|
||||
ifeq ($(VERSION),ntsc-1.0)
|
||||
|
@ -209,7 +204,6 @@ EXTRACTED_DIR := extracted/$(VERSION)
|
|||
VENV := .venv
|
||||
|
||||
MAKE = make
|
||||
CPPFLAGS += -P -xc -fno-dollars-in-identifiers
|
||||
|
||||
ifeq ($(PLATFORM),N64)
|
||||
CPP_DEFINES += -DPLATFORM_N64=1 -DPLATFORM_GC=0 -DPLATFORM_IQUE=0
|
||||
|
@ -287,6 +281,9 @@ ifeq ($(ORIG_COMPILER),1)
|
|||
CCAS := $(CC)
|
||||
endif
|
||||
|
||||
EGCS_PREFIX := tools/egcs/$(DETECTED_OS)/
|
||||
EGCS_CC := $(EGCS_PREFIX)gcc -B $(EGCS_PREFIX)
|
||||
|
||||
AS := $(MIPS_BINUTILS_PREFIX)as
|
||||
LD := $(MIPS_BINUTILS_PREFIX)ld
|
||||
OBJCOPY := $(MIPS_BINUTILS_PREFIX)objcopy
|
||||
|
@ -335,10 +332,6 @@ SEQ_CPPFLAGS := -D_LANGUAGE_ASEQ -DMML_VERSION=MML_VERSION_OOT $(CPP_DEFINES) -
|
|||
SBCFLAGS := --matching
|
||||
SFCFLAGS := --matching
|
||||
|
||||
CFLAGS += $(CPP_DEFINES)
|
||||
CCASFLAGS := $(CPP_DEFINES)
|
||||
CPPFLAGS += $(CPP_DEFINES)
|
||||
|
||||
# Extra debugging steps
|
||||
ifeq ($(DEBUG_OBJECTS),1)
|
||||
OBJDUMP_CMD = @$(OBJDUMP) $(OBJDUMP_FLAGS) $@ > $(@:.o=.s)
|
||||
|
@ -360,20 +353,20 @@ ifeq ($(DEBUG_FEATURES),1)
|
|||
GBI_DEFINES += -DGBI_DEBUG
|
||||
endif
|
||||
|
||||
CFLAGS += $(GBI_DEFINES)
|
||||
|
||||
ASFLAGS := -march=vr4300 -32 -no-pad-sections -Iinclude -I$(EXTRACTED_DIR)
|
||||
CPPFLAGS += -P -xc -fno-dollars-in-identifiers $(CPP_DEFINES)
|
||||
ASFLAGS += -march=vr4300 -32 -no-pad-sections -Iinclude -I$(EXTRACTED_DIR)
|
||||
|
||||
ifeq ($(COMPILER),gcc)
|
||||
CFLAGS += -G 0 -nostdinc $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -mdivide-breaks -fno-PIC -fno-common -ffreestanding -fbuiltin -fno-builtin-sinf -fno-builtin-cosf $(CHECK_WARNINGS) -funsigned-char
|
||||
CCASFLAGS += -G 0 -nostdinc $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -fno-PIC -fno-common -Wa,-no-pad-sections
|
||||
CFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -mdivide-breaks -fno-PIC -fno-common -ffreestanding -funsigned-char -fbuiltin -fno-builtin-sinf -fno-builtin-cosf $(CHECK_WARNINGS)
|
||||
CCASFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -fno-PIC -fno-common -Wa,-no-pad-sections
|
||||
MIPS_VERSION := -mips3
|
||||
else
|
||||
# Suppress warnings for wrong number of macro arguments (to fake variadic
|
||||
# macros) and Microsoft extensions such as anonymous structs (which the
|
||||
# compiler does support but warns for their usage).
|
||||
CFLAGS += -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC) -Wab,-r4300_mul -woff 516,609,649,838,712,807
|
||||
CCASFLAGS += -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC) -Wab,-r4300_mul -woff 516,609,649,838,712,807 -o32
|
||||
CFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC) -Wab,-r4300_mul -woff 516,609,649,838,712,807
|
||||
CCASFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC) -Wab,-r4300_mul -woff 516,609,649,838,712,807 -o32
|
||||
EGCS_CFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc $(INC) -mcpu=vr4300 -mabi=32 -mgp32 -mfp32 -fno-PIC
|
||||
MIPS_VERSION := -mips2
|
||||
endif
|
||||
|
||||
|
@ -503,7 +496,7 @@ O_FILES := $(foreach f,$(S_FILES:.s=.o),$(BUILD_DIR)/$f) \
|
|||
$(foreach f,$(ASSET_C_FILES_COMMITTED:.c=.o),$(BUILD_DIR)/$f) \
|
||||
$(foreach f,$(BASEROM_BIN_FILES),$(BUILD_DIR)/baserom/$(notdir $f).o) \
|
||||
$(BUILD_DIR)/src/code/z_message_z_game_over.o \
|
||||
$(BUILD_DIR)/src/makerom/ipl3.o
|
||||
$(BUILD_DIR)/src/makerom/ipl3.o
|
||||
|
||||
OVL_RELOC_FILES := $(shell $(CPP) $(CPPFLAGS) $(SPEC) | $(BUILD_DIR_REPLACE) | grep -o '[^"]*_reloc.o' )
|
||||
|
||||
|
@ -564,6 +557,34 @@ endif
|
|||
$(BUILD_DIR)/src/code/jpegutils.o: CC := $(CC_OLD)
|
||||
$(BUILD_DIR)/src/code/jpegdecoder.o: CC := $(CC_OLD)
|
||||
|
||||
ifeq ($(PLATFORM),IQUE)
|
||||
# Some files are compiled with EGCS on iQue
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/boot/boot_main.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/boot/idle.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/boot/z_locale.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/boot/z_std_dma.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/boot/zlib.o
|
||||
# EGCS_O_FILES += (BUILD_DIR)/src/code/z_actor.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/code/z_common_data.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/code/z_construct.o
|
||||
# EGCS_O_FILES += (BUILD_DIR)/src/code/z_kanfont.o
|
||||
# EGCS_O_FILES += (BUILD_DIR)/src/code/z_message.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/code/z_parameter.o
|
||||
# EGCS_O_FILES += (BUILD_DIR)/src/code/z_sram.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/z_en_mag.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/overlays/actors/ovl_End_Title/z_end_title.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/overlays/actors/ovl_Fishing/z_fishing.o
|
||||
# EGCS_O_FILES += (BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/overlays/gamestates/ovl_opening/z_opening.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/overlays/gamestates/ovl_title/z_title.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.o
|
||||
EGCS_O_FILES += $(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.o
|
||||
|
||||
$(EGCS_O_FILES): CC := $(EGCS_CC)
|
||||
$(EGCS_O_FILES): CFLAGS := $(EGCS_CFLAGS) -mno-abicalls
|
||||
$(EGCS_O_FILES): MIPS_VERSION := -mips3
|
||||
endif
|
||||
|
||||
ifeq ($(DEBUG_FEATURES),1)
|
||||
$(BUILD_DIR)/src/libc/%.o: OPTFLAGS := -g
|
||||
$(BUILD_DIR)/src/libc/%.o: ASOPTFLAGS := -g
|
||||
|
@ -589,7 +610,12 @@ endif
|
|||
$(BUILD_DIR)/src/audio/sfx.o: CFLAGS += -use_readwrite_const
|
||||
$(BUILD_DIR)/src/audio/sequence.o: CFLAGS += -use_readwrite_const
|
||||
|
||||
ifeq ($(PLATFORM),IQUE)
|
||||
$(BUILD_DIR)/src/libultra/%.o: CC := $(EGCS_CC)
|
||||
$(BUILD_DIR)/src/libultra/%.o: CFLAGS := $(EGCS_CFLAGS) -mno-abicalls
|
||||
else
|
||||
$(BUILD_DIR)/src/libultra/%.o: CC := $(CC_OLD)
|
||||
endif
|
||||
|
||||
$(BUILD_DIR)/src/libultra/libc/ll.o: OPTFLAGS := -O1
|
||||
$(BUILD_DIR)/src/libultra/libc/ll.o: MIPS_VERSION := -mips3 -32
|
||||
|
@ -648,6 +674,11 @@ endif
|
|||
$(BUILD_DIR)/src/libleo/%.o: CC := $(CC_OLD)
|
||||
$(BUILD_DIR)/src/libleo/%.o: OPTFLAGS := -O2
|
||||
|
||||
ifeq ($(PLATFORM),IQUE)
|
||||
$(BUILD_DIR)/src/libgcc/%.o: CC := $(EGCS_CC)
|
||||
$(BUILD_DIR)/src/libgcc/%.o: CFLAGS := $(EGCS_CFLAGS)
|
||||
endif
|
||||
|
||||
$(BUILD_DIR)/assets/misc/z_select_static/%.o: GBI_DEFINES := -DF3DEX_GBI
|
||||
|
||||
# For using asm_processor on some files:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue