#############################################################################
# Makefile for building: mcproxy
# Generated by qmake (2.01a) (Qt 4.6.2)
# Project:  mcproxy.pro
# Template: app
# Command: /usr/bin/qmake -unix -o Makefile mcproxy.pro
# Modified by zhichen for OpenWrt, 2014
#############################################################################


####### Compiler, tools and options
override CFLAGS        += -pipe -O2 -Wall -W -I.
override CXXFLAGS      += $(CFLAGS) -std=c++0x
#CC		      = g++-4.6
LFLAGS        = -Wl,-O1
LIBS          = -lstdc++ -lpthread
DEL_FILE      = rm -f

####### Files
CPPSOURCES    = src/main.cpp \
		src/hamcast_logging.cpp \
		src/utils/mc_socket.cpp \
		src/utils/addr_storage.cpp \
		src/utils/mroute_socket.cpp \
		src/utils/if_prop.cpp \
		src/utils/reverse_path_filter.cpp \
		src/proxy/proxy.cpp \
		src/proxy/sender.cpp \
		src/proxy/receiver.cpp \
		src/proxy/mld_receiver.cpp \
		src/proxy/igmp_receiver.cpp \
		src/proxy/mld_sender.cpp \
		src/proxy/igmp_sender.cpp \
		src/proxy/proxy_instance.cpp \
		src/proxy/routing.cpp \
		src/proxy/worker.cpp \
		src/proxy/timing.cpp \
		src/proxy/check_if.cpp \
		src/proxy/check_kernel.cpp \
		src/proxy/membership_db.cpp \
		src/proxy/querier.cpp \
		src/proxy/timers_values.cpp \
		src/proxy/interfaces.cpp \
		src/proxy/def.cpp \
		src/proxy/simple_mc_proxy_routing.cpp \
		src/proxy/simple_routing_data.cpp \
		src/parser/scanner.cpp \
		src/parser/token.cpp \
		src/parser/configuration.cpp \
		src/parser/parser.cpp \
		src/parser/interface.cpp

CSOURCES      =	src/utils/setsourcefilter.c \
		src/utils/getsourcefilter.c

SOURCES       = $(CPPSOURCES) $(CSOURCES)
OBJECTS       = $(CPPSOURCES:.cpp=.o) $(CSOURCES:.c=.o)
DEPENDS       = $(CPPSOURCES:.cpp=.d) $(CSOURCES:.c=.d)
TARGET        = mcproxy

####### Build rules
all: depend $(TARGET)

$(TARGET): $(OBJECTS)
	$(CC) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)

clean:
	-$(DEL_FILE) $(OBJECTS) $(TARGET) $(DEPENDS)
	-$(DEL_FILE) thread* *~ core *.core

depend: $(DEPENDS)

####### Implicit rules
.SUFFIXES: .o .c .cpp .d
.cpp.o:
	$(CC) -c $(CXXFLAGS) -o "$@" "$<"
.c.o:
	$(CC) -c $(CFLAGS) -o "$@" "$<"
.cpp.d:
	$(CC) -c $(CXXFLAGS) -MM -MF"$@" -MT"$@" -MT"$(<:.cpp=.o)" "$<"
.c.d:
	$(CC) -c $(CFLAGS) -MM -MF"$@" -MT"$@" -MT"$(<:.c=.o)" "$<"


####### Dependence rules
-include $(DEPENDS)

.PHONY: all clean depend


