all : QuakeTunnel.exe
	@echo Updated : $+. All done.

OBJECTS = EndPoint.o \
          EndPoint_UDP.o \
          LinkSetBase.o \
          RemoteLink.o \
          ForwardedLink.o \
          QuakeLink.o \
          TunnelLink.o \
          LinkSet.o \
          ListeningLinkSet.o \
          SingleLink.o \
          MultiLinkSets.o \
          ProxyBase.o \
          QuakeProxy.o \
		  quaketunnel.o

QP_NETWORK_H=QP_Network.h
PROXYBASE_H=ProxyBase.h
ENDPOINT_H=EndPoint.h
ENDPOINT_UDP_H=EndPoint_UDP.h $(ENDPOINT_H)
LINKSETBASE_H=LinkSetBase.h
REMOTELINK_H=RemoteLink.h $(QP_NETWORK_H)
FORWARDEDLINK_H=ForwardedLink.h $(REMOTELINK_H)
QUAKELINK_H=QuakeLink.h $(FORWARDEDLINK_H)
TUNNELLINK_H=TunnelLink.h $(FORWARDEDLINK_H)
LINKSET_H=LinkSet.h $(LINKSETBASE_H) $(QP_NETWORK_H) $(ENDPOINT_UDP_H) $(PROXYBASE_H)
LISTENINGLINKSET_H=ListeningLinkSet.h $(LINKSET_H)
SINGLELINK_H=SingleLink.h $(LINKSET_H)
MULTILINKSETS_H=MultiLinkSets.h $(QP_NETWORK_H) $(LINKSETBASE_H)
QUAKEPROXY_H=QuakeProxy.h $(PROXYBASE_H) $(LINKSET_H) $(TUNNELLINK_H) $(QUAKELINK_H)

EndPoint.o : $(ENDPOINT_H)
EndPoint_UDP.o : $(ENDPOINT_UDP_H)
LinkSetBase.o : $(LINKSETBASE_H)
RemoteLink.o : $(REMOTELINK_H)
ForwardedLink.o : $(FORWARDEDLINK_H) $(PROXYBASE_H)
QuakeLink.o : $(QUAKELINK_H) $(ENDPOINT_UDP_H) $(LINKSETBASE_H) $(PROXYBASE_H)
TunnelLink.o : $(TUNNELLINK_H) $(PROXYBASE_H)
LinkSet.o : $(LINKSET_H)
ListeningLinkSet.o : $(LISTENINGLINKSET_H)
SingleLink.o : $(SINGLELINK_H)
MultiLinkSets.o : $(MULTILINKSETS_H) $(LINKSETBASE_H)
ProxyBase.o : $(PROXYBASE_H) $(QP_NETWORK_H)
QuakeProxy.o : $(QUAKEPROXY_H) $(SINGLELINK_H) $(LISTENINGLINKSET_H) $(MULTILINKSETS_H)
quaketunnel.o : $(QUAKEPROXY_H)


QuakeTunnel.exe : $(OBJECTS)
	$(CXX) -Wall -o $@ $+ -lwsock32

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

.PHONY: clean all

clean :
	del *.o
