# Makefile for libs/sh7045
# Satofumi KAMIMURA
# $Id$

include rules.mk

# Compile options
ARCH = sh-coff
#ARCH = sh-elf

CFLAGS_FOR_BUILD = -O2 -m2 -Wall -Werror ${INCLUDES}
INCLUDES =
LDFLAGS_FOR_BUILD = -nostartfiles ${START_UP_FILES}
LDLIBS_FOR_BUILD =
ARFLAGS_FOR_BUILD = rv
#AS = ${AS_FOR_BUILD}

# Target
SH7045_LIB = sh7045.a
TARGET = ${SH7045_LIB}

all : ${TARGET}

clean :
	${RM} *.o ${TARGET} allTest
	cd samples/ && ${MAKE} clean

test : allTest
	./allTest

depend :
	makedepend -Y -- ${INCLUDES} -- ${wildcard *.h *.c *.cpp}

.PHONY : all clean depend
######################################################################

${SH7045_LIB} : \
	${SH7045_LIB}(imask_ctrl.o) \
	${SH7045_LIB}(timer_ctrl.o) \
	${SH7045_LIB}(sci_ctrl.o) \
	${SH7045_LIB}(sci_put.o) \
	${SH7045_LIB}(sci_get.o) \
	${SH7045_LIB}(ring_buffer.o) \
	${SH7045_LIB}(wdt_ctrl.o)

CXX = g++
CXXFLAGS =
TEST_LDLIBS =

allTest.o : ../../unittest/allTest.cpp
	${CXX} ${CXXFLAGS} `cppunit-config --cflags` $< -c -o $@

REQUIRE_LIBS =
${REQUIRE_LIBS} :
	cd ${@D}/ && ${MAKE} ${@F}

ring_buffer_host.o : ring_buffer.c
	${CXX} ${CXXFLAGS} `cppunit-config --cflags` $< -c -o $@

TEST_OBJS = allTest.o Test_ring_buffer.o ring_buffer_host.o ${REQUIRE_LIBS}
allTest : ${TEST_OBJS}
	${CXX} ${CXXFLAGS} ${TEST_OBJS} -o $@ `cppunit-config --libs` ${TEST_LDLIBS}

# DO NOT DELETE

sci_get.o: sci_ctrl.h
sci_put.o: sci_ctrl.h
imask_ctrl.o: imask_ctrl.h
ring_buffer.o: ring_buffer.h
sci_ctrl.o: sci_ctrl.h cpu_akiduki.h ring_buffer.h imask_ctrl.h
sci_get.o: sci_get.h sci_ctrl.h cpu_akiduki.h
sci_put.o: sci_put.h sci_ctrl.h cpu_akiduki.h
timer_ctrl.o: timer_ctrl.h cpu_akiduki.h sci_put.h sci_ctrl.h
wdt_ctrl.o: wdt_ctrl.h cpu_akiduki.h
Test_ring_buffer.o: Test_ring_buffer.h ring_buffer.h
