OBJECTS = CapturedData.o GenericCapture.o PCAPCapture.o Logger.o \
  PCAPOfflineCapture.o PCAPLiveCapture.o TcpipServer.o TcpipDispatch.o ConnectionController.o \
  TrafficCapture.o CaptureFactory.o TrafficCaptureMessage.o CommonTrafficCaptureMessages.o \
  TrafficCaptureMessageFactory.o
INCLUDES = -I/usr/include/pcap \
  -I/usr/local/boost_1_39_0 \
  -I.. \
# -I/opt/boost-mingw-gcc345-1.38.0/include \

LIBPATH = #-L/usr/lib -L/opt/boost-mingw-gcc345-1.38.0/lib
#-L/usr/local/boost/stage

CPPFLAGS = #-mno-cygwin 

TrafficCapture.exe: $(OBJECTS)
	g++ $(CPPFLAGS) $(OBJECTS) $(LIBPATH) -o TrafficCapture.exe -lwpcap -lboost_thread-gcc34-mt -lboost_system-gcc34-mt -lboost_filesystem-gcc34-mt
#-lboost_system-mt -lboost_thread-mt -lws2_32

TrafficCaptureMessage.o : ../Messages/TrafficCaptureMessage.h
	g++ $(CPPFLAGS) $(INCLUDES) -c ../Messages/TrafficCaptureMessage.cpp

../Messages/CommonTrafficCaptureMessages.h : ../Messages/TrafficCaptureMessageId.h ../Messages/TrafficCaptureMessage.h

CommonTrafficCaptureMessages.o : ../Messages/CommonTrafficCaptureMessages.h
	g++ $(CPPFLAGS) $(INCLUDES) -c ../Messages/CommonTrafficCaptureMessages.cpp

../Messages/CaptureData.h : ../Messages/TrafficCaptureMessageId.h ../Messages/TrafficCaptureMessage.h

CapturedData.o : ../Messages/CapturedData.cpp ../Messages/CapturedData.h
	g++ $(CPPFLAGS) $(INCLUDES) -c ../Messages/CapturedData.cpp

../Messages/TrafficCaptureMessageFactory.h : ../Helper/Singleton.h ../Messages/TrafficCaptureMessage.h

TrafficCaptureMessageFactory.o : ../Messages/TrafficCaptureMessageFactory.h ../Messages/TrafficCaptureMessageId.h \
  ../Messages/CommonTrafficCaptureMessages.h ../Logger/Logger.h
	g++ $(CPPFLAGS) $(INCLUDES) -c ../Messages/TrafficCaptureMessageFactory.cpp

../Logger/Logger.h : ../Messages/CapturedData.h

Logger.o : ../Logger/Logger.cpp ../Logger/Logger.h ../Helper/Singleton.h
	g++ $(CPPFLAGS) $(INCLUDES) -c ../Logger/Logger.cpp

CaptureDispatch.h : ../Messages/CapturedData.h

GenericCapture.h : ../Messages/CapturedData.h CaptureDispatch.h

GenericCapture.o : GenericCapture.cpp GenericCapture.h ../Logger/Logger.h
	g++ $(CPPFLAGS) $(INCLUDES) -c GenericCapture.cpp

PCAPCapture.h : GenericCapture.h

PCAPCapture.o : PCAPCapture.cpp PCAPCapture.h ../Logger/Logger.h
	g++ $(CPPFLAGS) $(INCLUDES) -c PCAPCapture.cpp

PCAPOfflineCapture.h : PCAPCapture.h

PCAPOfflineCapture.o : PCAPOfflineCapture.cpp PCAPOfflineCapture.h
	g++ $(CPPFLAGS) $(INCLUDES) -c PCAPOfflineCapture.cpp

PCAPLiveCapture.h : PCAPCapture.h ../Logger/Logger.h

PCAPLiveCapture.o : PCAPLiveCapture.cpp PCAPLiveCapture.h
	g++ $(CPPFLAGS) $(INCLUDES) -c PCAPLiveCapture.cpp

CaptureFactory.h : GenericCapture.h ../Helper/Singleton.h

CaptureFactory.o : CaptureFactory.cpp CaptureFactory.h PCAPLiveCapture.h PCAPOfflineCapture.h ../Logger/Logger.h
	g++ $(CPPFLAGS) $(INCLUDES) -c CaptureFactory.cpp

ConnectionController.h : TcpipDefs.h GenericCapture.h ../Messages/TrafficCaptureMessage.h TcpipDispatch.h

ConnectionController.o : ConnectionController.cpp ConnectionController.h  ../Logger/Logger.h \
  ../Messages/TrafficCaptureMessageFactory.h ../Messages/CommonTrafficCaptureMessages.h
	g++ $(CPPFLAGS) $(INCLUDES) -c ConnectionController.cpp

TcpipServer.h : TcpipDefs.h

TcpipServer.o : TcpipServer.cpp TcpipServer.h ConnectionController.h ../Logger/Logger.h
	g++ $(CPPFLAGS) $(INCLUDES) -c TcpipServer.cpp

TcpipDispatch.h : TcpipDefs.h CaptureDispatch.h

TcpipDispatch.o : TcpipDispatch.cpp TcpipDispatch.h ../Logger/Logger.h
	g++ $(CPPFLAGS) $(INCLUDES) -c TcpipDispatch.cpp

TrafficCapture.o : TrafficCapture.cpp TcpipServer.h
	g++ $(CPPFLAGS) $(INCLUDES) -c TrafficCapture.cpp

clean:
	rm -f *.o TrafficCapture.exe