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

DEPENDFILE	=	dependfile

LDSCRIPT	=	lnkscript
X_LDSCRIPT	= 	arm-gp32bin.x

.SFILES =	crt0x_gp32.s 

.CFILES	=	main.c filter.c selector.c video.c util.c config.c \
            regexp.c menu.c StandardHandleEvent.c missinggames.c \
            quickfilter.c drivers.c x_gp32_grafik.c

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

OPTFLAGS =	-mtune=arm920 -march=armv4t -marm -mno-thumb-interwork \
		-msoft-float -ffast-math -nostdlib -fno-common \
    	-ffreestanding -fno-builtin -fno-exceptions \
		-mstructure-size-boundary=8 -fomit-frame-pointer \
		-fstrict-aliasing -O6 


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

LDFLAGS	= -nostartfiles --script $(X_LDSCRIPT) -L$(GP32PATH)/lib
		
SYSTEMLIBS = -lSDL_gfx -lSDL_image -lSDL -lpng -ljpeg -lz -lc -lm -lgcc

mamegp32.fxe : mamegp32.gxb
	b2fxec $< $@

mamegp32.gxb : mamegp32.elf
	$(OBJCOPY) -O binary $< $@

mamegp32.elf: $(.OFILES) $(DEPENDFILE)
	$(LD) $(LDFLAGS) $(.OFILES) $(SYSTEMLIBS) -o mamegp32.elf


.PHONY: all clean depend

all:	clean depend mamegp32.gxb mamegp32.fxe 

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

clean:
	-rm -f $(.OFILES) $(DEPENDFILE) $(MAPFILE) mamegp32.elf mamegp32.gxb mamegp32.fxe TAGS

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

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

include $(DEPENDFILE)
