FATFS_MMC      = mmc.c
#FATFS_MMC      = mmc_gpio.c
FFDIR          = ../fatfs
SRCDIR         = ../src

TARGET         = ff_loader
CSRC           = main.c $(FFDIR)/ff.c $(FFDIR)/$(FATFS_MMC) $(SRCDIR)/sys_ctrl.c $(SRCDIR)/cmt0_ctrl.c $(SRCDIR)/led_ctrl.c $(SRCDIR)/loader.c
ASRC           = asmfunc.s
OPTIMIZE       = -O2
DEFS           = 
LIBDIR         = /usr/local/sh-elf-4.0.2/lib/gcc/sh-elf/4.0-GNUSH_v0601/m2
DEBUG          = dwarf-2
LDSCRIPT       = sh72620_ram.ld

CC             = /usr/local/sh-elf-4.0.2/bin/sh-elf-gcc
OBJCOPY        = /usr/local/sh-elf-4.0.2/bin/sh-elf-objcopy
OBJDUMP        = /usr/local/sh-elf-4.0.2/bin/sh-elf-objdump
SIZE           = /usr/local/sh-elf-4.0.2/bin/sh-elf-size

ASFLAGS        = -Wa,-adhlns=$(<:.s=.lst),-gstabs
ALL_ASFLAGS    = -I. -x assembler-with-cpp $(ASFLAGS)
CFLAGS         = -Wall -g$(DEBUG) -m2 $(OPTIMIZE) $(DEFS)
LDFLAGS        = -Wl,-Map,$(TARGET).map,--cref,--gc-sections -T$(LDSCRIPT) -L $(LIBDIR)
OBJ            = $(CSRC:.c=.o) $(ASRC:.s=.o)


all: $(TARGET).elf lst text size

$(TARGET).elf: $(OBJ)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^

clean:
	rm -rf $(CSRC:.c=.o) $(ASRC:.s=.o)
	rm -rf *.eps *.bak *.a
	rm -rf *.lst *.map $(TARGET).elf
	rm -rf $(TARGET).mot $(TARGET).bin

mkdep:
	$(CC) -MM -MG $(CSRC) $(ASRC) >$(TARGET).dep

-include $(TARGET).dep

size: $(TARGET).elf
	$(SIZE) -A $(TARGET).elf

lst:  $(TARGET).lst
%.lst: %.elf
	$(OBJDUMP) -h -S -C $< > $@

%.o : %.s
	$(CC) -c $(ALL_ASFLAGS) $< -o $@


text: mot bin
mot:  $(TARGET).mot
bin:  $(TARGET).bin

%.mot: %.elf
	$(OBJCOPY) -j .text -j .data -O srec $< $@

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


