CXX = g++ 
CXXFLAGS = -g -Wall

all:  manager
LIB = -lnsl -lsocket 

SRCS = gen.cc main.cc master.cc router.cc msg.cc timers/timers.cc timers/tools.cc linkstate.cc
OBJS = gen.o main.o master.o router.o msg.o timers.o tools.o linkstate.o
HEADERS = gen.hh linkstate.hh main.hh master.hh msg.hh router.hh timers/timers.hh timers/tools.hh
OTHERS = makefile timers/Makefile timers/README timers/test-app-c.c timers/test-app.cc timers/test-app.hh timers/timers-c.cc timers/timers-c.h 

manager : gen.o main.o master.o router.o msg.o timers.o tools.o linkstate.o
	g++ $(CXXFLAGS) -o manager gen.o main.o master.o router.o msg.o timers.o tools.o linkstate.o $(LIB)

main.o: main.cc $(HEADERS)
	g++ $(CXXFLAGS) -c main.cc

master.o: master.cc $(HEADERS)
	g++ $(CXXFLAGS) -c master.cc

gen.o: gen.cc $(HEADERS)
	g++ $(CXXFLAGS) -c gen.cc

router.o: router.cc $(HEADERS)
	g++ $(CXXFLAGS) -c router.cc

msg.o: msg.cc $(HEADERS)
	g++ $(CXXFLAGS) -c msg.cc

linkstate.o: linkstate.cc $(HEADERS)
	g++ $(CXXFLAGS) -c linkstate.cc

timers.o: timers/timers.hh timers/timers.cc
	g++ $(CXXFLAGS) -c timers/timers.cc

tools.o: timers/tools.hh timers/tools.cc
	g++ -c timers/tools.cc

tar:
	tar cvf project_a_solution.tar $(SRCS) $(HEADERS) $(OTHERS)

clean:
	rm *.o
	cd timers; make clean
