NAME		= rePalmSbar
TYPE		= aexo
CRID		= sBAR
PRC			= $(NAME).prc
CODERES		= amdc0000
SRCS		= main.c sbar.c libpalmos.c patching.c skin.c crt.S pace.S
RSRCS		= tver0001.bin amdi0000.bin


CC			= arm-none-eabi-gcc
LD			= arm-none-eabi-gcc
OBJCOPY		= arm-none-eabi-objcopy
LKR			= arm_lib.lkr
LTO			= #-flto
COMMFLAGS	= -Os -g -ggdb3 -ffunction-sections -fdata-sections -ffixed-r9 -fpic -Wno-multichar -Wall $(LTO) -Wno-unused-label
CCFLAGS		= $(COMMFLAGS) -I. -DUSE_TRAPS=0
LDFLAGS		= $(COMMFLAGS) -Wl,--gc-sections -Wl,-T $(LKR)
BUILD		= v6m




ifeq ($(BUILD),v6m)
	
	COMMFLAGS		+= -march=armv6-m -mcpu=cortex-m0 -DBUILD_FOR_V6M -DBUILD_FOR_THUMB_1
	CRTGENARCH		= v6m
	
else ifeq ($(BUILD),v7m)

	COMMFLAGS		+= -march=armv7-m -mcpu=cortex-m3
	CRTGENARCH		= v7m

else ifeq ($(BUILD),v5te)

	COMMFLAGS		+= -marm -march=armv5t -mfloat-abi=soft -mtune=xscale
	CRTGENARCH		= v4

else

	ERR				= $(error "no arch defined")
	
endif


#add SDK
CCFLAGS		+=  -I../../SDK
CCFLAGS		+=  -I../../SDK/Core
CCFLAGS		+=  -I../../SDK/Core/System
CCFLAGS		+=  -I../../SDK/Core/Hardware
CCFLAGS		+=  -I../../SDK/Core/UI
CCFLAGS		+=  -I../../SDK/Dynamic
CCFLAGS		+=  -I../../SDK/libraries

#add repalm
CCFLAGS		+=  -isystem ../dal

#do not touch below

all:		$(PRC)
.PHONY:		$(PRC) clean

OBJS		= $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(SRCS)))
INCS		= $(wildcard *.h)

$(PRC):	$(RSRCS) $(CODERES).bin Makefile
	../../tools/mkrom/mkprc "$(NAME)" $(TYPE) $(CRID) $(RSRCS) $(CODERES).bin > $(PRC)

$(CODERES).elf: $(OBJS) $(LKR) Makefile
	$(LD) -o $@ $(LDFLAGS) $(OBJS)

%.bin : %.elf Makefile
	$(OBJCOPY) -I elf32-littlearm -O binary $< $@ -j.vec -j.text -j.rodata -j.data

libpalmos.c: ../dal/libpalmos.c
	cp $< $@

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

pace.S: Makefile ../../tools/libtools/PACE.libdescr
	echo "#define _ASSEMBLY\n#include \"common.h\"\n#define LIB_SLOT_IN_GLOBALS 0x10" > pace.S
	../../tools/libtools/inclgen.sh $(CRTGENARCH) ../../tools/libtools/PACE.libdescr >> pace.S

crt.S: Makefile dia.libdescr
	../../tools/libtools/crtgen.sh $(CRTGENARCH) dia.libdescr >crt.S

clean:
	rm $(PRC) $(OBJS) $(CODERES).bin $(CODERES).elf crt.S pace.S libpalmos.c 

	
