@@ -57,11 +57,6 @@ N64_EMULATOR ?=
5757# This may also be used to disable debug features on debug ROMs by setting DEBUG_FEATURES to 0
5858# DEBUG_FEATURES ?= 1
5959
60- CFLAGS ?=
61- CCASFLAGS ?=
62- CPPFLAGS ?=
63- CPP_DEFINES ?=
64-
6560# Version-specific settings
6661REGIONAL_CHECKSUM := 0
6762ifeq ($(VERSION ) ,ntsc-1.0)
@@ -209,7 +204,6 @@ EXTRACTED_DIR := extracted/$(VERSION)
209204VENV := .venv
210205
211206MAKE = make
212- CPPFLAGS += -P -xc -fno-dollars-in-identifiers
213207
214208ifeq ($(PLATFORM ) ,N64)
215209 CPP_DEFINES += -DPLATFORM_N64=1 -DPLATFORM_GC=0 -DPLATFORM_IQUE=0
@@ -287,6 +281,9 @@ ifeq ($(ORIG_COMPILER),1)
287281 CCAS := $(CC )
288282endif
289283
284+ EGCS_PREFIX := tools/egcs/$(DETECTED_OS ) /
285+ EGCS_CC := $(EGCS_PREFIX ) gcc -B $(EGCS_PREFIX )
286+
290287AS := $(MIPS_BINUTILS_PREFIX ) as
291288LD := $(MIPS_BINUTILS_PREFIX ) ld
292289OBJCOPY := $(MIPS_BINUTILS_PREFIX ) objcopy
@@ -335,10 +332,6 @@ SEQ_CPPFLAGS := -D_LANGUAGE_ASEQ -DMML_VERSION=MML_VERSION_OOT $(CPP_DEFINES) -
335332SBCFLAGS := --matching
336333SFCFLAGS := --matching
337334
338- CFLAGS += $(CPP_DEFINES )
339- CCASFLAGS := $(CPP_DEFINES )
340- CPPFLAGS += $(CPP_DEFINES )
341-
342335# Extra debugging steps
343336ifeq ($(DEBUG_OBJECTS ) ,1)
344337 OBJDUMP_CMD = @$(OBJDUMP ) $(OBJDUMP_FLAGS ) $@ > $(@:.o=.s )
@@ -360,20 +353,20 @@ ifeq ($(DEBUG_FEATURES),1)
360353 GBI_DEFINES += -DGBI_DEBUG
361354endif
362355
363- CFLAGS += $(GBI_DEFINES )
364-
365- ASFLAGS := -march=vr4300 -32 -no-pad-sections -Iinclude -I$(EXTRACTED_DIR )
356+ CPPFLAGS += -P -xc -fno-dollars-in-identifiers $(CPP_DEFINES )
357+ ASFLAGS += -march=vr4300 -32 -no-pad-sections -Iinclude -I$(EXTRACTED_DIR )
366358
367359ifeq ($(COMPILER ) ,gcc)
368- 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
369- CCASFLAGS += -G 0 -nostdinc $(INC ) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -fno-PIC -fno-common -Wa,-no-pad-sections
360+ 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 )
361+ CCASFLAGS += $( CPP_DEFINES ) $( GBI_DEFINES ) -G 0 -nostdinc $(INC ) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -fno-PIC -fno-common -Wa,-no-pad-sections
370362 MIPS_VERSION := -mips3
371363else
372364 # Suppress warnings for wrong number of macro arguments (to fake variadic
373365 # macros) and Microsoft extensions such as anonymous structs (which the
374366 # compiler does support but warns for their usage).
375- CFLAGS += -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC ) -Wab,-r4300_mul -woff 516,609,649,838,712,807
376- CCASFLAGS += -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC ) -Wab,-r4300_mul -woff 516,609,649,838,712,807 -o32
367+ CFLAGS += $(CPP_DEFINES ) $(GBI_DEFINES ) -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC ) -Wab,-r4300_mul -woff 516,609,649,838,712,807
368+ CCASFLAGS += $(CPP_DEFINES ) $(GBI_DEFINES ) -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC ) -Wab,-r4300_mul -woff 516,609,649,838,712,807 -o32
369+ EGCS_CFLAGS += $(CPP_DEFINES ) $(GBI_DEFINES ) -G 0 -nostdinc $(INC ) -mcpu=vr4300 -mabi=32 -mgp32 -mfp32 -fno-PIC
377370 MIPS_VERSION := -mips2
378371endif
379372
@@ -503,7 +496,7 @@ O_FILES := $(foreach f,$(S_FILES:.s=.o),$(BUILD_DIR)/$f) \
503496 $(foreach f,$(ASSET_C_FILES_COMMITTED:.c=.o ) ,$(BUILD_DIR ) /$f) \
504497 $(foreach f,$(BASEROM_BIN_FILES ) ,$(BUILD_DIR ) /baserom/$(notdir $f) .o) \
505498 $(BUILD_DIR ) /src/code/z_message_z_game_over.o \
506- $(BUILD_DIR ) /src/makerom/ipl3.o
499+ $(BUILD_DIR ) /src/makerom/ipl3.o
507500
508501OVL_RELOC_FILES := $(shell $(CPP ) $(CPPFLAGS ) $(SPEC ) | $(BUILD_DIR_REPLACE ) | grep -o '[^"]* _reloc.o' )
509502
@@ -564,6 +557,34 @@ endif
564557$(BUILD_DIR ) /src/code/jpegutils.o : CC := $(CC_OLD )
565558$(BUILD_DIR ) /src/code/jpegdecoder.o : CC := $(CC_OLD )
566559
560+ ifeq ($(PLATFORM ) ,IQUE)
561+ # Some files are compiled with EGCS on iQue
562+ EGCS_O_FILES += $(BUILD_DIR ) /src/boot/boot_main.o
563+ EGCS_O_FILES += $(BUILD_DIR ) /src/boot/idle.o
564+ EGCS_O_FILES += $(BUILD_DIR ) /src/boot/z_locale.o
565+ EGCS_O_FILES += $(BUILD_DIR ) /src/boot/z_std_dma.o
566+ EGCS_O_FILES += $(BUILD_DIR ) /src/boot/zlib.o
567+ # EGCS_O_FILES += (BUILD_DIR)/src/code/z_actor.o
568+ EGCS_O_FILES += $(BUILD_DIR ) /src/code/z_common_data.o
569+ EGCS_O_FILES += $(BUILD_DIR ) /src/code/z_construct.o
570+ # EGCS_O_FILES += (BUILD_DIR)/src/code/z_kanfont.o
571+ # EGCS_O_FILES += (BUILD_DIR)/src/code/z_message.o
572+ EGCS_O_FILES += $(BUILD_DIR ) /src/code/z_parameter.o
573+ # EGCS_O_FILES += (BUILD_DIR)/src/code/z_sram.o
574+ EGCS_O_FILES += $(BUILD_DIR ) /src/overlays/actors/ovl_En_Mag/z_en_mag.o
575+ EGCS_O_FILES += $(BUILD_DIR ) /src/overlays/actors/ovl_End_Title/z_end_title.o
576+ EGCS_O_FILES += $(BUILD_DIR ) /src/overlays/actors/ovl_Fishing/z_fishing.o
577+ # EGCS_O_FILES += (BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.o
578+ EGCS_O_FILES += $(BUILD_DIR ) /src/overlays/gamestates/ovl_opening/z_opening.o
579+ EGCS_O_FILES += $(BUILD_DIR ) /src/overlays/gamestates/ovl_title/z_title.o
580+ EGCS_O_FILES += $(BUILD_DIR ) /src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.o
581+ EGCS_O_FILES += $(BUILD_DIR ) /src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.o
582+
583+ $(EGCS_O_FILES ) : CC := $(EGCS_CC )
584+ $(EGCS_O_FILES ) : CFLAGS := $(EGCS_CFLAGS ) -mno-abicalls
585+ $(EGCS_O_FILES ) : MIPS_VERSION := -mips3
586+ endif
587+
567588ifeq ($(DEBUG_FEATURES ) ,1)
568589$(BUILD_DIR ) /src/libc/% .o : OPTFLAGS := -g
569590$(BUILD_DIR ) /src/libc/% .o : ASOPTFLAGS := -g
@@ -589,7 +610,12 @@ endif
589610$(BUILD_DIR ) /src/audio/sfx.o : CFLAGS += -use_readwrite_const
590611$(BUILD_DIR ) /src/audio/sequence.o : CFLAGS += -use_readwrite_const
591612
613+ ifeq ($(PLATFORM ) ,IQUE)
614+ $(BUILD_DIR ) /src/libultra/% .o : CC := $(EGCS_CC )
615+ $(BUILD_DIR ) /src/libultra/% .o : CFLAGS := $(EGCS_CFLAGS ) -mno-abicalls
616+ else
592617$(BUILD_DIR ) /src/libultra/% .o : CC := $(CC_OLD )
618+ endif
593619
594620$(BUILD_DIR ) /src/libultra/libc/ll.o : OPTFLAGS := -O1
595621$(BUILD_DIR ) /src/libultra/libc/ll.o : MIPS_VERSION := -mips3 -32
@@ -648,6 +674,11 @@ endif
648674$(BUILD_DIR ) /src/libleo/% .o : CC := $(CC_OLD )
649675$(BUILD_DIR ) /src/libleo/% .o : OPTFLAGS := -O2
650676
677+ ifeq ($(PLATFORM ) ,IQUE)
678+ $(BUILD_DIR ) /src/libgcc/% .o : CC := $(EGCS_CC )
679+ $(BUILD_DIR ) /src/libgcc/% .o : CFLAGS := $(EGCS_CFLAGS )
680+ endif
681+
651682$(BUILD_DIR ) /assets/misc/z_select_static/% .o : GBI_DEFINES := -DF3DEX_GBI
652683
653684# For using asm_processor on some files:
0 commit comments