CPUFLAGS_CC = -ms -ms2600
CPUFLAGS_LD = -m h8300s

DEFINES = -D__ASSEMBLY__ -DCONFIG_HMS_EVB_H8S2633F $(DEFS)
INCLUDES =

CFLAGS  = $(CPUFLAGS_CC) -Wall -O2 -fomit-frame-pointer         \
	  -ffreestanding -nostartfiles -nodefaultlibs -nostdlib \
          $(DEFINES) $(INCLUDES)

LDFLAGS = $(CPUFLAGS_LD)

AS = $(CROSS)as 
CC = $(CROSS)gcc $(CFLAGS)
LD = $(CROSS)ld $(LDFLAGS)
OBJCOPY = $(CROSS)objcopy

UFPB_OBJECTS = main_from_ufpb.o boot.o hms_evb_h8s2633f.o uart.o 
FLASH_OBJECTS = h8s2633f_vectors.o boot.o hms_evb_h8s2633f.o uart.o 

%.srec:	%.o
	$(OBJCOPY) -O srec $*.o $*.srec

%.bin:	%.o
	$(OBJCOPY) -O binary $*.o $*.bin

# this rule will make it possible to use macros in our assembly-files
# 
# this is normally not a problem, but for some reason does our "h8300-hms-as"
# treat ";" as a comment-char, which makes it hard to use macros...
# so, use c-style comments instead of ";".
#
# line-numbers will probably be wrong if "as" complains..

.S.o:
	$(CC) $(CFLAGS) -c -E $< | tr ";" "\n" | $(AS) - -o $*.o

.PHONY = all

all: 
	make boot_from_ufpb.bin DEFS=-DBUILD_FOR_UFPB
	make objclean
	make boot_from_flash.srec DEFS=-DBUILD_FOR_FLASH
	make objclean

boot_from_ufpb.o: $(UFPB_OBJECTS)
	$(LD) -T hms_evb_h8s2633f.ldscript_ufpb -e start $^ -o $@ 

boot_from_flash.o: $(FLASH_OBJECTS)
	$(LD) -T hms_evb_h8s2633f.ldscript_flash -e start $^ -o $@ 

objclean:
	rm -f *.o
binclean:
	rm -f *.bin

clean: objclean binclean




