CC=g++
CFLAGS=-g -c -I /usr/local/include
#CFLAGS=-O2 -c -I /usr/local/include
LDFLAGS=-g -lpthread -lz
#LDFLAGS=-lpthread -lz
DEPEND=makedepend -Y $(CFLAGS)
CPPSOURCES=main.cpp netmanager.cpp misc.cpp g2node.cpp g2packet.cpp verbose.cpp \
transceiver.cpp settings.cpp statistics.cpp thread.cpp hubcache.cpp \
period.cpp trafmeter.cpp buffer.cpp types.cpp \
asyncsocket.cpp discovery.cpp dnsresolver.cpp trafmanager.cpp

CPPOBJECTS=$(CPPSOURCES:.cpp=.o)
EXECUTABLE=sharelin

all: $(CPPSOURCES) $(EXECUTABLE)
        
$(EXECUTABLE): $(CPPOBJECTS)
	$(CC) $(LDFLAGS) $(CPPOBJECTS) -o $@

.cpp.o:
	$(CC) $(CFLAGS) $< -o $@
.c.o:
	$(CC) $(CFLAGS) $< -o $@

clean:
	rm -f $(CPPOBJECTS)
	rm -f $(EXECUTABLE)
rebuild:
	make clean
	make all

depend: $(CPPSOURCES)
	$(DEPEND) $(CPPSOURCES)

# DO NOT DELETE

main.o: settings.h types.h statistics.h thread.h period.h verbose.h
main.o: netmanager.h hubcache.h g2packet.h misc.h buffer.h trafmanager.h
main.o: discovery.h dnsresolver.h identity.hpp
netmanager.o: netmanager.h thread.h types.h period.h g2node.h buffer.h
netmanager.o: asyncsocket.h trafmeter.h misc.h transceiver.h hubcache.h
netmanager.o: g2packet.h settings.h verbose.h
misc.o: misc.h types.h settings.h g2packet.h buffer.h verbose.h thread.h
g2node.o: asyncsocket.h trafmeter.h thread.h types.h misc.h g2packet.h
g2node.o: buffer.h verbose.h g2node.h hubcache.h period.h netmanager.h
g2node.o: identity.hpp
g2packet.o: misc.h types.h g2packet.h buffer.h
verbose.o: verbose.h thread.h types.h
transceiver.o: buffer.h types.h g2packet.h misc.h netmanager.h thread.h
transceiver.o: period.h transceiver.h trafmeter.h settings.h verbose.h
settings.o: misc.h types.h settings.h verbose.h thread.h
statistics.o: misc.h types.h verbose.h thread.h settings.h statistics.h
statistics.o: period.h
thread.o: thread.h verbose.h
hubcache.o: misc.h types.h hubcache.h thread.h g2packet.h buffer.h period.h
hubcache.o: g2node.h asyncsocket.h trafmeter.h settings.h verbose.h
hubcache.o: discovery.h
period.o: period.h
trafmeter.o: trafmeter.h
buffer.o: buffer.h types.h misc.h
types.o: g2node.h buffer.h types.h asyncsocket.h trafmeter.h thread.h
asyncsocket.o: asyncsocket.h trafmeter.h thread.h types.h misc.h
discovery.o: discovery.h thread.h dnsresolver.h types.h asyncsocket.h
discovery.o: trafmeter.h identity.hpp hubcache.h g2packet.h misc.h buffer.h
discovery.o: period.h verbose.h
dnsresolver.o: dnsresolver.h thread.h types.h
trafmanager.o: trafmanager.h thread.h settings.h types.h asyncsocket.h
trafmanager.o: trafmeter.h
