

CC     = sh-hms-gcc
ASM    = sh-hms-gcc
LINK   = sh-hms-ld
OBJCNV = sh-hms-objcopy

TARGET = sample

CFLAGS = -c -m2 -I../../include
AFLAGS = -c -m2
LFLAGS = -v -t -L/gnupro-99r1p1/H-i686-cygwin32/sh-hms/lib/m2 -L/gnupro-99r1p1/H-i686-cygwin32/lib/gcc-lib/sh-hms/2.9-gnupro-99r1p1/m2 -Map sample.map -Tsample.x

INCS   = kernel_id.h sample.h sci.h
OBJS   = crt0.o vector.o sample.o ostimer.o sci.o stmfifo.o kernel_cfg.o
LIBS   = ../../lib/sh/sh2gcc/h4sh2gcc.a -lc -lgcc

${TARGET}.mot: ${OBJS} sample.x
	${LINK} ${LFLAGS} -o ${TARGET}.out ${OBJS} ${LIBS}
	${OBJCNV} -O srec ${TARGET}.out ${TARGET}.mot

vector.o: vector.s
	${ASM} ${AFLAGS} vector.s -o vector.o

crt0.o: crt0.s
	${ASM} ${AFLAGS} crt0.s -o crt0.o

sample.o: sample.c ${INCS}
	${CC} ${CFLAGS} sample.c -o sample.o

ostimer.o: ostimer.c ostimer.h
	${CC} ${CFLAGS} ostimer.c -o ostimer.o

sci.o: sci.c sci.h
	${CC} ${CFLAGS} sci.c -o sci.o

stmfifo.o: stmfifo.c stmfifo.h
	${CC} ${CFLAGS} stmfifo.c -o stmfifo.o

kernel_cfg.o: kernel_cfg.c ${INCS}
	${CC} ${CFLAGS} kernel_cfg.c -o kernel_cfg.o

kernel_cfg.c kernel_id.h: system.cfg
	cp system.cfg system_tmp.c
	${CC} -E system_tmp.c -o system.i
	hos4cfg system.i
	rm system.i
	rm system_tmp.c
#	cpp system.cfg > system.i
#	hos4cfg system.i
#	rm system.i


clean:
	rm -f *.mot
	rm -f *.out
	rm -f *.o
	rm -f kernel_id.h
	rm -f kernel_cfg.c
