
export CHINA	=	1
#AGBDIR	=	$(HOME)/agb
AGBINC	=	$(AGBDIR)/include/
AGBLIB	=	$(AGBDIR)/lib/
export CC	=	arm-thumb-elf-gcc
export AS	=	arm-thumb-elf-as
export LD	=	arm-thumb-elf-ld
SNDARC	=	libsound.a

ARCDIR0 = title
ARCDIR1 = game
ARCDIR2 = enemy
ARCDIR3 = gmap
ARCDIR4 = tmsc
ARCDIR5 = bgdat
ARCDIR6 = select
ARCDIR7 = pause
ARCDIR8 = mini
ARCDIR9 = shop
ARCDIR10 = ready
ARCDIR11 = delete
ARCDIR12 = ending1

ARCDIRS		=	$(ARCDIR0) $(ARCDIR1) $(ARCDIR2) $(ARCDIR3) $(ARCDIR4)\
			$(ARCDIR5) $(ARCDIR6) $(ARCDIR7) $(ARCDIR8) $(ARCDIR9)\
			$(ARCDIR10) $(ARCDIR11) $(ARCDIR12)

.AFILES		=	$(addprefix lib,$(addsuffix .a,$(ARCDIRS)))
.SFILES		=	crt0.s
.CFILES		=
.OFILES		=	$(.SFILES:.s=.o) $(.CFILES:.c=.o)
OOFILES		=	sub.o data.o vblk.o save.o
ifndef NDEBUG
OOFILES		+= main_debug.o
else
OOFILES		+= main_release.o
endif
ASFLAGS		=	-I$(AGBINC) -mthumb-interwork -mthumb
CFLAGS		=	-g -c -O2 -I$(AGBINC) -mthumb-interwork -nostdlib -fno-common -mthumb#-DNDEBUG
LDFLAGS		+=  -Map $(MAPFILE) -nostartfiles \
				-Tbss 0x03000000 -Ttext 0x08000000 \
				-L$(AGBLIB) -lagbsyscall -lisagbprn -lagbbackup \
				-L. $(addprefix -l,$(ARCDIRS))
#DEPENDFILE	=	Makedepend
MAPFILE		=	demo.map
TARGET_ELF	=	demo.elf
TARGET_BIN	=	demo.bin

default:
	@$(foreach ARCDIR_TMP, $(ARCDIRS), make -C $(ARCDIR_TMP);)
	@make $(TARGET_BIN)

$(TARGET_BIN): $(TARGET_ELF)
	arm-thumb-elf-objcopy -v -O binary $< $@

$(TARGET_ELF): $(.OFILES) $(OOFILES) GNUmakefile $(DEPENDFILE) $(.AFILES) $(SNDARC)
	@echo > $(MAPFILE)
	$(CC) -g -o $@ $(.OFILES) $(OOFILES) $(SNDARC) -Wl,$(LDFLAGS)


.PHONY: all clean depend relink rmbin libdepend mydepend kclean kall yclean yall oclean oall


all:	clean default

kall:	kclean default

yall:	yclean default

oall:	oclean default

gall:	gclean default

kclean:
	make -C $(ARCDIR1) clean
	make -C $(ARCDIR12) clean

yclean:
	make -C $(ARCDIR2) clean
	make -C $(ARCDIR4) clean

oclean:
	make -C $(ARCDIR3) clean
	make -C $(ARCDIR10) clean
	make -C $(ARCDIR11) clean

gclean:
	make -C $(ARCDIR6) clean
	make -C $(ARCDIR7) clean
	make -C $(ARCDIR8) clean
	make -C $(ARCDIR9) clean

clean:
	-rm $(.OFILES) $(DEPENDFILE) $(MAPFILE) $(TARGET_ELF) $(TARGET_BIN)
	@$(foreach ARCDIR_TMP, $(ARCDIRS), make -C $(ARCDIR_TMP) clean;)

relink: rmbin $(TARGET_BIN)

rmbin:
	-rm $(TARGET_ELF) $(TARGET_BIN)


#depend: libdepend mydepend
depend: libdepend

libdepend:
	@$(foreach ARCDIR_TMP, $(ARCDIRS), make -C $(ARCDIR_TMP) depend;)

#mydepend:
#	$(CC) $(CFLAGS) -M $(.CFILES) > $(DEPENDFILE)

#$(DEPENDFILE): 
#	$(CC) $(CFLAGS) -M $(.CFILES) > $(DEPENDFILE)


include gasDepend
#include $(DEPENDFILE)
