# Makefile for libs/monitor
# Satofumi KAMIMURA
# $Id: Makefile 1739 2010-03-06 07:43:32Z satofumi $

# Compile options
CC = g++
CXXFLAGS = -g -O0 -Wall -W -Werror $(INCLUDES) `sdl-config --cflags`
INCLUDES = -Isystem -I../system -I../coordinate -I../running -I../range_sensor -I../video -I../gps -I../controller/sdl -I../connection -I../connection/sdl -I../geometry -I../common -I../math
LDFLAGS =
LDLIBS =


# Target
MONITOR_LIB = monitor.a
TARGET = $(MONITOR_LIB) \
#	stripTimingData \

all : $(TARGET)

clean :
	$(RM) *.o $(TARGET) allTest monitor_test.log stripTimingData
	cd system/ && $(MAKE) clean
	cd samples/ && $(MAKE) clean

test : allTest
	./allTest

depend :
	makedepend -Y -- $(INCLUDES) -- $(wildcard *.h *.cpp)

.PHONY : all clean depend test
######################################################################
$(MONITOR_LIB) : \
	$(MONITOR_LIB)(MonitorEventScheduler.o) \
	$(MONITOR_LIB)(MonitorDataHandler.o) \
	$(MONITOR_LIB)(DeviceIpManager.o) \
	$(MONITOR_LIB)(LogNameHolder.o) \
	$(MONITOR_LIB)(mConnection.o) \
	$(MONITOR_LIB)(mUrgDevice.o) \
	$(MONITOR_LIB)(UrgServer.o) \
	$(MONITOR_LIB)(mCameraDevice.o) \
	$(MONITOR_LIB)(mGpsCtrl.o) \
	$(MONITOR_LIB)(GpsServer.o) \
	$(MONITOR_LIB)(mUsbJoystick.o) \
#	$(MONITOR_LIB)(mDifferentialDrive.o) \

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

stripTimingData : stripTimingData.cpp
	$(CXX) -g -O2 -Wall -W -Werror $< -o $@ $(LDFLAGS) $(LDLIBS) -lboost_filesystem

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

TEST_OBJS = allTest.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

GpsServer.o: DeviceServer.h
MonitorDataHandler.o: system/MonitorModeManager.h ../system/DetectOS.h
UrgServer.o: DeviceServer.h
mConnection.o: ../connection/Connection.h
mGpsCtrl.o: ../gps/Gps.h
mUrgDevice.o: ../range_sensor/UrgDevice.h ../range_sensor/RangeSensor.h
mUrgDevice.o: ../range_sensor/RangeCaptureMode.h ../math/MathUtils.h
mUrgDevice.o: ../system/DetectOS.h ../coordinate/Coordinate.h
mUrgDevice.o: ../geometry/Position.h ../geometry/Angle.h
DeviceIpManager.o: DeviceIpManager.h
GpsServer.o: GpsServer.h DeviceServer.h
LogNameHolder.o: LogNameHolder.h ../system/DetectOS.h
MonitorDataHandler.o: MonitorDataHandler.h system/MonitorModeManager.h
MonitorDataHandler.o: ../system/DetectOS.h MonitorEventScheduler.h
MonitorDataHandler.o: system/Lock.h system/ConditionVariable.h
MonitorDataHandler.o: ../system/ticks.h ../common/split.h
MonitorEventScheduler.o: MonitorEventScheduler.h system/Thread.h
MonitorEventScheduler.o: system/Lock.h system/ConditionVariable.h
MonitorEventScheduler.o: ../system/ticks.h ../system/delay.h
TestMonitorDataHandler.o: TestMonitorDataHandler.h MonitorDataHandler.h
TestMonitorDataHandler.o: system/MonitorModeManager.h ../system/DetectOS.h
UrgServer.o: UrgServer.h DeviceServer.h
mCameraDevice.o: mCameraDevice.h ../video/CameraDevice.h ../video/Camera.h
mConnection.o: mConnection.h ../connection/Connection.h MonitorDataHandler.h
mConnection.o: system/MonitorModeManager.h ../system/DetectOS.h
mConnection.o: LogNameHolder.h
mDifferentialDrive.o: mDifferentialDrive.h mConnection.h
mDifferentialDrive.o: ../connection/Connection.h MonitorDataHandler.h
mDifferentialDrive.o: system/MonitorModeManager.h ../system/DetectOS.h
mDifferentialDrive.o: LogNameHolder.h DeviceIpManager.h
mGpsCtrl.o: mGpsCtrl.h ../gps/Gps.h ../gps/GpsCtrl.h GpsServer.h
mGpsCtrl.o: DeviceServer.h ../connection/SerialDevice.h
mGpsCtrl.o: ../connection/Connection.h ../connection/TcpipSocket.h
mGpsCtrl.o: system/MonitorModeManager.h MonitorEventScheduler.h
mGpsCtrl.o: DeviceIpManager.h mConnection.h
mUrgDevice.o: mUrgDevice.h ../range_sensor/UrgDevice.h
mUrgDevice.o: ../range_sensor/RangeSensor.h
mUrgDevice.o: ../range_sensor/RangeCaptureMode.h ../math/MathUtils.h
mUrgDevice.o: ../system/DetectOS.h ../coordinate/Coordinate.h
mUrgDevice.o: ../geometry/Position.h ../geometry/Angle.h
mUrgDevice.o: ../range_sensor/RangeSensorParameter.h UrgServer.h
mUrgDevice.o: DeviceServer.h ../connection/SerialDevice.h
mUrgDevice.o: ../connection/Connection.h ../connection/TcpipSocket.h
mUrgDevice.o: MonitorEventScheduler.h MonitorDataHandler.h
mUrgDevice.o: system/MonitorModeManager.h LogNameHolder.h DeviceIpManager.h
mUrgDevice.o: mConnection.h
mUsbJoystick.o: mUsbJoystick.h ../controller/sdl/UsbJoystick.h
mUsbJoystick.o: MonitorDataHandler.h system/MonitorModeManager.h
mUsbJoystick.o: ../system/DetectOS.h LogNameHolder.h
