# object dir

ifeq ($(strip $(DS2SDKPATH)),)
$(error "Please set DS2SDKPATH in your environment: export DS2SDKPATH=<path to>ds2sdk")
endif
TARGET := iReader

include ./system.mk

OBJS	+= $(addsuffix .o , $(basename $(notdir $(SOURCES))))
HEADO	:= $(addsuffix .o , $(basename $(notdir $(HEADS))))

LINKS := $(DS2SDKPATH)/specs/link.xn
STARTS := $(DS2SDKPATH)/specs/start.S
STARTO := start.o

#INC := -I../include -I$(FS_DIR) -I$(CONSOLE_DIR) -I$(KEY_DIR)

APP	:= $(TARGET).elf

all:	$(APP)
	$(OBJCOPY) -O binary $(APP) $(TARGET).bin
	$(OBJDUMP) -d $(APP) > $(TARGET).dump
	$(NM) $(APP) | sort > $(TARGET).sym
	$(OBJDUMP) -h $(APP) > $(TARGET).map
	$(DS2SDKPATH)/tools/makeplug $(TARGET).bin $(TARGET).plg
	rm -fr $(APP) $(STARTO) $(TARGET) $(HEADO) $(TARGET).bin

$(APP):	$(HEADO) $(OBJS) $(STARTO) $(EXTLIBS) $(LINKS) #makefile
	$(CC) -nostdlib -static -T $(LINKS) -o $@ $(HEADO) $(OBJS) $(EXTLIBS) $(LIBS)

.c.o:
	$(CC) $(CFLAGS) $(INC) -o $@ -c $<
.cpp.o:
	$(CC) $(CFLAGS) $(INC) -fno-rtti -fvtable-gc -o $@ -c $<
.S.o:
	$(CC) $(CFLAGS) $(INC) -D_ASSEMBLER_ -D__ASSEMBLY__ -o $@ -c $<

$(STARTO):
	$(CC) $(CFLAGS) $(INC) -o $@ -c $(STARTS)

clean:
	rm -fr *.o $(APP) $(OBJS) $(OTHER) *.sym *.map *.dump *.lib $(TARGET).bin $(TARGET).plg

clean_main:
	rm -fr $(EBOOK_OBJS) $(GDI_OBJS) $(IMAGE_OBJS) $(KEY_OBJS) $(GUI_SOURCE_OBJS) $(UNZIP_OBJS) 
