@@ -67,7 +67,7 @@ else ifeq ($(SAVETYPE),sram)
6767 DEFINES += SRAM=1
6868endif
6969
70- DEFINES += NO_ERRNO_H=1 NO_GZIP=1
70+ DEFINES += NO_ERRNO_H=1
7171
7272# VERSION - selects the version of the game to build
7373# jp - builds the 1996 Japanese version
@@ -269,12 +269,10 @@ BUILD_DIR_BASE := build
269269# BUILD_DIR is the location where all build artifacts are placed
270270BUILD_DIR := $(BUILD_DIR_BASE ) /$(VERSION ) _$(CONSOLE )
271271
272- COMPRESS ?= lz4t
272+ COMPRESS ?= gzip
273273$(eval $(call validate-option,COMPRESS,mio0 yay0 lz4t gzip rnc1 rnc2 uncomp))
274274ifeq ($(COMPRESS ) ,gzip)
275275 DEFINES += GZIP=1
276- LIBZRULE := $(BUILD_DIR ) /libz.a
277- LIBZLINK := -lz
278276else ifeq ($(COMPRESS),rnc1)
279277 DEFINES += RNC1=1
280278else ifeq ($(COMPRESS),rnc2)
@@ -289,9 +287,6 @@ else ifeq ($(COMPRESS),uncomp)
289287 DEFINES += UNCOMPRESSED=1
290288endif
291289
292- GZIPVER ?= std
293- $(eval $(call validate-option,GZIPVER,std libdef))
294-
295290# Whether to hide commands or not
296291VERBOSE ?= 0
297292ifeq ($(VERBOSE ) ,0)
@@ -375,7 +370,6 @@ BUILD_DIR_BASE := build
375370BUILD_DIR := $(BUILD_DIR_BASE ) /$(VERSION ) _$(CONSOLE )
376371ROM := $(BUILD_DIR ) /$(TARGET_STRING ) .z64
377372ELF := $(BUILD_DIR ) /$(TARGET_STRING ) .elf
378- LIBZ := $(BUILD_DIR ) /libz.a
379373LD_SCRIPT := sm64.ld
380374YAY0_DIR := $(BUILD_DIR ) /bin
381375SOUND_BIN_DIR := $(BUILD_DIR ) /sound
@@ -384,7 +378,7 @@ ACTOR_DIR := actors
384378LEVEL_DIRS := $(patsubst levels/% ,% ,$(dir $(wildcard levels/* /header.h) ) )
385379
386380# Directories containing source files
387- SRC_DIRS += src src/boot src/game src/engine src/audio src/menu src/buffers lib/librtc actors levels bin data assets asm lib sound
381+ SRC_DIRS += src src/boot src/boot/deflate src/ game src/engine src/audio src/menu src/buffers lib/librtc actors levels bin data assets asm lib sound
388382LIBZ_SRC_DIRS := src/libz
389383GODDARD_SRC_DIRS := src/goddard src/goddard/dynlists
390384BIN_DIRS := bin bin/$(VERSION )
@@ -396,7 +390,6 @@ include Makefile.split
396390LEVEL_C_FILES := $(wildcard levels/* /leveldata.c) $(wildcard levels/* /script.c) $(wildcard levels/* /geo.c)
397391C_FILES := $(foreach dir,$(SRC_DIRS ) ,$(wildcard $(dir ) /* .c) ) $(LEVEL_C_FILES )
398392CPP_FILES := $(foreach dir,$(SRC_DIRS ) ,$(wildcard $(dir ) /* .cpp) )
399- LIBZ_C_FILES := $(foreach dir,$(LIBZ_SRC_DIRS ) ,$(wildcard $(dir ) /* .c) )
400393GODDARD_C_FILES := $(foreach dir,$(GODDARD_SRC_DIRS ) ,$(wildcard $(dir ) /* .c) )
401394S_FILES := $(foreach dir,$(SRC_DIRS ) ,$(wildcard $(dir ) /* .s) )
402395GENERATED_C_FILES := $(BUILD_DIR ) /assets/mario_anim_data.c $(BUILD_DIR ) /assets/demo_data.c
@@ -425,11 +418,10 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
425418 $(foreach file,$(GENERATED_C_FILES ) ,$(file:.c=.o ) ) \
426419 lib/PR/hvqm/hvqm2sp1.o lib/PR/hvqm/hvqm2sp2.o
427420
428- LIBZ_O_FILES := $(foreach file,$(LIBZ_C_FILES ) ,$(BUILD_DIR ) /$(file:.c=.o ) )
429421GODDARD_O_FILES := $(foreach file,$(GODDARD_C_FILES ) ,$(BUILD_DIR ) /$(file:.c=.o ) )
430422
431423# Automatic dependency files
432- DEP_FILES := $(O_FILES:.o=.d ) $(LIBZ_O_FILES:.o=.d ) $( GODDARD_O_FILES:.o=.d ) $(BUILD_DIR ) /$(LD_SCRIPT ) .d
424+ DEP_FILES := $(O_FILES:.o=.d ) $(GODDARD_O_FILES:.o=.d ) $(BUILD_DIR ) /$(LD_SCRIPT ) .d
433425
434426# ==============================================================================#
435427# Compiler Options #
456448 $(error Unable to detect a suitable MIPS toolchain installed)
457449endif
458450
459- LIBRARIES := nustd hvqm2 z goddard
451+ LIBRARIES := nustd hvqm2 goddard
460452
461453LINK_LIBRARIES = $(foreach i,$(LIBRARIES ) ,-l$(i ) )
462454
@@ -547,6 +539,7 @@ RSPASMFLAGS := $(foreach d,$(DEFINES),-definelabel $(subst =, ,$(d)))
547539YAY0TOOL := $(TOOLS_DIR ) /slienc
548540MIO0TOOL := $(TOOLS_DIR ) /mio0
549541LZ4TPACK := $(TOOLS_DIR ) /lz4tpack
542+ DEFLATEPACK := $(TOOLS_DIR ) /deflatepack
550543RNCPACK := $(TOOLS_DIR ) /rncpack
551544FILESIZER := $(TOOLS_DIR ) /filesizer
552545N64CKSUM := $(TOOLS_DIR ) /n64cksum
@@ -560,11 +553,6 @@ EXTRACT_DATA_FOR_MIO := $(TOOLS_DIR)/extract_data_for_mio
560553SKYCONV := $(TOOLS_DIR ) /skyconv
561554FIXLIGHTS_PY := $(TOOLS_DIR ) /fixlights.py
562555FLIPS := $(TOOLS_DIR ) /flips
563- ifeq ($(GZIPVER ) ,std)
564- GZIP := gzip
565- else
566- GZIP := libdeflate-gzip
567- endif
568556# Use the system installed armips if available. Otherwise use the one provided with this repository.
569557ifneq (,$(call find-command,armips) )
570558 RSPASM := armips
@@ -686,11 +674,6 @@ endif
686674
687675$(CRASH_TEXTURE_C_FILES ) : TEXTURE_ENCODING := u32
688676
689- ifeq ($(COMPILER ) ,gcc)
690- $(BUILD_DIR ) /src/libz/% .o : OPT_FLAGS := -Os
691- $(BUILD_DIR ) /src/libz/% .o : CFLAGS += -Wno-implicit-fallthrough -Wno-unused-parameter -Wno-pointer-sign
692- endif
693-
694677ifeq ($(VERSION ) ,eu)
695678 TEXT_DIRS := text/de text/us text/fr
696679
@@ -731,7 +714,7 @@ $(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := $(GRAPH_NODE_OPT_FLAG
731714# $(info MATH_UTIL_OPT_FLAGS: $(MATH_UTIL_OPT_FLAGS))
732715# $(info GRAPH_NODE_OPT_FLAGS: $(GRAPH_NODE_OPT_FLAGS))
733716
734- ALL_DIRS := $(BUILD_DIR ) $(addprefix $(BUILD_DIR ) /,$(SRC_DIRS ) asm/debug $(GODDARD_SRC_DIRS ) $(LIBZ_SRC_DIRS ) $( ULTRA_BIN_DIRS ) $(BIN_DIRS ) $(TEXTURE_DIRS ) $(TEXT_DIRS ) $(SOUND_SAMPLE_DIRS ) $(addprefix levels/,$(LEVEL_DIRS ) ) rsp include) $(YAY0_DIR ) $(addprefix $(YAY0_DIR ) /,$(VERSION ) ) $(SOUND_BIN_DIR ) $(SOUND_BIN_DIR ) /sequences/$(VERSION )
717+ ALL_DIRS := $(BUILD_DIR ) $(addprefix $(BUILD_DIR ) /,$(SRC_DIRS ) asm/debug $(GODDARD_SRC_DIRS ) $(ULTRA_BIN_DIRS ) $(BIN_DIRS ) $(TEXTURE_DIRS ) $(TEXT_DIRS ) $(SOUND_SAMPLE_DIRS ) $(addprefix levels/,$(LEVEL_DIRS ) ) rsp include) $(YAY0_DIR ) $(addprefix $(YAY0_DIR ) /,$(VERSION ) ) $(SOUND_BIN_DIR ) $(SOUND_BIN_DIR ) /sequences/$(VERSION )
735718
736719# Make sure build directory exists before compiling anything
737720DUMMY != mkdir -p $(ALL_DIRS)
@@ -938,13 +921,8 @@ $(BUILD_DIR)/libgoddard.a: $(GODDARD_O_FILES)
938921 @$(PRINT ) " $( GREEN) Linking libgoddard: $( BLUE) $@ $( NO_COL) \n"
939922 $(V )$(AR ) rcs -o $@ $(GODDARD_O_FILES )
940923
941- # Link libz
942- $(BUILD_DIR ) /libz.a : $(LIBZ_O_FILES )
943- @$(PRINT ) " $( GREEN) Linking libz: $( BLUE) $@ $( NO_COL) \n"
944- $(V )$(AR ) rcs -o $@ $(LIBZ_O_FILES )
945-
946924# SS2: Goddard rules to get size
947- $(BUILD_DIR ) /sm64_prelim.ld : sm64.ld $(O_FILES ) $(YAY0_OBJ_FILES ) $(SEG_FILES ) $(BUILD_DIR ) /libgoddard.a $( BUILD_DIR ) /libz.a
925+ $(BUILD_DIR ) /sm64_prelim.ld : sm64.ld $(O_FILES ) $(YAY0_OBJ_FILES ) $(SEG_FILES ) $(BUILD_DIR ) /libgoddard.a
948926 $(call print,Preprocessing preliminary linker script:,$< ,$@ )
949927 $(V )$(CPP ) $(CPPFLAGS ) -DPRELIMINARY=1 -DBUILD_DIR=$(BUILD_DIR ) -DULTRALIB=lib$(ULTRALIB ) -MMD -MP -MT $@ -MF $@ .d -o $@ $<
950928
@@ -962,7 +940,7 @@ $(BUILD_DIR)/asm/debug/map.o: asm/debug/map.s $(BUILD_DIR)/sm64_prelim.elf
962940 $(V )$(CROSS ) gcc -c $(ASMFLAGS ) $(foreach i,$(INCLUDE_DIRS ) ,-Wa,-I$(i ) ) -x assembler-with-cpp -MMD -MF $(BUILD_DIR ) /$* .d -o $@ $<
963941
964942# Link SM64 ELF file
965- $(ELF ) : $(BUILD_DIR ) /sm64_prelim.elf $(BUILD_DIR ) /asm/debug/map.o $(O_FILES ) $(YAY0_OBJ_FILES ) $(SEG_FILES ) $(BUILD_DIR ) /$(LD_SCRIPT ) $(BUILD_DIR ) /libz.a $( BUILD_DIR ) / libgoddard.a
943+ $(ELF ) : $(BUILD_DIR ) /sm64_prelim.elf $(BUILD_DIR ) /asm/debug/map.o $(O_FILES ) $(YAY0_OBJ_FILES ) $(SEG_FILES ) $(BUILD_DIR ) /$(LD_SCRIPT ) $(BUILD_DIR ) /libgoddard.a
966944 @$(PRINT ) " $( GREEN) Linking ELF file: $( BLUE) $@ $( NO_COL) \n"
967945 $(V )$(LD ) --gc-sections -L $(BUILD_DIR ) -T $(BUILD_DIR ) /$(LD_SCRIPT ) -T goddard.txt -Map $(BUILD_DIR ) /sm64.$(VERSION ) .map --no-check-sections $(addprefix -R ,$(SEG_FILES ) ) -o $@ $(O_FILES ) -L$(LIBS_DIR ) -l$(ULTRALIB ) -Llib $(LINK_LIBRARIES ) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR ) -lgcc
968946
0 commit comments