summaryrefslogtreecommitdiffstats
path: root/drivers/net/tap/Makefile
blob: 774828386dd12577385867e22501ebda88b42981 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2016 Intel Corporation

include $(RTE_SDK)/mk/rte.vars.mk

#
# library name
#
LIB = librte_pmd_tap.a

EXPORT_MAP := rte_pmd_tap_version.map

LIBABIVER := 1

#
# TAP_MAX_QUEUES must be a power of 2
#
ifeq ($(TAP_MAX_QUEUES),)
	TAP_MAX_QUEUES = 16
endif
CFLAGS += -O3
CFLAGS += -I$(SRCDIR)
CFLAGS += -I.
CFLAGS += $(WERROR_FLAGS)
CFLAGS += -DALLOW_EXPERIMENTAL_API
LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
LDLIBS += -lrte_bus_vdev -lrte_gso

CFLAGS += -DTAP_MAX_QUEUES=$(TAP_MAX_QUEUES)

#
# all source are stored in SRCS-y
#
SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += rte_eth_tap.c
SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_flow.c
SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_netlink.c
SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_tcmsgs.c
SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_bpf_api.c
SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_intr.c

include $(RTE_SDK)/mk/rte.lib.mk

# Generate and clean-up tap_autoconf.h.

export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS
export AUTO_CONFIG_CFLAGS = -Wno-error

ifndef V
AUTOCONF_OUTPUT := >/dev/null
endif

tap_autoconf.h.new: FORCE

tap_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh
	$Q $(RM) -f -- '$@'
	$Q sh -- '$<' '$@' \
		HAVE_TC_FLOWER \
		linux/pkt_cls.h \
		enum TCA_FLOWER_UNSPEC \
		$(AUTOCONF_OUTPUT)
	$Q sh -- '$<' '$@' \
		HAVE_TC_VLAN_ID \
		linux/pkt_cls.h \
		enum TCA_FLOWER_KEY_VLAN_PRIO \
		$(AUTOCONF_OUTPUT)
	$Q sh -- '$<' '$@' \
		HAVE_TC_BPF \
		linux/pkt_cls.h \
		enum TCA_BPF_UNSPEC \
		$(AUTOCONF_OUTPUT)
	$Q sh -- '$<' '$@' \
		HAVE_TC_BPF_FD \
		linux/pkt_cls.h \
		enum TCA_BPF_FD \
		$(AUTOCONF_OUTPUT)
	$Q sh -- '$<' '$@' \
		HAVE_TC_ACT_BPF \
		linux/tc_act/tc_bpf.h \
		enum TCA_ACT_BPF_UNSPEC \
		$(AUTOCONF_OUTPUT)
	$Q sh -- '$<' '$@' \
		HAVE_TC_ACT_BPF_FD \
		linux/tc_act/tc_bpf.h \
		enum TCA_ACT_BPF_FD \
		$(AUTOCONF_OUTPUT)

# Create tap_autoconf.h or update it in case it differs from the new one.

tap_autoconf.h: tap_autoconf.h.new
	$Q [ -f '$@' ] && \
		cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
		mv '$<' '$@'

$(SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP):.c=.o): tap_autoconf.h

clean_tap: FORCE
	$Q rm -f -- tap_autoconf.h tap_autoconf.h.new

clean: clean_tap