GCC = /usr/local/sh-tools/bin/sh-elf-gcc
LD = /usr/local/sh-tools/bin/sh-elf-ld
AS = /usr/local/sh-tools/bin/sh-elf-as
OBJCOPY = /usr/local/sh-tools/bin/sh-elf-objcopy

all: download_sample_b.o download_sample_l.o startup_b.o startup_l.o startup_b_rom.o startup_l_rom.o memory.def
	$(LD) -EB -Map download_sample_b.map -T memory.def startup_b.o download_sample_b.o -o download_sample_b
	$(OBJCOPY) -O srec download_sample_b download_sample_b.mot
	$(LD) -EL -Map download_sample_l.map -T memory.def startup_l.o download_sample_l.o -o download_sample_l
	$(OBJCOPY) -O srec download_sample_l download_sample_l.mot
	$(LD) -EB -Map download_sample_b_rom.map -T memory_rom.def startup_b_rom.o download_sample_b.o -o download_sample_b_rom
	$(OBJCOPY) -O binary download_sample_b_rom download_sample_b_rom.bin
	$(LD) -EL -Map download_sample_l_rom.map -T memory_rom.def startup_l_rom.o download_sample_l.o -o download_sample_l_rom
	$(OBJCOPY) -O binary download_sample_l_rom download_sample_l_rom.bin
download_sample_b.o : download_sample.c
	$(GCC) -mb -g -c -m4 $< -o download_sample_b.o
download_sample_l.o : download_sample.c
	$(GCC) -ml -g -c -m4 $< -o download_sample_l.o
startup_b.o: startup.s
	$(AS) -big $< -o startup_b.o 
startup_l.o: startup.s
	$(AS) -little --defsym CONFIG_LITTLE_ENDIAN=1 $< -o startup_l.o 
startup_b_rom.o: startup.s
	$(AS) --defsym ROM_TARGET=1 -big $< -o startup_b_rom.o 
startup_l_rom.o: startup.s
	$(AS) --defsym ROM_TARGET=1 -little --defsym CONFIG_LITTLE_ENDIAN=1 $< -o startup_l_rom.o 
clean:
	rm -f *.o download_sample_b download_sample_l download_sample_b_rom download_sample_l_rom *.map *.bin *.mot
