#---------------------------------------------------------------------------------
.SUFFIXES:
#---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITARM)),)
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM)
endif

include $(DEVKITARM)/ds_rules

export TARGET		:=	$(shell basename $(CURDIR))
export TOPDIR		:=	$(CURDIR)

export NDS_VERSION := 0.7

TODAY := $(shell date +%Y%m%d)

CFLASH_IMAGE := cflash_shareware.img
CFLASH_IMAGE_REGISTERED := cflash_registered.img

.PHONY: $(TARGET).arm7 $(TARGET)_shareware.arm9 $(TARGET)_registered.arm9 test clean all install data-package binary-package source-package

#---------------------------------------------------------------------------------
# main targets
#---------------------------------------------------------------------------------
all: $(TARGET)_shareware.ds.gba $(TARGET)_registered.ds.gba

$(TARGET)_shareware.ds.gba	: $(TARGET)_shareware.nds

$(TARGET)_registered.ds.gba	: $(TARGET)_registered.nds

#---------------------------------------------------------------------------------
$(TARGET)_shareware.nds	:	$(TARGET).arm7 $(TARGET)_shareware.arm9
	ndstool	-c $(TARGET)_shareware.nds -7 $(TARGET).arm7 -9 $(TARGET)_shareware.arm9

$(TARGET)_registered.nds	:	$(TARGET).arm7 $(TARGET)_registered.arm9
	ndstool	-c $(TARGET)_registered.nds -7 $(TARGET).arm7 -9 $(TARGET)_registered.arm9

#---------------------------------------------------------------------------------
$(TARGET).arm7	: arm7/$(TARGET).elf
$(TARGET)_shareware.arm9	: arm9/$(TARGET)_shareware.elf
$(TARGET)_registered.arm9	: arm9/$(TARGET)_registered.elf

#---------------------------------------------------------------------------------
arm7/$(TARGET).elf:
	$(MAKE) -C arm7
	
#---------------------------------------------------------------------------------
arm9/$(TARGET)_shareware.elf:
	$(MAKE) -C arm9

arm9/$(TARGET)_registered.elf:
	$(MAKE) -C arm9 -f $(CURDIR)/arm9/Makefile.registered

#---------------------------------------------------------------------------------
clean:
	$(MAKE) -C arm9 clean
	$(MAKE) -C arm7 clean
	rm -f $(TARGET)_shareware.ds.gba $(TARGET)_registered.ds.gba $(TARGET)_shareware.nds $(TARGET)_registered.nds $(TARGET).arm7 $(TARGET)_shareware.arm9 $(TARGET)_registered.arm9

$(CFLASH_IMAGE):
	@echo "You must create the disk image to test with an emulator"
	@false

$(CFLASH_IMAGE_REGISTERED):
	@echo "You must create the disk image to test with an emulator"
	@false

test: $(TARGET)_shareware.nds $(CFLASH_IMAGE)
	desmume --cflash=$(CFLASH_IMAGE) $(TARGET)_shareware.nds

test-registered: $(TARGET)_registered.nds $(CFLASH_IMAGE_REGISTERED)
	desmume --cflash=$(CFLASH_IMAGE_REGISTERED) $(TARGET)_registered.nds

install: $(TARGET)_shareware.nds $(TARGET)_registered.nds
	@cp $(TARGET)_shareware.nds $(TARGET)_shareware_SC.nds
	@cp $(TARGET)_registered.nds $(TARGET)_registered_SC.nds
	dldi-scsd-moon $(TARGET)_shareware_SC.nds
	dldi-scsd-moon $(TARGET)_registered_SC.nds
	mount /usbkey && cp $(TARGET)_shareware_SC.nds $(TARGET)_registered_SC.nds /usbkey/nds/ && umount /usbkey/

data-package:
	@rm -f rottds-data.tar.bz2
	tar cvjf rottds-data.tar.bz2 rott/ -Xexclude_zip.txt --exclude=exclude*.txt

music-package:
	@rm -f rottds-music.zip
	zip -j rottds-music.zip extracted_sounds/*.wav -x *.raw.wav

binary-package:
	@rm -f rottds-$(TODAY).zip
	zip -r rottds-$(TODAY).zip $(TARGET)_shareware.nds $(TARGET)_registered.nds COPYING README.NDS rott/ -x@exclude_zip.txt -x exclude*.txt

source-package:
	@rm -f rottds-source-$(TODAY).tar.bz2
	tar cvjf rottds-source-$(TODAY).tar.bz2 * -Xexclude_tar.txt --exclude=exclude*.txt

