TARGET         = fftest
CSRC           = main.c scif.c ff.c mmc.c monitor.c option/cc932.c
ASRC           = asmfunc.s
OPTIMIZE       = -Os
DEFS           = 
LIBDIR         = /usr/local/sh-tools/lib/gcc/sh-elf/3.4.5/m2
DEBUG          = dwarf-2
LDSCRIPT       = sh72620_ram.ld

CC             = /usr/local/sh-tools/bin/sh-elf-gcc
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         = -Wall -g$(DEBUG) -std=c89 -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 $< $@


