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
SDK				=	/mnt/hgfs/S/My\ Documents/SDK/
COMMON			=	-Wno-multichar -funsafe-math-optimizations -Ofast -m68000 -mno-align-int -mpcrel -fpic -fshort-enums -mshort
LTO				=	#-flto
WARN			=	-Wsign-compare -Wextra -Wall -Werror -Wno-unused-parameter -Wno-old-style-declaration -Wno-unused-function -Wno-unused-variable -Wno-error=cpp -Wno-strict-aliasing
LKR				=	linker.lkr
CCFLAGS			=	$(LTO) $(WARN) $(COMMON) -I. -ffunction-sections -fdata-sections
LDFLAGS			=	$(LTO) $(WARN) $(COMMON) -Wl,--gc-sections -Wl,-T $(LKR)
TARGET			=	Start
SRCS			=	serial.c main.c asm.S deviceID.c driverless.c driverless_MB86189.c hostFs.c
OBJS			=	$(patsubst %.S,%.68k.o,$(patsubst %.c,%.68k.o,$(SRCS)))
INCS			+=  -I.
INCS			+=  -I../../kernel/hw/msio


#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			+=	-isystem$(SDK)/SonySDK/R5.0/Incs/
INCS			+=	-isystem$(SDK)/SonySDK/R5.0/Incs/System
INCS			+=	-isystem$(SDK)/SonySDK/R5.0/Incs/Libraries


all:	$(TARGET).prc

%.prc: %.bin res.rcp
	pilrc -ro -type appl -creator rePa -name rePalm res.rcp $@

%.68k.o: %.c Makefile
	$(CC) $(CCFLAGS) $(INCS) -c $< -o $@
	
%.68k.o: %.S Makefile
	$(CC) $(CCFLAGS) $(INCS) -c $< -o $@

$(TARGET).elf: $(OBJS)
	$(LD) -o $@ $(LDFLAGS) $^

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

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