
CC = /usr/local/devkitadv/bin/arm-agb-elf-gcc
LD = /usr/local/devkitadv/bin/arm-agb-elf-gcc
AS = /usr/local/devkitadv/bin/arm-agb-elf-as

CFLAGS3 = -DLITTLE_ENDIAN -DGP32 -O3 -fno-builtin -fomit-frame-pointer -finline-functions -ffreestanding -fno-exceptions -mcpu=arm9tdmi -mtune=arm9tdmi
#CFLAGS = -DFPM_ARM -DOPT_SPEED -DLITTLE_ENDIAN -DGP32 -O2 -fno-builtin -ffreestanding -fno-exceptions -mcpu=arm9tdmi -mtune=arm9tdmi
CFLAGS = -DFPM_ARM -DOPT_SPEED -DLITTLE_ENDIAN -DGP32 -fno-builtin -ffreestanding -fno-exceptions -mcpu=arm9tdmi -mtune=arm9tdmi
CFLAGS2 = -DLITTLE_ENDIAN -DGP32 -fno-builtin -ffreestanding -fno-exceptions -mcpu=arm9tdmi -mtune=arm9tdmi

SMOBJS = $(addsuffix .o, $(basename $(wildcard smfs/*.c)))
#POGOBJ = core.o stuff.o sema.o sound.o bmp.o screen.o console.o font.o keyboard.o core_misc.o memory.o misc.o device.o io.o string.o sm_filesys.o
POGOBJ = core.o stuff.o sema.o bmp.o screen.o console.o font.o keyboard.o core_misc.o memory.o misc.o device.o io.o string.o sm_filesys.o

OBJCOPY = /usr/local/devkitadv/bin/arm-agb-elf-objcopy

%.o: %.c
	$(CC) $(CFLAGS) -c $<

%.o: %.cpp
	$(CC) $(CPPFLAGS) -c $<

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

%.o: %.s
	$(AS) -o $@ $<
 

all: libpogo.a

core.o: core.c
	$(CC) $(CFLAGS2) -c $<

keyboard.o: keyboard.c
	$(CC) $(CFLAGS2) -c $<

sound.o : sound.c
	$(CC) $(CFLAGS2) -c $<

libpogo.a : smfs/libsm.a $(POGOBJ)
	ar r $@ $(SMOBJS) $(POGOBJ)

smfs/libsm.a :
	(cd smfs ; make)

clean:
	(cd smfs ; make clean)
	rm -f *.gxb *.elf *.smc *.o *.a

