OUTNAME	= passthrough
BASEDIR	=.
OUTDIR	=../../build
TMPDIR	=./build_tmp
SRCDIR	=$(BASEDIR)

SRC_LIST	=$(shell find $(SRCDIR) -maxdepth 2 -name "*.cpp")
OBJ_LIST	=$(addprefix $(TMPDIR)/,$(notdir $(addsuffix .o, $(basename $(SRC_LIST)))))

MAKE = make

CC	= g++
INCLUDES	=$(BASEDIR) $(BASEDIR)/../../../../include $(BASEDIR)/../../..
CPPFLAGS	= -g -O3 $(addprefix -I,$(INCLUDES))

LIBS		= -lnfproxy
LIB_DIR		= -L./../../nfproxy/build

LINK		=ld
LINK_FLAGS	=-pthread
AR = ar
ARFLAGS = cru

BUILD_CMD=  if [ -d "$$dir" ]; then \
	    (	cd $$dir && echo "making $$target in $$dir..." && \
		$(MAKE) TOP=.. DIR=$$dir $$target \
	    ) || exit 1; \
	    fi
RECURSIVE_BUILD_CMD=for dir in $(DIRS); do $(BUILD_CMD); done

all: mkdirs $(OUTNAME)

mkdirs:
	if !([ -d "$(OUTDIR)" ]); then \
		(  mkdir $(OUTDIR) ) || exit 1; \
	    fi
	if !([ -d "$(TMPDIR)" ]); then \
		(  mkdir $(TMPDIR) ) || exit 1; \
	    fi
clean: 
	rm -f $(TMPDIR)/*.o
	rm -f $(OUTDIR)/$(OUTNAME)

$(OBJ_LIST): $(SRC_LIST)
	$(CC) $(CPPFLAGS) -o $@ -c $(filter %/$(notdir $(basename $@)).cpp,$(SRC_LIST)) 
	
$(OUTNAME): $(OBJ_LIST)
	$(CC) -o $(OUTDIR)/$@  $(LINK_FLAGS) $(OBJ_LIST) $(LIB_DIR) $(LIBS)  
