
CC = arm-elf-gcc
C++ = arm-elf-g++
AS = arm-elf-as
LD = 	arm-elf-ld
OBJCOPY = arm-elf-objcopy

DEPENDFILE	=	Makedepend
MAPFILE		=	ckeen.map
TARGET_ELF	=	ckeen.elf
TARGET_BIN	=	ckeen.gxb
TARGET_FXE	=	ckeen.fxe
LDSCRIPT	=	lnkscript
X_LDSCRIPT	= 	arm-gp32bin.x

TITLE		=	"CloneKeen32"
AUTHOR		=	A600
ICON		=	icon.bmp


.SFILES =	crt0x_gp32.s 

.CFILES	=	main.c fileio.c game.c gamedo.c gamepdo.c gm_pdowm.c \
			map.c graphics.c misc.c menu.c sgrle.c latch.c lz.c \
			eseq_ep1.c eseq_ep2.c eseq_ep3.c finale.c \
			ai/yorp.c ai/garg.c ai/vort.c ai/butler.c ai/tank.c ai/door.c ai/nessie.c\
			ai/ray.c ai/icechunk.c ai/icebit.c ai/teleport.c ai/rope.c ai/walker.c \
			ai/tankep2.c ai/platform.c ai/platvert.c ai/bear.c ai/se.c ai/baby.c ai/earth.c \
			ai/foob.c ai/ninja.c ai/meep.c ai/sndwave.c ai/mother.c ai/fireball.c ai/balljack.c \
			sdl/keydrv.c sdl/snddrv.c sdl/timedrv.c sdl/viddrv.c \
			

.CPPFILES =	

.OFILES	=	$(.SFILES:.s=.o) $(.CFILES:.c=.o) $(.CPPFILES:.cpp=.o)


OPTFLAGS =	-mtune=arm920 -march=armv4t -marm -mno-thumb-interwork \
		-O3 \


CFLAGS	=	-I$(GP32PATH)/include/SDL -I$(GP32PATH)/include \
		$(OPTFLAGS) -DGFXST -DGP32 -DGP32_LIBC \
		-Wall -Wno-switch -DUSE_FIXED_POINT -DENABLE_DEBUG\
		

CFLAGS += 	-DDATA_PREFIX=\"gpmm/ckeen/\"


CPPFLAGS	=


LDFLAGS	=	-Map $(MAPFILE) -nostartfiles --script $(X_LDSCRIPT) \
		-L$(GP32PATH)/lib
		
SYSTEMLIBS =	-lSDL_mixer -lSDL \
		-lc -lm -lgcc

DOLINK =	$(LD) $(LDFLAGS) $(.OFILES) $(SYSTEMLIBS) -o $(TARGET_ELF)


$(TARGET_FXE): $(TARGET_BIN)
	b2fxec -t $(TITLE) -a $(AUTHOR) -b $(ICON) $< $@


$(TARGET_BIN): $(TARGET_ELF)

	$(OBJCOPY) -O binary $< $@

$(TARGET_ELF): $(.OFILES) $(DEPENDFILE)
	$(DOLINK)


.PHONY: all clean depend

all:    clean depend $(TARGET_BIN)

tags:	$(DEPENDFILE)
	ctags -e *.c *.s *.h *.S

clean:
	-rm -f $(.OFILES) $(DEPENDFILE) $(MAPFILE) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_FXE) TAGS

send: $(TARGET_FXE)
	gplink -c -x put $(TARGET_FXE) /GPMM

depend:
	$(CC) $(CFLAGS) -M $(.CFILES) > $(DEPENDFILE)

$(DEPENDFILE):
	$(CC) $(CFLAGS) -M $(.CFILES) > $(DEPENDFILE)

include $(DEPENDFILE)
