ROOT_DIR=..

SRC_SIM =  main.cc routingTable.cc simGossipHost.cc \
	simulationDriver.cc  packet.cc applicationAgent.cc \
	dataTimer.cc traceGraph.cc

OBJ_SIM = $(SRC_SIM:.cc=.o)
LIB_GOSSIP= -L $(ROOT_DIR)/Gossip -lGossip 
LIB_UTIL= -L $(ROOT_DIR)/Util -lUtil
LIB_EVENT = -L $(ROOT_DIR)/TimerEvents -lEvent

all: simulator

MAKE_GOSSIP_LIB:
	gmake -C $(ROOT_DIR)/Gossip all

MAKE_UTIL_LIB:
	gmake -C $(ROOT_DIR)/Util all

MAKE_EVENT_LIB:
	gmake -C $(ROOT_DIR)/TimerEvents all

simulator:   $(OBJ_SIM) MAKE_GOSSIP_LIB MAKE_UTIL_LIB MAKE_EVENT_LIB
	$(CPP) $(CPPFLAGS) -o $@ $(OBJ_SIM) $(LIB_EVENT) $(LIB_GOSSIP) $(LIB_UTIL) 

purifySimulator:   $(OBJ_SIM) MAKE_GOSSIP_LIB MAKE_UTIL_LIB MAKE_EVENT_LIB
	purify -cache-dir=/tmp $(CPP) $(CPPFLAGS) -o $@ $(OBJ_SIM) $(LIB_EVENT) $(LIB_GOSSIP) $(LIB_UTIL) 

clean: cleandir
	rm -f simulator purifySimulator
	gmake -C $(ROOT_DIR)/Gossip clean
	gmake -C $(ROOT_DIR)/Util clean	
	gmake -C $(ROOT_DIR)/TimerEvents clean	

cleanSimulator: cleandir
	rm -f simulator purifySimulator

include $(ROOT_DIR)/Makefile.rules
