# Makefile for AXEtest.nds
# chris.double@double.co.nz
ARMGCC=arm-eabi-gcc
ARMOBJ=arm-eabi-objcopy
CFLAGS7=-std=gnu99 -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork
CFLAGS9=-std=gnu99 -Wall -O2 -mcpu=arm9tdmi -mtune=arm9tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork
NDSLIB_INCLUDE=$(DEVKITPRO)/libnds/include
NDSLIB_LIB=$(DEVKITPRO)/libnds/lib

all: AXEtest.nds map.txt

AXEtest.nds: arm7.bin arm9.bin
	ndstool -c AXEtest.nds -9 arm9.bin -7 arm7.bin

%.nds.gba: %.nds
	dsbuild $< -o $@

%.bin: %.elf
	$(ARMOBJ) -O binary $< $@

arm9.elf: arm9_main.o chr.o
	$(ARMGCC) -g -mthumb-interwork -mno-fpu -specs=ds_arm9.specs $^ -L$(NDSLIB_LIB) -lnds9 -o arm9.elf

arm7.elf: arm7.o
	$(ARMGCC) -g -mthumb-interwork -mno-fpu -specs=ds_arm7.specs $^ -L$(NDSLIB_LIB) -lnds7 -oarm7.elf

%7.o: %7.c
	$(ARMGCC) $(CFLAGS7) -I$(NDSLIB_INCLUDE) -DARM7 -c $< -o $@

%.o: %.c
	$(ARMGCC) $(CFLAGS9) -I$(NDSLIB_INCLUDE) -DARM9 -c $< -o $@

%.o: %.s
	$(ARMGCC) $(CFLAGS9) -I$(NDSLIB_INCLUDE) -DARM9 -c $< -o $@

chr.s: text.chr
	bin2s $^ > $@

map.txt: arm7.elf arm9.elf
	nm -n $^ > $@

clean:
	rm -f *.bin
	rm -f *.elf
	rm -f *.o
	rm -f *~
	rm -f chr.s
