# object dir

CURR_DIR = ${shell pwd}

#export DS2SDKPATH=$(CURR_DIR)/..
#export DS2SDKPATH=/mnt/hgfs/F/Work/JZ_NDS_COM/ds2sdk_r_20101109/ds2sdk_r
#export DS2SDKPATH=/mnt/hgfs/F/Work/JZ_NDS_COM/release/ds2sdk_v0.13beta
#export DS2SDKPATH=/mnt/hgfs/F/Work/ds2sdk/ds2sdk_v0.12beta_sleep

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

#The name final target
TARGET := iReader
#The directory where object files & intermediate files will be placed
BUILD := build

export OUTPUT := $(CURDIR)/$(TARGET)

#1-1----------------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#-------------------------------------------------------------------------------

.PHONY: $(BUILD) clean

#---------------------------------------------------------------------------------
$(BUILD):
	@[ -d $@ ] || mkdir -p $@
	@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
 
#---------------------------------------------------------------------------------
clean:
	@echo clean ...
	@rm -fr $(BUILD) $(OUTPUT).plg
 
#---------------------------------------------------------------------------------

#1-1----------------------------------------------------------------------------
else
#-------------------------------------------------------------------------------

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
#	$(DS2SDKPATH)/tools/makeplug ds2sdk.bin $(TARGET).plg
#	cp -fr $(TARGET).plg ../$(TARGET).plg
#	cp -fr $(TARGET).bin $(DS2SDKPATH)/tools_win/$(TARGET).bin
#	cp -fr $(TARGET).plg $(DS2SDKPATH)/tools_win/$(TARGET).plg
	rm -fr $(APP) $(STARTO) #$(TARGET).bin

$(APP):	$(HEADO) $(OBJS) $(STARTO) $(EXTLIBS) $(LINKS)
	$(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

#1-1----------------------------------------------------------------------------
endif
#-------------------------------------------------------------------------------

