# Makefile for libs/monitor
# Satofumi KAMIMURA
# $Id: Makefile 310 2008-10-27 21:09:36Z satofumi $

# Compile options
CC = g++
CXXFLAGS = -g -O0 -Wall -Werror ${INCLUDES} `sdl-config --cflags`
INCLUDES = -I../coordinate -I../running -I../range_sensor -I../video -I../connection -I../connection/sdl -I../geometry -I../common -I../system
LDFLAGS =
LDLIBS =


# Target
MONITOR_LIB = monitor.a
TARGET = ${MONITOR_LIB}

all : ${TARGET}

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

test : allTest
	./allTest

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

.PHONY : all clean depend test
######################################################################
${MONITOR_LIB} : \
	${MONITOR_LIB}(MonitorModeManager.o) \
	${MONITOR_LIB}(MonitorEventScheduler.o) \
	${MONITOR_LIB}(MonitorDataHandler.o) \
	${MONITOR_LIB}(DeviceIpManager.o) \
	${MONITOR_LIB}(LogNameHolder.o) \
	${MONITOR_LIB}(mConnection.o) \
	${MONITOR_LIB}(mUrgCtrl.o) \
	${MONITOR_LIB}(UrgServer.o) \
	${MONITOR_LIB}(mDifferentialDrive.o) \
	${MONITOR_LIB}(mCameraCtrl.o) \

REQUIRE_LIBS = ${MONITOR_LIB} ../common/common.a ../system/sdl/system_sdl.a ../system/system.a
${REQUIRE_LIBS} :
	cd ${@D}/ && ${MAKE} ${@F}

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

TEST_OBJS = allTest.o TestMonitorModeManager.o TestMonitorDataHandler.o ${REQUIRE_LIBS}
TEST_LDLIBS = `sdl-config --libs`
allTest : ${TEST_OBJS}
	${CXX} ${CXXFLAGS} ${TEST_OBJS} -o $@ `cppunit-config --libs` ${TEST_LDLIBS}

# DO NOT DELETE

MonitorDataHandler.o: MonitorModeManager.h ../system/DetectOS.h
UrgServer.o: DeviceServer.h
mConnection.o: ../connection/Connection.h
mDifferentialDrive.o: ../running/DifferentialDrive.h ../running/RunCtrl.h
mDifferentialDrive.o: ../coordinate/Coordinate.h ../geometry/PositionTypes.h
mDifferentialDrive.o: ../geometry/AngleTypes.h
mDifferentialDrive.o: ../running/AdditionalRunCommands.h
mDifferentialDrive.o: ../geometry/GridTypes.h
mUrgCtrl.o: ../range_sensor/UrgCtrl.h ../range_sensor/RangeSensor.h
mUrgCtrl.o: ../coordinate/Coordinate.h ../geometry/PositionTypes.h
mUrgCtrl.o: ../geometry/AngleTypes.h ../range_sensor/RangeCaptureMode.h
DeviceIpManager.o: DeviceIpManager.h
LogNameHolder.o: LogNameHolder.h ../system/DetectOS.h
MonitorDataHandler.o: MonitorDataHandler.h MonitorModeManager.h
MonitorDataHandler.o: ../system/DetectOS.h MonitorEventScheduler.h
MonitorDataHandler.o: ../system/Lock.h ../system/ConditionVariable.h
MonitorDataHandler.o: ../system/getTicks.h ../common/split.h
MonitorDataHandler.o: ../connection/sdl/TcpipCtrl.h
MonitorDataHandler.o: ../connection/Connection.h
MonitorEventScheduler.o: MonitorEventScheduler.h ../system/Thread.h
MonitorEventScheduler.o: ../system/Lock.h ../system/ConditionVariable.h
MonitorEventScheduler.o: ../system/getTicks.h ../system/delay.h
MonitorModeManager.o: MonitorModeManager.h
TestMonitorDataHandler.o: TestMonitorDataHandler.h MonitorDataHandler.h
TestMonitorDataHandler.o: MonitorModeManager.h ../system/DetectOS.h
TestMonitorModeManager.o: TestMonitorModeManager.h MonitorModeManager.h
UrgServer.o: UrgServer.h DeviceServer.h
mCameraCtrl.o: mCameraCtrl.h ../video/CameraCtrl.h
mConnection.o: mConnection.h ../connection/Connection.h MonitorDataHandler.h
mConnection.o: MonitorModeManager.h ../system/DetectOS.h LogNameHolder.h
mDifferentialDrive.o: mDifferentialDrive.h ../running/DifferentialDrive.h
mDifferentialDrive.o: ../running/RunCtrl.h ../coordinate/Coordinate.h
mDifferentialDrive.o: ../geometry/PositionTypes.h ../geometry/AngleTypes.h
mDifferentialDrive.o: ../running/AdditionalRunCommands.h
mDifferentialDrive.o: ../geometry/GridTypes.h
mUrgCtrl.o: mUrgCtrl.h ../range_sensor/UrgCtrl.h
mUrgCtrl.o: ../range_sensor/RangeSensor.h ../coordinate/Coordinate.h
mUrgCtrl.o: ../geometry/PositionTypes.h ../geometry/AngleTypes.h
mUrgCtrl.o: ../range_sensor/RangeCaptureMode.h
mUrgCtrl.o: ../range_sensor/RangeSensorParameter.h UrgServer.h DeviceServer.h
mUrgCtrl.o: ../connection/SerialCtrl.h ../connection/Connection.h
mUrgCtrl.o: ../connection/sdl/TcpipCtrl.h MonitorModeManager.h
mUrgCtrl.o: MonitorEventScheduler.h DeviceIpManager.h mConnection.h
