JAVAC = javac

RESOLVER_OBJS	= AppManager.class Communicator.class Conversion.class DSRManager.class \
	Forwarder.class HostRecord.class IHandler.class LoggedPrintStream.class Message.class \
	MobilitySocket.class MutableBoolean.class NameUpdate.class NetProber.class Node.class \
	NodeSet.class OverlayManager.class Packet.class Resolver.class RouteEntry.class \
	RouteManager.class RouteTable.class RouteUpdate.class RouteUpdateThread.class \
	SendWithRetransmit.class TCPForwardThread.class UDPForwardThread.class VSNameTree.class \
	VSNeighbors.class VSResolvers.class VSRouteTable.class VSpaceSet.class

TWINE_OBJS	= TwineAppManager.class TwineDSRManager.class TwineForwarder.class \
	TwineInterResolver.class TwineLogger.class TwineNetProber.class TwineResolver.class \
	TwineStrandSplitter.class TwineVSNameTree.class  TwineGUI.class TwineQueryManager.class \
	TwineNameTreeManipulator.class TwineQuery.class TwineFullStrands.class \
	TwinePrefixes.class TwineKeyManager.class \
	TwineAdvManager.class TwineMessage.class TwineAdvertisement.class TwineStats.class \
	TwineMetricManager.class TwineMetricEstimator.class TwineClusterer.class \
	RPCCommunicator.class SimpleThreadPool.class Task.class \

##################################################################################
# Possible targets 
# all: builds everything
# resolver: builds the original resolver
# twine: builds a Twine resolver, but is basically equivalent to building everything
# clean: as usual cleans all class files
##################################################################################
all : interResolverSvc resolver twine

interResolverSvc : FORCE   
	- (cd interResolverSvc && make )

resolver : interResolverSvc $(RESOLVER_OBJS)

twine :	interResolverSvc $(TWINE_OBJS)
	- (cd twineKeyRouter && make )
	- (cd twineStrandMapper && make )

FORCE: 

clean:
	rm -f *.class
	- (cd interResolverSvc && make clean)
	- (cd twineKeyRouter && make clean)
	- (cd twineStrandMapper && make clean )



##################################################################################
.java.class:
	$(JAVAC) $<

.SUFFIXES: .java .class
