TOOLCHAIN := $(DEVKITARM) COMPARE ?= 0 # don't use dkP's base_tools anymore # because the redefinition of $(CC) conflicts # 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 this system ifneq (,$(TOOLCHAIN)) ifneq ($(wildcard $(TOOLCHAIN)/bin),) export PATH := $(TOOLCHAIN)/bin:$(PATH) endif endif PREFIX := arm-none-eabi- OBJCOPY := $(PREFIX)objcopy AS := $(PREFIX)as LD := $(PREFIX)ld AR := $(PREFIX)ar # note: the makefile must be set up so MODERNCC is never called # if MODERN=0 MODERNCC := $(PREFIX)gcc ifeq ($(OS),Windows_NT) EXE := .exe 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 SYSCALLS := IntrWait \ RegisterRamReset \ Sqrt \ MusicPlayerOpen \ SoundBiasReset \ SoundDriverVSyncOn \ Mod \ VBlankIntrWait \ MusicPlayerStart \ SoundDriverVSyncOff \ HuffUnComp \ SoftResetExram \ MusicPlayerFadeOut \ LZ77UnCompWram \ SoundDriverMain \ SoundBiasChange \ LZ77UnCompVram \ ArcTan2 \ MusicPlayerStop \ DivArm \ ModArm \ SoundDriverVSync \ SoundDriverInit \ BgAffineSet \ Diff8bitUnFilterWram \ MultiBoot \ MidiKey2Freq \ Div \ Diff8bitUnFilterVram \ ArcTan \ ObjAffineSet \ SoftResetRom \ SoundDriverMode \ RLUnCompWram \ BitUnPack \ SoundChannelClear \ CpuFastSet \ CpuSet \ Diff16bitUnFilter \ SoundBiasSet \ MusicPlayerContinue \ SoftReset \ RLUnCompVram ASM_SRCS := libagbsyscall.s ASM_OBJS := $(foreach syscall, $(SYSCALLS), $(syscall).o) LIB := libagbsyscall.a .PHONY: all clean all: $(LIB) @: clean: rm -f $(LIB) $(ASM_OBJS) $(LIB): $(ASM_OBJS) $(AR) $(ARFLAGS) $@ $^ $(ASM_OBJS): libagbsyscall.s $(AS) $(ASFLAGS) --defsym L_$(*F)=1 -o $@ $<