diff --git a/Makefile b/Makefile index 306b8fb6e..3bb5161e3 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ COMPARE ?= 0 # with when we want to use $(CC) to preprocess files # thus, manually create the variables for the bin # files, or use arm-none-eabi binaries on the system -# if dkP is not installed on tihs system +# if dkP is not installed on this system ifneq (,$(TOOLCHAIN)) ifneq ($(wildcard $(TOOLCHAIN)/bin),) @@ -36,10 +36,21 @@ MAKER_CODE := 01 REVISION := 0 MODERN ?= 0 +# use arm-none-eabi-cpp for macOS +# as macOS's default compiler is clang +# and clang's preprocessor will warn on \u +# when preprocessing asm files, expecting a unicode literal +# we can't unconditionally use arm-none-eabi-cpp +# as installations which install binutils-arm-none-eabi +# don't come with it ifneq ($(MODERN),1) -CPP := $(CC) -E + ifeq ($(shell uname -s),Darwin) + CPP := $(PREFIX)cpp + else + CPP := $(CC) -E + endif else -CPP := $(PREFIX)cpp + CPP := $(PREFIX)cpp endif ROM_NAME := pokeemerald.gba @@ -362,7 +373,7 @@ modern: ; @$(MAKE) MODERN=1 berry_fix/berry_fix.gba: berry_fix berry_fix: - @$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) + @$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) libagbsyscall: - @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) + @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) diff --git a/berry_fix/Makefile b/berry_fix/Makefile index 8b8d07d42..464e5f9e9 100644 --- a/berry_fix/Makefile +++ b/berry_fix/Makefile @@ -6,7 +6,7 @@ COMPARE ?= 0 # with when we want to use $(CC) to preprocess files # thus, manually create the variables for the bin # files, or use arm-none-eabi binaries on the system -# if dkP is not installed on tihs system +# if dkP is not installed on this system ifneq (,$(TOOLCHAIN)) ifneq ($(wildcard $(TOOLCHAIN)/bin),) @@ -17,7 +17,6 @@ endif PREFIX := arm-none-eabi- OBJCOPY := $(PREFIX)objcopy AS := $(PREFIX)as -CPP := $(CC) -E LD := $(PREFIX)ld # note: the makefile must be set up so MODERNCC is never called @@ -30,6 +29,23 @@ else EXE := endif +# use arm-none-eabi-cpp for macOS +# as macOS's default compiler is clang +# and clang's preprocessor will warn on \u +# when preprocessing asm files, expecting a unicode literal +# we can't unconditionally use arm-none-eabi-cpp +# as installations which install binutils-arm-none-eabi +# don't come with it +ifneq ($(MODERN),1) + ifeq ($(shell uname -s),Darwin) + CPP := $(PREFIX)cpp + else + CPP := $(CC) -E + endif +else + CPP := $(PREFIX)cpp +endif + GAME_CODE := AGBJ MAKER_CODE := 01 REVISION := 0 @@ -165,7 +181,7 @@ $(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s) endif payload: - @$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) + @$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) payload/payload.gba: payload diff --git a/berry_fix/payload/Makefile b/berry_fix/payload/Makefile index bae657c92..2779c43ba 100644 --- a/berry_fix/payload/Makefile +++ b/berry_fix/payload/Makefile @@ -6,7 +6,7 @@ COMPARE ?= 0 # with when we want to use $(CC) to preprocess files # thus, manually create the variables for the bin # files, or use arm-none-eabi binaries on the system -# if dkP is not installed on tihs system +# if dkP is not installed on this system ifneq (,$(TOOLCHAIN)) ifneq ($(wildcard $(TOOLCHAIN)/bin),) @@ -17,7 +17,6 @@ endif PREFIX := arm-none-eabi- OBJCOPY := $(PREFIX)objcopy AS := $(PREFIX)as -CPP := $(CC) -E LD := $(PREFIX)ld # note: the makefile must be set up so MODERNCC is never called @@ -30,6 +29,23 @@ else EXE := endif +# use arm-none-eabi-cpp for macOS +# as macOS's default compiler is clang +# and clang's preprocessor will warn on \u +# when preprocessing asm files, expecting a unicode literal +# we can't unconditionally use arm-none-eabi-cpp +# as installations which install binutils-arm-none-eabi +# don't come with it +ifneq ($(MODERN),1) + ifeq ($(shell uname -s),Darwin) + CPP := $(PREFIX)cpp + else + CPP := $(CC) -E + endif +else + CPP := $(PREFIX)cpp +endif + SHELL := /bin/bash -o pipefail CPPFLAGS := -I ../../tools/agbcc/include -I ../../tools/agbcc -iquote include -nostdinc -undef diff --git a/libagbsyscall/Makefile b/libagbsyscall/Makefile index 76368da86..78f246af4 100644 --- a/libagbsyscall/Makefile +++ b/libagbsyscall/Makefile @@ -6,7 +6,7 @@ COMPARE ?= 0 # with when we want to use $(CC) to preprocess files # thus, manually create the variables for the bin # files, or use arm-none-eabi binaries on the system -# if dkP is not installed on tihs system +# if dkP is not installed on this system ifneq (,$(TOOLCHAIN)) ifneq ($(wildcard $(TOOLCHAIN)/bin),) @@ -17,8 +17,8 @@ endif PREFIX := arm-none-eabi- OBJCOPY := $(PREFIX)objcopy AS := $(PREFIX)as -CPP := $(CC) -E LD := $(PREFIX)ld +AR := $(PREFIX)ar # note: the makefile must be set up so MODERNCC is never called # if MODERN=0 @@ -30,6 +30,23 @@ else EXE := endif +# use arm-none-eabi-cpp for macOS +# as macOS's default compiler is clang +# and clang's preprocessor will warn on \u +# when preprocessing asm files, expecting a unicode literal +# we can't unconditionally use arm-none-eabi-cpp +# as installations which install binutils-arm-none-eabi +# don't come with it +ifneq ($(MODERN),1) + ifeq ($(shell uname -s),Darwin) + CPP := $(PREFIX)cpp + else + CPP := $(CC) -E + endif +else + CPP := $(PREFIX)cpp +endif + ASFLAGS := -mcpu=arm7tdmi ARFLAGS := rc