# Makefile for running
# Satofumi KAMIMURA
# $Id: Makefile 1854 2010-07-14 00:55:57Z satofumi $

# Compile options
CC = g++
CXXFLAGS = -g -O0 -Wall -W -Werror $(INCLUDES)
INCLUDES = -I../coordinate -I../geometry -I../system -Ibeego_drive -I../connection -I../network -IrunCtrl/cpp -IrunCtrl/crdCtrl/cpp -IrunCtrl/utils/cpp -IrunCtrl/utils/c -IrunCtrl/ticksCtrl/cpp -IrunCtrl/tRunCtrl -I../timestamp -I../math
LDFLAGS =
LDLIBS =


# Target
RUNNING_LIB = running.a
TARGET = $(RUNNING_LIB)

all : $(TARGET)

clean :
	$(RM) *.o $(TARGET) allTest
	cd samples/ && $(MAKE) clean
	cd beego_drive/ && $(MAKE) clean
	cd runCtrl/ && $(MAKE) clean
	cd myrobot_drive/ && $(MAKE) clean

test : allTest
	./allTest

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

.PHONY : all clean test depend
######################################################################
PacketAccess.cpp : beego_drive/struct_offset.txt command_generator.rb
	ruby command_generator.rb

$(RUNNING_LIB) : \
	$(RUNNING_LIB)(BeegoDrive.o) \
	$(RUNNING_LIB)(CommandPacket.o) \
	$(RUNNING_LIB)(PacketAccess.o) \
	$(RUNNING_LIB)(ThreeDrive.o) \
	$(RUNNING_LIB)(PhidgetDevice.o) \

REQUIRE_LIBS = $(RUNNING_LIB) ../geometry/geometry.a
$(REQUIRE_LIBS) :
	cd $(@D)/ && $(MAKE) $(@F)

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

# DO NOT DELETE

BeegoDrive.o: ../coordinate/Coordinate.h ../geometry/Position.h
BeegoDrive.o: ../geometry/Angle.h Running.h ../geometry/Point.h
BeegoDrive.o: ../timestamp/Timestamp.h WheelDirect.h
CommandPacket.o: beego_drive/system_t.h
PacketAccess.o: beego_drive/robot_t.h beego_drive/system_t.h
PacketAccess.o: beego_drive/motor_t.h beego_drive/position_t.h
PacketAccess.o: beego_drive/body_t.h beego_drive/math_utils.h
PacketAccess.o: beego_drive/wheel_t.h beego_drive/encoder_t.h
PacketAccess.o: beego_drive/path_t.h beego_drive/direct_t.h
PacketAccess.o: beego_drive/follow_t.h
Running.o: ../geometry/Position.h ../geometry/Angle.h ../geometry/Point.h
ThreeDrive.o: ../coordinate/Coordinate.h ../geometry/Position.h
ThreeDrive.o: ../geometry/Angle.h Running.h ../geometry/Point.h
BeegoDrive.o: BeegoDrive.h ../coordinate/Coordinate.h ../geometry/Position.h
BeegoDrive.o: ../geometry/Angle.h Running.h ../geometry/Point.h
BeegoDrive.o: ../timestamp/Timestamp.h WheelDirect.h CommandPacket.h
BeegoDrive.o: beego_drive/system_t.h ../connection/SerialDevice.h
BeegoDrive.o: ../connection/Connection.h ../geometry/Rotate.h
BeegoDrive.o: ../math/MathUtils.h ../system/DetectOS.h
BeegoDrive.o: beego_drive/beego_drive.h
CommandPacket.o: CommandPacket.h beego_drive/system_t.h PacketAccess.h
CommandPacket.o: beego_drive/robot_t.h beego_drive/motor_t.h
CommandPacket.o: beego_drive/position_t.h beego_drive/body_t.h
CommandPacket.o: beego_drive/math_utils.h beego_drive/wheel_t.h
CommandPacket.o: beego_drive/encoder_t.h beego_drive/path_t.h
CommandPacket.o: beego_drive/direct_t.h beego_drive/follow_t.h
CommandPacket.o: ../connection/Connection.h ../system/delay.h
PacketAccess.o: PacketAccess.h beego_drive/robot_t.h beego_drive/system_t.h
PacketAccess.o: beego_drive/motor_t.h beego_drive/position_t.h
PacketAccess.o: beego_drive/body_t.h beego_drive/math_utils.h
PacketAccess.o: beego_drive/wheel_t.h beego_drive/encoder_t.h
PacketAccess.o: beego_drive/path_t.h beego_drive/direct_t.h
PacketAccess.o: beego_drive/follow_t.h
PhidgetDevice.o: PhidgetDevice.h
ThreeDrive.o: ThreeDrive.h ../coordinate/Coordinate.h ../geometry/Position.h
ThreeDrive.o: ../geometry/Angle.h Running.h ../geometry/Point.h
