# -----------------------------------------------------------------------------------------------
#
#	GBA Makefile
#	Dennis Munsie
#
#	Version History:
#		0.1, 28 Feb 2002 - First version with version number.  Added option for lnkscript.
#						   Added support for .S files.
#
# -----------------------------------------------------------------------------------------------

ROM			= joytest

LIBS		=

CFLAGS		= -Wall -O3 -fomit-frame-pointer -mthumb-interwork -Iinclude
SFLAGS		= -mthumb-interwork -Iinclude
LDFLAGS		= -Wall -mthumb-interwork -nostartfiles -Wl,--script=lnkscript

CC			= gcc

THUMB_OBJS	:= $(patsubst src/%.c,bin/%.o,$(wildcard src/*.c))
ASM_OBJS	:= bin/crt0.o $(filter-out bin/crt0.o,$(patsubst src/%.S,bin/%.o,$(wildcard src/*.S)))

all: $(ROM).gba

bin/%.o: src/%.c
	$(CC) $(CFLAGS) -mthumb -c -o $@ $<

bin/%.o: src/%.S
	$(CC) -c $(SFLAGS) -o $@ $<

$(ROM).gba: $(ROM).elf
	objcopy -O binary $(ROM).elf $(ROM).gba

$(ROM).elf: $(ASM_OBJS) $(THUMB_OBJS)
	gcc -o $(ROM).elf $(LDFLAGS) $(ASM_OBJS) $(THUMB_OBJS) $(LIBS)
	
clean:
	rm -f bin/*.o $(ROM).gba $(ROM).elf *~ src/*~ include/*~
