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=sharelin.cpp main.cpp misc.cpp g2node.cpp g2packet.cpp verbose.cpp \
transceiver.cpp settings.cpp statistics.cpp thread.cpp hubcache.cpp \
gatekeeper.cpp period.cpp trafmeter.cpp buffer.cpp types.cpp packets.cpp \
asyncsocket.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

sharelin.o: sharelin.h period.h hubcache.h thread.h g2packet.h types.h
sharelin.o: packets.h asyncsocket.h trafmeter.h g2node.h buffer.h
sharelin.o: transceiver.h gatekeeper.h misc.h verbose.h settings.h
sharelin.o: statistics.h
main.o: settings.h types.h statistics.h thread.h sharelin.h period.h
main.o: hubcache.h g2packet.h packets.h asyncsocket.h trafmeter.h verbose.h
misc.o: misc.h verbose.h thread.h settings.h types.h
g2node.o: asyncsocket.h types.h trafmeter.h thread.h misc.h verbose.h
g2node.o: settings.h g2packet.h sharelin.h period.h hubcache.h packets.h
g2node.o: g2node.h buffer.h
g2packet.o: g2packet.h types.h misc.h verbose.h thread.h settings.h
verbose.o: misc.h verbose.h thread.h settings.h types.h
transceiver.o: buffer.h types.h g2packet.h misc.h verbose.h thread.h
transceiver.o: settings.h transceiver.h trafmeter.h sharelin.h period.h
transceiver.o: hubcache.h packets.h asyncsocket.h
settings.o: misc.h verbose.h thread.h settings.h types.h
statistics.o: misc.h verbose.h thread.h settings.h types.h statistics.h
thread.o: thread.h
hubcache.o: misc.h verbose.h thread.h settings.h types.h hubcache.h
hubcache.o: g2packet.h packets.h g2node.h buffer.h asyncsocket.h trafmeter.h
hubcache.o: sharelin.h period.h
gatekeeper.o: misc.h verbose.h thread.h settings.h types.h sharelin.h
gatekeeper.o: period.h hubcache.h g2packet.h packets.h asyncsocket.h
gatekeeper.o: trafmeter.h gatekeeper.h
period.o: period.h
trafmeter.o: trafmeter.h
buffer.o: buffer.h types.h misc.h verbose.h thread.h settings.h
types.o: types.h g2node.h buffer.h asyncsocket.h trafmeter.h thread.h
packets.o: g2packet.h types.h misc.h verbose.h thread.h settings.h packets.h
asyncsocket.o: period.h misc.h verbose.h thread.h settings.h types.h
asyncsocket.o: asyncsocket.h trafmeter.h
