1#-------------------------------------------------------------------------#
2ifeq ($(RTE_SDK),)
3$(error "Please define RTE_SDK environment variable")
4endif
5
6ifeq ($(RTE_TARGET),)
7$(error "Please define RTE_TARGET environment variable")
8endif
9#-------------------------------------------------------------------------#
10include $(RTE_SDK)/mk/rte.vars.mk
11CC=gcc
12obj-m=dpdk_iface.o
13DPDK_MACHINE_LINKER_FLAGS=$${RTE_SDK}/$${RTE_TARGET}/lib/ldflags.txt
14DPDK_MACHINE_LDFLAGS=$(shell cat ${DPDK_MACHINE_LINKER_FLAGS})
15DPDK_INC=${RTE_SDK}/${RTE_TARGET}/include
16DPDK_LIB=${RTE_SDK}/${RTE_TARGET}/lib
17appname=dpdk_iface_main
18#-------------------------------------------------------------------------#
19all: dpdk_iface.c $(appname) $(appname).c
20	make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules
21
22$(appname): $(appname).c
23	$(CC) $(CFLAGS) $(appname).c -g -o $(appname) -g \
24	-I${DPDK_INC} -include $(DPDK_INC)/rte_config.h \
25	-L$(DPDK_LIB) ${DPDK_MACHINE_LDFLAGS} -lpthread
26
27clean:
28	make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) clean
29	rm -rf *~ *.o *.ko dpdk_iface_main
30
31run: all
32	sudo ./$(appname)
33#-------------------------------------------------------------------------#
34