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#-------------------------------------------------------------------------#
19ifeq ($V,) # no echo
20	export MSG=@echo
21	export HIDE=@
22else
23	export MSG=@\#
24	export HIDE=
25endif
26#-------------------------------------------------------------------------#
27all: dpdk_iface.c $(appname) $(appname).c
28	make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules
29
30$(appname): $(appname).c
31	$(MSG) "  CC $<"
32	$(HIDE) $(CC) -g $(CFLAGS) $(appname).c -g -o $(appname) -g \
33	-I${DPDK_INC} -include $(DPDK_INC)/rte_config.h \
34	-L$(DPDK_LIB) ${DPDK_MACHINE_LDFLAGS} -lpthread
35
36clean:
37	make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) clean
38	$(MSG) "  CLEAN  $(appname)"
39	$(HIDE) rm -rf *~ *.o *.ko dpdk_iface_main
40
41run: all
42	sudo ./$(appname)
43#-------------------------------------------------------------------------#
44