TARGET         = demo
CSRC           = main.c demo.c
OPTIMIZE       = -Os
DEFS           = 
LIBDIR         = /usr/local/sh-tools/lib/gcc/sh-elf/4.4.0/m2a
DEBUG          = dwarf-2
LDSCRIPT       = sh72620_ram.ld

INCDIR         = /usr/local/sh-tools/newlib/sh-elf/include
CC             = /usr/local/sh-tools/bin/sh-elf-gcc
LD             = /usr/local/sh-tools/bin/sh-elf-ld
OBJCOPY        = /usr/local/sh-tools/bin/sh-elf-objcopy
OBJDUMP        = /usr/local/sh-tools/bin/sh-elf-objdump
SIZE           = /usr/local/sh-tools/bin/sh-elf-size

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


all: $(TARGET).elf $(TARGET).bin size

$(TARGET).elf: $(OBJ) $(KANJILIB)
	$(LD) -Map $(TARGET).map -T $(LDSCRIPT) $(OBJ) -L$(LIBDIR) $(KANJILIB) -lgcc -o $(TARGET).elf

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) -I../include -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 $< $@


