You've already forked ultrasm64-2
mirror of
https://github.com/HackerN64/ultrasm64-2.git
synced 2026-01-21 10:38:08 -08:00
Add n64-libc
This commit is contained in:
18
Makefile
18
Makefile
@@ -219,6 +219,7 @@ SRC_DIRS := src src/game src/init src/menu src/buffers src/audio $(AUDIO_SRC_DIR
|
||||
BIN_DIRS := bin bin/$(VERSION)
|
||||
|
||||
GODDARD_SRC_DIRS := src/goddard src/goddard/dynlists
|
||||
N64LIBC_SRC_DIRS := lib/n64-libc
|
||||
|
||||
# File dependencies and variables for specific files
|
||||
include Makefile.split
|
||||
@@ -228,6 +229,7 @@ LEVEL_C_FILES := $(wildcard levels/*/leveldata.c) $(wildcard levels/*/script
|
||||
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) $(LEVEL_C_FILES)
|
||||
S_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.s))
|
||||
GODDARD_C_FILES := $(foreach dir,$(GODDARD_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
N64LIBC_C_FILES := $(foreach dir,$(N64LIBC_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
GENERATED_C_FILES := $(BUILD_DIR)/assets/mario_anim_data.c $(BUILD_DIR)/assets/demo_data.c
|
||||
|
||||
# Sound files
|
||||
@@ -254,9 +256,10 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
|
||||
$(foreach file,$(GENERATED_C_FILES),$(file:.c=.o))
|
||||
|
||||
GODDARD_O_FILES := $(foreach file,$(GODDARD_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
N64LIBC_O_FILES := $(foreach file,$(N64LIBC_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
|
||||
# Automatic dependency files
|
||||
DEP_FILES := $(O_FILES:.o=.d) $(GODDARD_O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d
|
||||
DEP_FILES := $(O_FILES:.o=.d) $(GODDARD_O_FILES:.o=.d) $(N64LIBC_O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d
|
||||
|
||||
#==============================================================================#
|
||||
# Compiler Options #
|
||||
@@ -415,7 +418,7 @@ else
|
||||
endif
|
||||
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/debug_text.raw.inc.c
|
||||
|
||||
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(GODDARD_SRC_DIRS) $(ULTRA_SRC_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(MIO0_DIR) $(addprefix $(MIO0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
|
||||
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(GODDARD_SRC_DIRS) $(N64LIBC_SRC_DIRS) $(ULTRA_SRC_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(MIO0_DIR) $(addprefix $(MIO0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
|
||||
|
||||
# Make sure build directory exists before compiling anything
|
||||
DUMMY != mkdir -p $(ALL_DIRS)
|
||||
@@ -612,13 +615,18 @@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT)
|
||||
|
||||
# Link libgoddard
|
||||
$(BUILD_DIR)/libgoddard.a: $(GODDARD_O_FILES)
|
||||
@$(PRINT) "$(GREEN)Linking libgoddard: $(BLUE)$@ $(NO_COL)\n"
|
||||
@$(PRINT) "$(GREEN)Archiving libgoddard: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(AR) rcs -o $@ $(GODDARD_O_FILES)
|
||||
|
||||
# Link n64-libc
|
||||
$(BUILD_DIR)/n64-libc.a: $(N64LIBC_O_FILES)
|
||||
@$(PRINT) "$(GREEN)Archiving n64-libc: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(AR) rcs -o $@ $(N64LIBC_O_FILES)
|
||||
|
||||
# Link SM64 ELF file
|
||||
$(ELF): $(LIBULTRA_BUILD_DIR)/libgultra_rom.a $(O_FILES) $(MIO0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/libgoddard.a
|
||||
$(ELF): $(LIBULTRA_BUILD_DIR)/libgultra_rom.a $(O_FILES) $(MIO0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/libgoddard.a $(BUILD_DIR)/n64-libc.a
|
||||
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) -L $(BUILD_DIR) -L $(LIBULTRA_BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -lgultra_rom -lgoddard
|
||||
$(V)$(LD) -L $(BUILD_DIR) -L $(LIBULTRA_BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -lgultra_rom -lgoddard -l:n64-libc.a
|
||||
|
||||
# Build ROM
|
||||
PAD_TO_GAP_FILL := --pad-to=0x800000 --gap-fill=0xFF
|
||||
|
||||
4
sm64.ld
4
sm64.ld
@@ -52,6 +52,7 @@ SECTIONS
|
||||
AUDIO_DIR*.o(.text);
|
||||
ULTRA_BUILD_DIR/libgultra_rom.a:*.o(.text);
|
||||
BUILD_DIR/src/audio/external.o(.text);
|
||||
BUILD_DIR/n64-libc.a*:.o(.text);
|
||||
BUILD_DIR/lib/rsp.o(.text);
|
||||
|
||||
BUILD_DIR/asm/entry.o(.data*);
|
||||
@@ -61,6 +62,7 @@ SECTIONS
|
||||
AUDIO_DIR*.o(.data*);
|
||||
ULTRA_BUILD_DIR/libgultra_rom.a:*.o(.data*);
|
||||
BUILD_DIR/src/audio/external.o(.data*);
|
||||
BUILD_DIR/n64-libc.a*:.o(.data*);
|
||||
BUILD_DIR/lib/rsp.o(.data*);
|
||||
|
||||
BUILD_DIR/asm/entry.o(.rodata*);
|
||||
@@ -70,6 +72,7 @@ SECTIONS
|
||||
AUDIO_DIR*.o(.rodata*);
|
||||
ULTRA_BUILD_DIR/libgultra_rom.a:*.o(.rodata*);
|
||||
BUILD_DIR/src/audio/external.o(.rodata*);
|
||||
BUILD_DIR/n64-libc.a*:.o(.rodata*);
|
||||
BUILD_DIR/lib/rsp.o(.rodata*);
|
||||
#ifdef LIBDRAGON_IPL3
|
||||
BUILD_DIR/src/game*.o(.text);
|
||||
@@ -93,6 +96,7 @@ SECTIONS
|
||||
AUDIO_DIR/data.o(.bss*);
|
||||
AUDIO_DIR*.o(.bss*);
|
||||
BUILD_DIR/src/audio/external.o(.bss*);
|
||||
BUILD_DIR/n64-libc.a*:.o(.bss*);
|
||||
ULTRA_BUILD_DIR/libgultra_rom.a:*.o(.bss*);
|
||||
BUILD_DIR/src/game*.o(.bss*);
|
||||
. = ALIGN(0x10);
|
||||
|
||||
Reference in New Issue
Block a user