# Makefile for sound_demo1.nds
# chris.double@double.co.nz
NDSLIB_INCLUDE=$(DEVKITPRO)/libnds/include
NDSLIB_LIB=$(DEVKITPRO)/libnds/lib

all: sound_demo1.nds.gba

BaseHit.raw: wav/BaseHit.wav
	sox wav/BaseHit.wav BaseHit.raw

InvHit.raw: wav/InvHit.wav
	sox wav/InvHit.wav InvHit.raw

Shot.raw: wav/Shot.wav
	sox wav/Shot.wav Shot.raw

Ufo.raw: wav/Ufo.wav
	sox wav/Ufo.wav Ufo.raw

UfoHit.raw: wav/UfoHit.wav
	sox wav/UfoHit.wav UfoHit.raw

Walk1.raw: wav/Walk1.wav
	sox wav/Walk1.wav Walk1.raw

Walk2.raw: wav/Walk2.wav
	sox wav/Walk2.wav Walk2.raw

Walk3.raw: wav/Walk3.wav
	sox wav/Walk3.wav Walk3.raw

Walk4.raw: wav/Walk4.wav
	sox wav/Walk4.wav Walk4.raw

BaseHit.o: BaseHit.raw
	arm-elf-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata,readonly,data,contents,alloc --redefine-sym _binary_BaseHit_raw_start=sound_base_hit --redefine-sym _binary_BaseHit_raw_end=sound_base_hit_end --redefine-sym _binary_BaseHit_raw_size=sound_base_hit_size BaseHit.raw BaseHit.o

InvHit.o: InvHit.raw
	arm-elf-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata,readonly,data,contents,alloc --redefine-sym _binary_InvHit_raw_start=sound_inv_hit --redefine-sym _binary_InvHit_raw_end=sound_inv_hit_end --redefine-sym _binary_InvHit_raw_size=sound_inv_hit_size InvHit.raw InvHit.o

Shot.o: Shot.raw
	arm-elf-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata,readonly,data,contents,alloc --redefine-sym _binary_Shot_raw_start=sound_shot --redefine-sym _binary_Shot_raw_end=sound_shot_end --redefine-sym _binary_Shot_raw_size=sound_shot_size Shot.raw Shot.o

Ufo.o: Ufo.raw
	arm-elf-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata,readonly,data,contents,alloc --redefine-sym _binary_Ufo_raw_start=sound_ufo --redefine-sym _binary_Ufo_raw_end=sound_ufo_end --redefine-sym _binary_Ufo_raw_size=sound_ufo_size Ufo.raw Ufo.o

UfoHit.o: UfoHit.raw
	arm-elf-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata,readonly,data,contents,alloc --redefine-sym _binary_UfoHit_raw_start=sound_ufo_hit --redefine-sym _binary_UfoHit_raw_end=sound_ufo_hit_end --redefine-sym _binary_UfoHit_raw_size=sound_ufo_hit_size UfoHit.raw UfoHit.o

Walk1.o: Walk1.raw
	arm-elf-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata,readonly,data,contents,alloc --redefine-sym _binary_Walk1_raw_start=sound_walk1 --redefine-sym _binary_Walk1_raw_end=sound_walk1_end --redefine-sym _binary_Walk1_raw_size=sound_walk1_size Walk1.raw Walk1.o

Walk2.o: Walk2.raw
	arm-elf-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata,readonly,data,contents,alloc --redefine-sym _binary_Walk2_raw_start=sound_walk2 --redefine-sym _binary_Walk2_raw_end=sound_walk2_end --redefine-sym _binary_Walk2_raw_size=sound_walk2_size Walk2.raw Walk2.o

Walk3.o: Walk3.raw
	arm-elf-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata,readonly,data,contents,alloc --redefine-sym _binary_Walk3_raw_start=sound_walk3 --redefine-sym _binary_Walk3_raw_end=sound_walk3_end --redefine-sym _binary_Walk3_raw_size=sound_walk3_size Walk3.raw Walk3.o

Walk4.o: Walk4.raw
	arm-elf-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata,readonly,data,contents,alloc --redefine-sym _binary_Walk4_raw_start=sound_walk4 --redefine-sym _binary_Walk4_raw_end=sound_walk4_end --redefine-sym _binary_Walk4_raw_size=sound_walk4_size Walk4.raw Walk4.o

arm7_main.o: arm7_main.cpp
	arm-elf-g++ -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I$(NDSLIB_INCLUDE) -DARM7 -c arm7_main.cpp -oarm7_main.o

arm7.elf: arm7_main.o BaseHit.o InvHit.o Shot.o Ufo.o UfoHit.o Walk1.o Walk2.o Walk3.o Walk4.o
	arm-elf-g++ -g -mthumb-interwork -mno-fpu -specs=ds_arm7.specs arm7_main.o BaseHit.o InvHit.o Shot.o Ufo.o UfoHit.o Walk1.o Walk2.o Walk3.o Walk4.o -L$(NDSLIB_LIB) -lnds7 -oarm7.elf

arm7.bin: arm7.elf 
	arm-elf-objcopy -O binary arm7.elf arm7.bin

arm9_main.o: arm9_main.cpp
	arm-elf-g++ -g -Wall -O2 -mcpu=arm9tdmi -mtune=arm9tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I$(NDSLIB_INCLUDE) -DARM9 -c arm9_main.cpp -oarm9_main.o

arm9.elf: arm9_main.o
	arm-elf-g++ -g -mthumb-interwork -mno-fpu -specs=ds_arm9.specs arm9_main.o -L$(NDSLIB_LIB) -lnds9 -o arm9.elf

arm9.bin: arm9.elf
	arm-elf-objcopy -O binary arm9.elf arm9.bin

sound_demo1.nds: arm7.bin arm9.bin 
	ndstool -c sound_demo1.nds -9 arm9.bin -7 arm7.bin

sound_demo1.nds.gba: sound_demo1.nds
	dsbuild sound_demo1.nds -o sound_demo1.nds.gba

clean:
	rm -f *.bin
	rm -f *.elf
	rm -f *.o
	rm -f *~
	rm -f *.raw

