xref: /mOS-networking-stack/core/src/Makefile.in (revision d270d183)
176404edcSAsim Jamshed
276404edcSAsim Jamshed.PHONY: clean
376404edcSAsim Jamshed
47245de1bSYoungGyounSHELL := /bin/bash
576404edcSAsim JamshedDISABLE_NUMA=@NONUMA@
676404edcSAsim JamshedENABLE_DPDK=@DPDK@
776404edcSAsim JamshedENABLE_PCAP=@PCAP@
8522d5c66SAsim JamshedENABLE_NETMAP=@NETMAP@
976404edcSAsim Jamshed
1076404edcSAsim Jamshed### TARGET ###
1176404edcSAsim JamshedMTCP_LIB_DIR=../lib
1276404edcSAsim JamshedMTCP_LIB=libmtcp.a
1376404edcSAsim Jamshed
1476404edcSAsim JamshedMTCP_HDR_DIR=../include
1576404edcSAsim JamshedMTCP_HDR = mtcp_api.h mos_api.h mtcp_epoll.h mtcp_util.h
1676404edcSAsim Jamshed
1776404edcSAsim Jamshed
1876404edcSAsim Jamshed### GCC ###
19b451c18dSAsim JamshedGCC = @CC@
20a5e1a556SAsim JamshedGCC_OPT = -m64 -Wall -fPIC -DNEWEV -fgnu89-inline -Werror
2176404edcSAsim Jamshed
224cb4e140SAsim Jamshed#DBG_OPT = -DDBGMSG -DDBGFUNC -DSTREAM -DSTATE -DTSTAT -DAPP -DEPOLL
2376404edcSAsim Jamshed#DBG_OPT = -DDBGMSG -DDBGFUNC -DSTREAM -DSTATE
2476404edcSAsim Jamshed#DBG_OPT += -DPKTDUMP
2576404edcSAsim Jamshed#DBG_OPT += -DDUMP_STREAM
2676404edcSAsim Jamshed#GCC_OPT += -g -DNETSTAT -DINFO -DDBGERR -DDBGCERR
2776404edcSAsim JamshedGCC_OPT += -DNDEBUG -O3 -g -DNETSTAT -DINFO -DDBGERR -DDBGCERR
2876404edcSAsim JamshedGCC_OPT += $(DBG_OPT)
2976404edcSAsim Jamshed
3076404edcSAsim Jamshedifeq ($V,) # no echo
3176404edcSAsim Jamshed    export MSG=@echo
3276404edcSAsim Jamshed    export HIDE=@
3376404edcSAsim Jamshedelse
3476404edcSAsim Jamshed    export MSG=@\#
3576404edcSAsim Jamshed    export HIDE=
3676404edcSAsim Jamshedendif
3776404edcSAsim Jamshed
3876404edcSAsim Jamshed### LIBRARIES AND INCLUDES ###
3976404edcSAsim JamshedINC_DIR=./include
4076404edcSAsim JamshedINC= -I$(INC_DIR) -I$(INC_DIR)/bpf
4176404edcSAsim Jamshed
4276404edcSAsim Jamshedifeq ($(shell uname), Darwin)
4376404edcSAsim JamshedGCC_OPT += -DDARWIN -Wno-deprecated -Dinline=''
4476404edcSAsim Jamshedendif
4576404edcSAsim Jamshed
4676404edcSAsim JamshedLIBS = -lpthread -lrt
4776404edcSAsim Jamshedifeq ($(DISABLE_NUMA), 1)
4876404edcSAsim JamshedGCC_OPT += -DDISABLE_NUMA
4976404edcSAsim JamshedLIBS += -lnuma
5076404edcSAsim Jamshedendif
5176404edcSAsim Jamshed
5276404edcSAsim Jamshedifeq ($(ENABLE_DPDK), 1)
5376404edcSAsim Jamshed# DPDK LIBRARY and HEADER
54d270d183SAsim JamshedDPDK_INC=$(RTE_SDK)/$(RTE_TARGET)/include
55d270d183SAsim JamshedDPDK_LIB=$(RTE_SDK)/$(RTE_TARGET)/lib/
5676404edcSAsim Jamshed# CFLAGS for DPDK-related compilation
57d270d183SAsim Jamshedinclude $(RTE_SDK)/mk/rte.vars.mk
58d270d183SAsim JamshedINC += -DENABLE_DPDK -I${DPDK_INC} -include $(DPDK_INC)/rte_config.h
5976404edcSAsim JamshedLIBS += -export-dynamic -L$(DPDK_LIB)
6076404edcSAsim Jamshedendif
6176404edcSAsim Jamshed
6276404edcSAsim Jamshedifeq ($(ENABLE_PCAP), 1)
6376404edcSAsim Jamshed# PacketShader LIBRARY and HEADER
6476404edcSAsim JamshedGCC_OPT += -D__thread="" -DBE_RESILIENT_TO_PACKET_DROP
6576404edcSAsim JamshedINC += -DENABLE_PCAP
6676404edcSAsim JamshedLIBS += -lpcap
6776404edcSAsim Jamshedendif
6876404edcSAsim Jamshed
69522d5c66SAsim Jamshedifeq ($(ENABLE_NETMAP), 1)
70522d5c66SAsim JamshedINC += -DENABLE_NETMAP
71522d5c66SAsim Jamshedendif
72522d5c66SAsim Jamshed
7376404edcSAsim Jamshed### SOURCE CODE ###
7476404edcSAsim JamshedSRCS = core.c tcp_stream.c config.c api.c mos_api.c eventpoll.c socket.c pipe.c \
7576404edcSAsim Jamshed	   tcp_util.c eth_in.c ip_in.c tcp.c tcp_in.c eth_out.c ip_out.c tcp_out.c \
7676404edcSAsim Jamshed	   arp.c timer.c cpu.c util.c addr_pool.c fhash.c memory_mgt.c logger.c debug.c \
773b6b9ba6SAsim Jamshed	   tcp_rb_frag_queue.c tcp_send_buffer.c tcp_sb_queue.c tcp_stream_queue.c \
7876404edcSAsim Jamshed	bpf/sf_bpf_filter.c bpf/sfbpf-int.c bpf/sf_gencode.c bpf/sf_grammar.c \
7976404edcSAsim Jamshed	bpf/sf_nametoaddr.c bpf/sf_optimize.c bpf/sf_scanner.c \
8076404edcSAsim Jamshed	event_callback.c tcp_rb.c icmp.c scalable_event.c key_value_store.c
8176404edcSAsim Jamshed
8276404edcSAsim Jamshedifeq ($(ENABLE_DPDK), 1)
8376404edcSAsim JamshedSRCS += dpdk_module.c
8476404edcSAsim Jamshedendif
8576404edcSAsim Jamshed
8676404edcSAsim Jamshedifeq ($(ENABLE_PCAP), 1)
8776404edcSAsim JamshedSRCS += pcap_module.c
8876404edcSAsim Jamshedendif
8976404edcSAsim Jamshed
90522d5c66SAsim Jamshedifeq ($(ENABLE_NETMAP), 1)
91522d5c66SAsim JamshedSRCS += netmap_module.c
92522d5c66SAsim Jamshedendif
93522d5c66SAsim Jamshed
9476404edcSAsim JamshedOBJS = $(patsubst %.c,%.o,$(SRCS))
9576404edcSAsim JamshedDEPS = $(patsubst %.c,.%.d,$(SRCS))
9676404edcSAsim Jamshed
9776404edcSAsim Jamshed
9876404edcSAsim Jamshed### GOALS ###
9976404edcSAsim Jamsheddefault: $(OBJS)
10076404edcSAsim Jamshed	mkdir -p $(MTCP_LIB_DIR)
10176404edcSAsim Jamshed	$(MSG) "   AR $(MTCP_LIB)"
10276404edcSAsim Jamshed	$(HIDE) ar rvs $(MTCP_LIB_DIR)/$(MTCP_LIB) $(OBJS)
10376404edcSAsim Jamshed
1047245de1bSYoungGyoun$(OBJS): %.o: %.c Makefile calcCPUs
10576404edcSAsim Jamshed	$(MSG) "   CC $<"
106d270d183SAsim Jamshed	$(HIDE) $(GCC) $(GCC_OPT) $(INC) $(CFLAGS) -c $< -o $@
10776404edcSAsim Jamshed$(DEPS): .%.d: %.c Makefile
10876404edcSAsim Jamshed	@mkdir -p .bpf
10976404edcSAsim Jamshed	$(HIDE) $(GCC) $(GCC_OPT) $(INC) -MM $(CFLAGS) $< > $@
11076404edcSAsim Jamshed
1117245de1bSYoungGyouncalcCPUs:
1127245de1bSYoungGyoun	$(eval export GCC_OPT := $(GCC_OPT) -DMAX_CPUS=$(shell let cpus=`lscpu | grep "Core(s) per socket" | awk '{print \$$4}'`*`lscpu | grep "Socket(s)" | awk '{print \$$2}'`; echo $$cpus))
1137245de1bSYoungGyoun
11476404edcSAsim Jamshed-include $(DEPS)
11576404edcSAsim Jamshed
11676404edcSAsim Jamshedclean: clean-library
11776404edcSAsim Jamshed	rm -f *.o *~ core
11876404edcSAsim Jamshed	rm -rf .*.d tags .bpf
11976404edcSAsim Jamshed
12076404edcSAsim Jamshedclean-library:
12176404edcSAsim Jamshed	rm -f $(MTCP_LIB_DIR)/*
12276404edcSAsim Jamshed
12376404edcSAsim Jamshedtags:
12476404edcSAsim Jamshed	find -name '*.c' -or -name '*.h' | xargs ctags
125