mirror of
https://github.com/ApacheThunder/GBA-Exploader.git
synced 2025-06-18 11:35:38 -04:00

* Soft Reset for Rumble Menu fixed. New scheme is now used for loading SoftReset.xxxx. Now instead it will look for R4TF.nds (R4TF = 4 character ioType code for DLDI user is currently using with R4TF as an example). If not found it will look for a few specific NDS files to try. If those aren't found it will try boot.nds. If boot.nds isn't found then rumble menu will not be available.
123 lines
4.3 KiB
Makefile
123 lines
4.3 KiB
Makefile
#---------------------------------------------------------------------------------
|
|
.SUFFIXES:
|
|
#---------------------------------------------------------------------------------
|
|
ifeq ($(strip $(DEVKITARM)),)
|
|
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM)
|
|
endif
|
|
|
|
-include $(DEVKITARM)/ds_rules
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# BUILD is the directory where object files & intermediate files will be placed
|
|
# SOURCES is a list of directories containing source code
|
|
# INCLUDES is a list of directories containing extra header files
|
|
#---------------------------------------------------------------------------------
|
|
TARGET := load
|
|
BUILD ?= build
|
|
SOURCES := source source/patches
|
|
INCLUDES := build
|
|
SPECS := specs
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# options for code generation
|
|
#---------------------------------------------------------------------------------
|
|
ARCH := -mthumb -mthumb-interwork
|
|
|
|
CFLAGS := -g -Wall -Os \
|
|
-mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer\
|
|
-ffast-math \
|
|
$(ARCH)
|
|
|
|
CFLAGS += $(INCLUDE) $(EXTRA_CFLAGS) -DARM7
|
|
|
|
ASFLAGS := -g $(ARCH) $(EXTRA_CFLAGS) $(INCLUDE)
|
|
LDFLAGS = -nostartfiles -T $(TOPDIR)/load.ld -Wl,-g $(ARCH) -Wl,-Map,$(TARGET).map
|
|
|
|
LIBS :=
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# list of directories containing libraries, this must be the top level containing
|
|
# include and lib
|
|
#---------------------------------------------------------------------------------
|
|
LIBDIRS := $(LIBNDS)
|
|
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# no real need to edit anything past this point unless you need to add additional
|
|
# rules for different file extensions
|
|
#---------------------------------------------------------------------------------
|
|
ifneq ($(BUILD),$(notdir $(CURDIR)))
|
|
#---------------------------------------------------------------------------------
|
|
|
|
export TOPDIR := $(CURDIR)
|
|
export LOADBIN ?= $(CURDIR)/$(TARGET).bin
|
|
export LOADELF := $(CURDIR)/$(TARGET).elf
|
|
export DEPSDIR := $(CURDIR)/$(BUILD)
|
|
|
|
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir))
|
|
|
|
export CC := $(PREFIX)gcc
|
|
export CXX := $(PREFIX)g++
|
|
export AR := $(PREFIX)ar
|
|
export OBJCOPY := $(PREFIX)objcopy
|
|
|
|
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
|
|
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
|
|
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
|
|
|
export OFILES := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
|
|
|
|
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
|
|
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
|
|
-I$(CURDIR)/$(BUILD)
|
|
|
|
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# use CC for linking standard C
|
|
#---------------------------------------------------------------------------------
|
|
export LD := $(CC)
|
|
#---------------------------------------------------------------------------------
|
|
|
|
.PHONY: $(BUILD) clean
|
|
|
|
#---------------------------------------------------------------------------------
|
|
$(BUILD):
|
|
@[ -d $@ ] || mkdir -p $@
|
|
@$(MAKE) -C $(BUILD) -f $(CURDIR)/Makefile
|
|
|
|
#---------------------------------------------------------------------------------
|
|
clean:
|
|
@echo clean ...
|
|
@rm -fr $(BUILD) *.elf *.bin
|
|
|
|
|
|
#---------------------------------------------------------------------------------
|
|
else
|
|
|
|
DEPENDS := $(OFILES:.o=.d)
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# main targets
|
|
#---------------------------------------------------------------------------------
|
|
$(LOADBIN) : $(LOADELF)
|
|
@$(OBJCOPY) -O binary $< $@
|
|
@echo built ... $(notdir $@)
|
|
|
|
|
|
$(LOADELF) : $(OFILES)
|
|
@echo linking $(notdir $@)
|
|
@$(LD) $(LDFLAGS) $(OFILES) $(LIBPATHS) $(LIBS) -o $@
|
|
|
|
arm9mpu_reset.o: mpu_reset.bin
|
|
|
|
mpu_reset.bin: mpu_reset.elf
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
mpu_reset.elf: $(TOPDIR)/arm9code/mpu_reset.s
|
|
$(CC) $(ASFLAGS) -Ttext=0 -x assembler-with-cpp -nostartfiles -nostdlib $< -o $@
|
|
|
|
-include $(DEPENDS)
|
|
#---------------------------------------------------------------------------------------
|
|
endif
|
|
#---------------------------------------------------------------------------------------
|