ROM			= bombjack

LIBS		=

CFLAGS		= -Wall -O3 -fomit-frame-pointer -mthumb-interwork -Iinclude
SFLAGS		= -mthumb-interwork -Iinclude
LDFLAGS		= -Wall -mthumb-interwork -nostartfiles

CC			= gcc
AS			= as

THUMB_OBJS	:= $(patsubst src/%.c,bin/%.o,$(wildcard src/*.c))
ASM_OBJS	:= 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
	$(AS) $(SFLAGS) -o $@ $<

bin/crt0.o: src/crt0.S
	$(AS) $(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/*~
