ARMGCC = /home/amishman35/Projects/devkitARM/devkitARM/bin/arm-elf-gcc
ARMOBJ = /home/amishman35/Projects/devkitARM/devkitARM/bin/arm-elf-objcopy

ROM_CFLAGS = -Wall -O2 -mthumb -mthumb-interwork
IWRAM_CFLAGS = -Wall -O3 -marm -mthumb-interwork
LDFLAGS = -Wall -mthumb -mthumb-interwork -specs=gba.specs

.PHONY: fix clean

fix: x.bin
	wine gbafix.exe $^

%.o: %.c
	$(ARMGCC) $(ROM_CFLAGS) -c $^ -o $@

%.iwram.o: %.c
	$(ARMGCC) $(IWRAM_CFLAGS) -c $^ -o $@

%.ewram.o: %.c
	$(ARMGCC) $(ROM_CFLAGS) -c $^ -o $@

%.o: %.s
	$(ARMGCC) $(ROM_CFLAGS) -c $^ -o $@

%.iwram.o: %.s
	$(ARMGCC) $(IWRAM_CFLAGS) -c $^ -o $@

x.elf: gsmplay.o gsmcode.iwram.o isr.iwram.o asm.iwram.o letters.o libgbfs.o
	$(ARMGCC) $(LDFLAGS) $^ -o $@

%.bin: %.elf
	$(ARMOBJ) -O binary $^ $@
	tools/padbin 256 $@

clean:
	-rm x.bin
	-rm x.elf
	-rm *.o
	-rm chr.s

