mirror of https://github.com/pret/pokeemerald.git
115 lines
2.6 KiB
Makefile
115 lines
2.6 KiB
Makefile
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 $@ $<
|