diff options
| author | cadmic <cadmic24@gmail.com> | 2025-01-02 00:35:22 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-02 03:35:22 -0500 |
| commit | 9dafc2f2e4cecff745be05b7003f4e5b2e9f2ba9 (patch) | |
| tree | 0588c180657b7e8a13c98cdbeddc90e5275a72e8 /Makefile | |
| parent | ffc9f2d4f1fe72a9ac2d803177d612600b5ef22e (diff) | |
[iQue] Build some C files with EGCS (#2396)
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 67 |
1 files changed, 49 insertions, 18 deletions
@@ -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: |
