TOOLCHAIN		?=	~/m68k-none-elf/bin/
CC				=	$(TOOLCHAIN)/m68k-none-elf-gcc
LD				=	$(TOOLCHAIN)/m68k-none-elf-gcc
OBJCOPY			=	$(TOOLCHAIN)/m68k-none-elf-objcopy
MKPRC			=	/mnt/hgfs/D/projects/arm/rePalm/tools/mkrom/mkprc
COMMON			=	-Wno-multichar -funsafe-math-optimizations -Os -m68000 -mno-align-int -mpcrel -fpic -fshort-enums -mshort -nostdlib -flto
WARN			=	-Wsign-compare -Wextra -Wall -Werror -Wno-unused-parameter -Wno-old-style-declaration -Wno-unused-function -Wno-unused-variable -Wno-error=cpp
LKR				=	linker.lkr
CCFLAGS			=	$(LTO) $(WARN) $(COMMON) -I. -ffunction-sections -fdata-sections
LDFLAGS			=	$(LTO) $(WARN) $(COMMON) -Wl,--gc-sections -Wl,-T $(LKR)
TARGET			=	SpringSD
#SRCS			=	Src/test.c Src/sd.c
SRCS			=	Src/Slot.c Src/sd.c
EXTRAOBJS 		=	_udivsi3.o
OBJS			=	$(patsubst %.c,%.68k.o,$(SRCS))
BUILDOBJS		=	$(OBJS) $(EXTRAOBJS)

#add PalmOS SDK
INCS			+=	-isystemgccisms
INCS			+=	-isystem../../SDK
INCS			+=	-isystem../../SDK/Core
INCS			+=	-isystem../../SDK/Core/Hardware
INCS			+=	-isystem../../SDK/Core/System
INCS			+=	-isystem../../SDK/Core/UI
INCS			+=	-isystem../../SDK/Dynamic
INCS			+=	-isystem../../SDK/Libraries
INCS			+=	-isystem../../SDK/Extensions/ExpansionMgr
INCS			+=	-Ifirmware

all:	$(TARGET).prc

%.prc: %.bin
	pilrc -ro -type libs -creator PpSs -name SpringSD res.rcp $@

%.68k.o: %.c Makefile
	$(CC) $(CCFLAGS) $(INCS) -c $< -o $@
	
$(TARGET).elf: $(BUILDOBJS)
	$(LD) -o $@ $(LDFLAGS) $^

%.bin: %.elf
	$(OBJCOPY) -O binary $< $@ -j.text -j.rodata

clean:
	rm -rf $(OBJS) $(TARGET).elf $(TARGET).bin
 
.PHONY: clean
