1TARGET = simple_firewall
2
3######################################################################
4# GCC and compilation options
5######################################################################
6GCC = gcc
7GCC_OPT = -m64 -Wall
8GCC_OPT += -DNDEBUG -O3 -g -DNETSTAT -DINFO -DDBGERR -DDBGCERR
9GCC_OPT += $(DBG_OPT)
10ifeq ($V,) # no echo
11    export MSG=@echo
12    export HIDE=@
13else
14    export MSG=@\#
15    export HIDE=
16endif
17
18######################################################################
19# LIBRARIES AND INCLUDES
20######################################################################
21MTCP_FLD    = ../../core
22MTCP_INC    =-I$(MTCP_FLD)/include
23MTCP_TARGET = $(MTCP_FLD)/lib/libmtcp.a
24LIBS        += -lmtcp -lssl -lcrypto -lnuma -lpthread -lrt
25LIB_DIR     += -L$(MTCP_FLD)/lib
26CMN_DIR     = ../common
27CMN_INC     = -I$(CMN_DIR)
28UTIL_INC    = -I../../util/include
29
30# I/O library parameter (PSIO or DPDK)
31__IO_LIB_ARGS
32
33######################################################################
34
35default: $(TARGET)
36
37$(MTCP_TARGET):
38	cd $(MTCP_FLD)/src && make
39
40$(TARGET): $(MTCP_TARGET) $(TARGET).c $(CMN_DIR)/*.c
41	$(MSG) "   CC $<"
42	$(HIDE) $(GCC) $(GCC_OPT) -o $@ $^ $(MTCP_INC) $(CMN_INC) $(UTIL_INC) $(LIB_DIR) $(LIBS)
43
44clean:
45	rm -rf *~ *.o $(TARGET) logs/*
46
47cleanall: clean
48	rm -rf Makefile
49
50
51