From 43e94ce5920e4dc00ce78624104874cf9f1ac4a5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 4 Sep 2021 12:38:14 -0400 Subject: Refactor .exceptix, 1 --- arm9/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'arm9/Makefile') diff --git a/arm9/Makefile b/arm9/Makefile index e3c573b7..ed96deee 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -220,7 +220,10 @@ $(CXX_OBJS): $(BUILD_DIR)/%.o: %.cpp $$(dep) $(S_OBJS) $(LIBS_OBJS): $(BUILD_DIR)/%.o: %.s $$(dep) $(AS) $(ASFLAGS) -o $@ $< -$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SPEC) $(LD_TEMPLATE) +$(BUILD_DIR)/$(LD_TEMPLATE): $(BUILD_DIR)/%: % + (echo "KEEP_SECTION\n{\n\t.exceptix\n}\n"; cat $<) > $@ + +$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SPEC) $(BUILD_DIR)/$(LD_TEMPLATE) $(MAKELCF) $(MAKELCF_FLAGS) $^ $@ $(ROM): $(BUILD_DIR)/$(LD_SCRIPT) $(O_FILES) $(STATIC_LIBS) -- cgit v1.2.3 From 2f4f4272b562692b33275f83b0133ee7785fe0cf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 4 Sep 2021 13:02:30 -0400 Subject: Remove -nodead from ld flags --- arm9/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arm9/Makefile') diff --git a/arm9/Makefile b/arm9/Makefile index ed96deee..f81930fb 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -112,7 +112,7 @@ ASM_PROCESSOR := $(ASM_PROCESSOR_DIR)/compile.sh ASFLAGS = -proc arm5te -i ../include -i .. -D$(GAME_VERSION) -D$(GAME_LANGUAGE) CFLAGS = -O4,p -gccext,on -proc arm946e -ipa file -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) -LDFLAGS = -nodead -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start +LDFLAGS = -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start LIBS := -Llib -lsyscall ARFLAGS = rcS STATIC_LIBS := $(addprefix $(BUILD_DIR)/lib/,libsyscall.a) -- cgit v1.2.3 From 9aaac32d700191262926a9495a2e5927cdb9e1bd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 4 Sep 2021 13:06:01 -0400 Subject: Real-match math_util.c --- arm9/Makefile | 3 --- 1 file changed, 3 deletions(-) (limited to 'arm9/Makefile') diff --git a/arm9/Makefile b/arm9/Makefile index f81930fb..7fd14a1a 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -196,9 +196,6 @@ $(BUILD_DIR)/lib/%.o: CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 $(BUILD_DIR)/lib/libnns/%.o: MWCCVERSION = 1.2/sp3 -# FIXME: Using -ipa file breaks .rodata alignment -$(BUILD_DIR)/src/math_util.o: CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) - ####################### Everything Else ###################### ifeq (,$(NODEP)) -- cgit v1.2.3 From 7af4107235e6c178d5740782fe510d2df1c825b1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 11 Nov 2021 15:21:59 -0500 Subject: Fix Makefile issues with OSX 11.6 --- arm9/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'arm9/Makefile') diff --git a/arm9/Makefile b/arm9/Makefile index 9529cc58..77141d34 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -135,7 +135,7 @@ GFX = $(TOOLS_DIR)/nitrogfx/nitrogfx$(EXE) SCANINC = $(TOOLS_DIR)/scaninc/scaninc$(EXE) MWASMARM_PATCHER = $(TOOLS_DIR)/mwasmarm_patcher/mwasmarm_patcher$(EXE) -q -TOOLDIRS = $(filter-out $(TOOLS_DIR)/asm_processor $(TOOLS_DIR)/mwccarm $(TOOLS_DIR)/bin,$(wildcard $(TOOLS_DIR)/*)) +TOOLDIRS = $(dir $(wildcard $(TOOLS_DIR)/*/Makefile)) TOOLBASE = $(TOOLDIRS:$(TOOLS_DIR)/%=%) TOOLS = $(foreach tool,$(TOOLBASE),$(TOOLS_DIR)/$(tool)/$(tool)$(EXE)) @@ -218,7 +218,7 @@ $(S_OBJS) $(LIBS_OBJS): $(BUILD_DIR)/%.o: %.s $$(dep) $(AS) $(ASFLAGS) -o $@ $< $(BUILD_DIR)/$(LD_TEMPLATE): $(BUILD_DIR)/%: % - (echo "KEEP_SECTION\n{\n\t.exceptix\n}\n"; cat $<) > $@ + (echo -e "KEEP_SECTION\n{\n\t.exceptix\n}\n"; cat $<) > $@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SPEC) $(BUILD_DIR)/$(LD_TEMPLATE) $(MAKELCF) $(MAKELCF_FLAGS) $^ $@ -- cgit v1.2.3 From c619240caca34b085918f948da2aac55d1e76691 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 24 Nov 2021 09:38:34 -0500 Subject: Fix build system for macOS --- arm9/Makefile | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'arm9/Makefile') diff --git a/arm9/Makefile b/arm9/Makefile index 77141d34..e332a842 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -2,6 +2,14 @@ include ../config.mk +HOSTCC := $(CC) +HOSTCXX := $(CXX) +HOSTCFLAGS := $(CFLAGS) +HOSTCXXFLAGS := $(CXXFLAGS) +HOSTPKGCONFIG := $(shell which pkg-config) +HOSTPKGCONFIGPATH := $(PKG_CONFIG_PATH) +HOST_VARS := CC=$(HOSTCC) CXX=$(HOSTCXX) CFLAGS='$(HOSTCFLAGS)' CXXFLAGS='$(HOSTCXXFLAGS)' PKGCONFIG='$(HOSTPKGCONFIG)' PKG_CONFIG_PATH='$(HOSTPKGCONFIGPATH)' + .PHONY: clean tidy all default patch_mwasmarm # Try to include devkitarm if installed @@ -179,7 +187,7 @@ tidy: tools: $(TOOLDIRS) $(TOOLDIRS): - @$(MAKE) -C $@ + @$(HOST_VARS) $(MAKE) -C $@ $(MWASMARM): patch_mwasmarm @@ -237,7 +245,7 @@ $(BUILD_DIR)/lib/libsyscall.a: $(SYSCALL_OBJS) $(AR) $(ARFLAGS) -o $@ $^ # Make sure build directory exists before compiling anything -DUMMY != mkdir -p $(ALL_DIRS) +DUMMY := $(shell mkdir -p $(ALL_DIRS)) %.4bpp: %.png $(GFX) $< $@ -- cgit v1.2.3 From df849f9676df54dafc97284cec8c00949e5571a6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 24 Nov 2021 10:30:45 -0500 Subject: Fix some more the building on macOS --- arm9/Makefile | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'arm9/Makefile') diff --git a/arm9/Makefile b/arm9/Makefile index e332a842..a5f4c665 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -2,23 +2,22 @@ include ../config.mk -HOSTCC := $(CC) -HOSTCXX := $(CXX) -HOSTCFLAGS := $(CFLAGS) -HOSTCXXFLAGS := $(CXXFLAGS) -HOSTPKGCONFIG := $(shell which pkg-config) -HOSTPKGCONFIGPATH := $(PKG_CONFIG_PATH) -HOST_VARS := CC=$(HOSTCC) CXX=$(HOSTCXX) CFLAGS='$(HOSTCFLAGS)' CXXFLAGS='$(HOSTCXXFLAGS)' PKGCONFIG='$(HOSTPKGCONFIG)' PKG_CONFIG_PATH='$(HOSTPKGCONFIGPATH)' - .PHONY: clean tidy all default patch_mwasmarm # Try to include devkitarm if installed +ifdef DEVKITARM TOOLCHAIN := $(DEVKITARM) +endif -ifneq (,$(wildcard $(TOOLCHAIN)/base_tools)) -include $(TOOLCHAIN)/base_tools +ifdef TOOLCHAIN +export PATH := $(TOOLCHAIN)/bin:$(PATH) endif +PREFIX := arm-none-eabi- + +OBJCOPY := $(PREFIX)objcopy +AR := $(PREFIX)ar + ### Default target ### default: all @@ -147,18 +146,21 @@ TOOLDIRS = $(dir $(wildcard $(TOOLS_DIR)/*/Makefile)) TOOLBASE = $(TOOLDIRS:$(TOOLS_DIR)/%=%) TOOLS = $(foreach tool,$(TOOLBASE),$(TOOLS_DIR)/$(tool)/$(tool)$(EXE)) +TOOLS: tools + export LM_LICENSE_FILE := $(TOOLS_DIR)/mwccarm/license.dat export MWCIncludes := $(CURDIR)/lib/libc/include $(CURDIR)/lib/NitroSDK/include $(CURDIR)/lib/libnns/include export MWLibraries := $(CURDIR)/lib ######################### Targets ########################### +######################## Targets ########################### infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) # Build tools when building the rom # Disable dependency scanning for clean/tidy/tools ifeq (,$(filter-out all,$(MAKECMDGOALS))) -$(call infoshell, $(MAKE) tools patch_mwasmarm) +$(call infoshell,$(MAKE) tools patch_mwasmarm) else NODEP := 1 endif @@ -168,6 +170,8 @@ endif MAKEFLAGS += --no-print-directory +all: tools patch_mwasmarm + all: $(ROM) ifeq ($(COMPARE),1) @$(SHA1SUM) -c $(BUILD_TARGET).sha1 @@ -187,7 +191,7 @@ tidy: tools: $(TOOLDIRS) $(TOOLDIRS): - @$(HOST_VARS) $(MAKE) -C $@ + @$(MAKE) -C $@ $(MWASMARM): patch_mwasmarm @@ -226,7 +230,7 @@ $(S_OBJS) $(LIBS_OBJS): $(BUILD_DIR)/%.o: %.s $$(dep) $(AS) $(ASFLAGS) -o $@ $< $(BUILD_DIR)/$(LD_TEMPLATE): $(BUILD_DIR)/%: % - (echo -e "KEEP_SECTION\n{\n\t.exceptix\n}\n"; cat $<) > $@ + (echo "KEEP_SECTION\n{\n\t.exceptix\n}\n"; cat $<) > $@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SPEC) $(BUILD_DIR)/$(LD_TEMPLATE) $(MAKELCF) $(MAKELCF_FLAGS) $^ $@ -- cgit v1.2.3 From ec3b2ac58135c2e97fc708487bbcdd47c9ac427b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 17 Dec 2021 12:33:51 -0500 Subject: Compatibility fixes for macOS 12.x --- arm9/Makefile | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'arm9/Makefile') diff --git a/arm9/Makefile b/arm9/Makefile index a5f4c665..ce3a85e0 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -116,10 +116,10 @@ ASM_PROCESSOR_DIR := ../tools/asm_processor ASM_PROCESSOR := $(ASM_PROCESSOR_DIR)/compile.sh # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o -ASFLAGS = -proc arm5te -i ../include -i .. -D$(GAME_VERSION) -D$(GAME_LANGUAGE) -CFLAGS = -O4,p -gccext,on -proc arm946e -ipa file -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) -CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) -LDFLAGS = -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start +MWASFLAGS = -proc arm5te -i ../include -i .. -D$(GAME_VERSION) -D$(GAME_LANGUAGE) +MWCFLAGS = -O4,p -gccext,on -proc arm946e -ipa file -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) +MWCXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) +MWLDFLAGS = -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start LIBS := -Llib -lsyscall ARFLAGS = rcS STATIC_LIBS := $(addprefix $(BUILD_DIR)/lib/,libsyscall.a) @@ -204,7 +204,7 @@ ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS) $(LIB # TODO: Move out to lib/Makefile $(BUILD_DIR)/lib/%.o: MWCCVERSION = 1.2/sp2p3 -$(BUILD_DIR)/lib/%.o: CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -interworking -DFS_IMPLEMENT -enum int -W all -i ../include -ir ../include-mw -ir lib/libc/include -ir lib/libnns/include -ir lib/NitroSDK/include +$(BUILD_DIR)/lib/%.o: MWCFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -interworking -DFS_IMPLEMENT -enum int -W all -i ../include -ir ../include-mw -ir lib/libc/include -ir lib/libnns/include -ir lib/NitroSDK/include $(BUILD_DIR)/lib/libnns/%.o: MWCCVERSION = 1.2/sp3 @@ -217,17 +217,17 @@ $(BUILD_DIR)/%.o: dep := endif # Cpp asm processor is not supported at this time. -$(GLOBAL_ASM_O_FILES): BUILD_C := $(ASM_PROCESSOR) "$(CC) $(CFLAGS)" "$(AS) $(ASFLAGS)" -BUILD_C ?= $(CC) -c $(CFLAGS) -o +$(GLOBAL_ASM_O_FILES): BUILD_C := $(ASM_PROCESSOR) "$(CC) $(MWCFLAGS)" "$(AS) $(MWASFLAGS)" +BUILD_C ?= $(CC) -c $(MWCFLAGS) -o $(C_OBJS): $(BUILD_DIR)/%.o: %.c $$(dep) $(BUILD_C) $@ $< $(CXX_OBJS): $(BUILD_DIR)/%.o: %.cpp $$(dep) - $(CXX) -c $(CXXFLAGS) -o $@ $< + $(CXX) -c $(MWCXXFLAGS) -o $@ $< $(S_OBJS) $(LIBS_OBJS): $(BUILD_DIR)/%.o: %.s $$(dep) - $(AS) $(ASFLAGS) -o $@ $< + $(AS) $(MWASFLAGS) -o $@ $< $(BUILD_DIR)/$(LD_TEMPLATE): $(BUILD_DIR)/%: % (echo "KEEP_SECTION\n{\n\t.exceptix\n}\n"; cat $<) > $@ @@ -237,7 +237,7 @@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SPEC) $(BUILD_DIR)/$(LD_TEMPLATE) $(ROM): $(BUILD_DIR)/$(LD_SCRIPT) $(O_FILES) $(STATIC_LIBS) echo "$(O_FILES:$(BUILD_DIR)/%=%)" > $(ELF).objlist - cd $(BUILD_DIR) && LM_LICENSE_FILE=../../$(LM_LICENSE_FILE) $(WINE) ../../$(MWLDARM) $(LDFLAGS) $(LIBS) -o ../../$(ELF) $(LD_SCRIPT) @../../$(ELF).objlist + cd $(BUILD_DIR) && LM_LICENSE_FILE=../../$(LM_LICENSE_FILE) $(WINE) ../../$(MWLDARM) $(MWLDFLAGS) $(LIBS) -o ../../$(ELF) $(LD_SCRIPT) @../../$(ELF).objlist $(OBJCOPY) $(foreach ov,arm9 $(OVERLAYS),--update-section $(ov)=$(BUILD_DIR)/$(ov).sbin -j $(ov)) $(ELF) 2>/dev/null ifeq ($(SHIFTED),0) -- cgit v1.2.3 From 44cd7753b5dde323d1e8274b2dc8a5599729e83f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 17 Dec 2021 20:45:17 -0500 Subject: Fix calcrom --- arm9/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'arm9/Makefile') diff --git a/arm9/Makefile b/arm9/Makefile index ce3a85e0..58f1c35c 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -229,8 +229,9 @@ $(CXX_OBJS): $(BUILD_DIR)/%.o: %.cpp $$(dep) $(S_OBJS) $(LIBS_OBJS): $(BUILD_DIR)/%.o: %.s $$(dep) $(AS) $(MWASFLAGS) -o $@ $< +# Bugfix note: zsh doesn't like escapes $(BUILD_DIR)/$(LD_TEMPLATE): $(BUILD_DIR)/%: % - (echo "KEEP_SECTION\n{\n\t.exceptix\n}\n"; cat $<) > $@ + (printf "KEEP_SECTION\n{\n\t.exceptix\n}\n"; cat $<) > $@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SPEC) $(BUILD_DIR)/$(LD_TEMPLATE) $(MAKELCF) $(MAKELCF_FLAGS) $^ $@ -- cgit v1.2.3