CXX=g++

#SYS_LIBS=-ldl -lstdc++ 
EXT_LIBS = -ltf -lsensor_msgs -lBulletDynamics -lBulletCollision -lLinearMath -lrosbag -ltopic_tools -lmessage_filters -lros -lboost_thread-mt -lboost_signals-mt -lroscpp_serialization -lXmlRpc -lrosconsole -llog4cxx -lrostime -lcpp_common -lroslib -lrospack -lrosstack

# object files in this directory

OBJ = 

INCLUDE_PATH = \
    -I/opt/ros/electric/stacks/common_msgs/nav_msgs/msg_gen/cpp/include \
    -I/opt/ros/electric/stacks/common_msgs/nav_msgs/srv_gen/cpp/include \
    -I/opt/ros/electric/stacks/geometry/tf/include \
    -I/opt/ros/electric/stacks/geometry/tf/msg_gen/cpp/include \
    -I/opt/ros/electric/stacks/geometry/tf/srv_gen/cpp/include \
    -I/opt/ros/electric/stacks/common_msgs/sensor_msgs/include \
    -I/opt/ros/electric/stacks/common_msgs/sensor_msgs/msg_gen/cpp/include \
    -I/opt/ros/electric/stacks/common_msgs/sensor_msgs/srv_gen/cpp/include \
    -I/opt/ros/electric/stacks/common_msgs/geometry_msgs/msg_gen/cpp/include \
    -I/opt/ros/electric/stacks/bullet/include \
    -I/opt/ros/electric/stacks/geometry/angles/include \
    -I/opt/ros/electric/stacks/ros_comm/tools/rosbag/include \
    -I/opt/ros/electric/stacks/ros_comm/tools/topic_tools/include \
    -I/opt/ros/electric/stacks/ros_comm/tools/topic_tools/srv_gen/cpp/include \
    -I/opt/ros/electric/stacks/ros_comm/utilities/message_filters/include \
    -I/opt/ros/electric/stacks/ros_comm/tools/rostest/include \
    -I/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp/include \
    -I/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp/msg_gen/cpp/include \
    -I/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp/srv_gen/cpp/include \
    -I/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp_serialization/include \
    -I/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp_traits/include \
    -I/opt/ros/electric/stacks/ros_comm/utilities/xmlrpcpp/src \
    -I/opt/ros/electric/stacks/ros_comm/tools/rosconsole/include \
    -I/opt/ros/electric/stacks/ros_comm/utilities/rostime/include \
    -I/opt/ros/electric/stacks/ros_comm/utilities/cpp_common/include \
    -I/opt/ros/electric/stacks/ros_comm/messages/rosgraph_msgs/msg_gen/cpp/include \
    -I/opt/ros/electric/stacks/ros_comm/messages/std_msgs/include \
    -I/opt/ros/electric/stacks/ros_comm/messages/std_msgs/msg_gen/cpp/include \
    -I/opt/ros/electric/ros/core/roslib/msg_gen/cpp/include \
    -I/opt/ros/electric/ros/core/roslib/include \
    -I/opt/ros/electric/ros/tools/rospack \
    -I/opt/ros/electric/ros/tools/rospack/include

LIBS_PATH = \
    -L/opt/ros/electric/stacks/geometry/tf/lib  \
    -L/opt/ros/electric/stacks/common_msgs/sensor_msgs/lib \
    -L/opt/ros/electric/stacks/bullet/lib  \
    -L/opt/ros/electric/stacks/ros_comm/tools/rosbag/lib  \
    -L/opt/ros/electric/stacks/ros_comm/tools/topic_tools/lib  \
    -L/opt/ros/electric/stacks/ros_comm/utilities/message_filters/lib  \
    -L/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp/lib  \
    -L/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp_serialization/lib  \
    -L/opt/ros/electric/stacks/ros_comm/utilities/xmlrpcpp/lib  \
    -L/opt/ros/electric/stacks/ros_comm/tools/rosconsole/lib  \
    -L/opt/ros/electric/stacks/ros_comm/utilities/rostime/lib  \
    -L/opt/ros/electric/stacks/ros_comm/utilities/cpp_common/lib  \
    -L/opt/ros/electric/ros/core/roslib/lib  \
    -L/opt/ros/electric/ros/tools/rospack/lib

LISTENER= listener.o $(OBJ)
TALKER= talker.o $(OBJ)
LISTENER_PROTEUS= listener_proteus.o $(OBJ)

%.o:%.cpp
	$(CXX) $(INCLUDE_PATH) -c $<

listener: $(LISTENER)
	$(CXX) $(INCLUDE_PATH) $(LIBS_PATH) $(LISTENER) -o $@ $(SYS_LIBS) $(EXT_LIBS)

talker: $(TALKER)
	$(CXX) $(INCLUDE_PATH) $(LIBS_PATH) $(TALKER) -o $@ $(SYS_LIBS) $(EXT_LIBS)

listener_proteus: $(LISTENER_PROTEUS)
	$(CXX) $(INCLUDE_PATH) $(LIBS_PATH) $(LISTENER_PROTEUS) -o $@ $(SYS_LIBS) $(EXT_LIBS)
	
obj : $(OBJ)

all : listener talker listener_proteus obj

clean:
	rm *.o listener talker listener_proteus
