ARMGCC = arm-eabi-gcc
ARMOBJ = arm-eabi-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: dpcmplay.bin
	gbafix $^

%.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 $@

dpcmplay.elf: gsmplay.o isr.iwram.o asm.iwram.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
