build: disable experimental API check internally
[dpdk.git] / drivers / net / tap / Makefile
1 # SPDX-License-Identifier: BSD-3-Clause
2 # Copyright(c) 2016 Intel Corporation
3
4 include $(RTE_SDK)/mk/rte.vars.mk
5
6 #
7 # library name
8 #
9 LIB = librte_pmd_tap.a
10
11 EXPORT_MAP := rte_pmd_tap_version.map
12
13 #
14 # TAP_MAX_QUEUES must be a power of 2
15 #
16 ifeq ($(TAP_MAX_QUEUES),)
17         TAP_MAX_QUEUES = 16
18 endif
19 CFLAGS += -O3
20 CFLAGS += -I$(SRCDIR)
21 CFLAGS += -I.
22 CFLAGS += $(WERROR_FLAGS)
23 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
24 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
25 LDLIBS += -lrte_bus_vdev -lrte_gso
26
27 CFLAGS += -DTAP_MAX_QUEUES=$(TAP_MAX_QUEUES)
28
29 #
30 # all source are stored in SRCS-y
31 #
32 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += rte_eth_tap.c
33 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_flow.c
34 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_netlink.c
35 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_tcmsgs.c
36 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_bpf_api.c
37 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_intr.c
38
39 include $(RTE_SDK)/mk/rte.lib.mk
40
41 # Generate and clean-up tap_autoconf.h.
42
43 export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS
44 export AUTO_CONFIG_CFLAGS = -Wno-error
45
46 ifndef V
47 AUTOCONF_OUTPUT := >/dev/null
48 endif
49
50 tap_autoconf.h.new: FORCE
51
52 tap_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh
53         $Q $(RM) -f -- '$@'
54         $Q sh -- '$<' '$@' \
55                 HAVE_TC_FLOWER \
56                 linux/pkt_cls.h \
57                 enum TCA_FLOWER_UNSPEC \
58                 $(AUTOCONF_OUTPUT)
59         $Q sh -- '$<' '$@' \
60                 HAVE_TC_VLAN_ID \
61                 linux/pkt_cls.h \
62                 enum TCA_FLOWER_KEY_VLAN_PRIO \
63                 $(AUTOCONF_OUTPUT)
64         $Q sh -- '$<' '$@' \
65                 HAVE_TC_BPF \
66                 linux/pkt_cls.h \
67                 enum TCA_BPF_UNSPEC \
68                 $(AUTOCONF_OUTPUT)
69         $Q sh -- '$<' '$@' \
70                 HAVE_TC_BPF_FD \
71                 linux/pkt_cls.h \
72                 enum TCA_BPF_FD \
73                 $(AUTOCONF_OUTPUT)
74         $Q sh -- '$<' '$@' \
75                 HAVE_TC_ACT_BPF \
76                 linux/tc_act/tc_bpf.h \
77                 enum TCA_ACT_BPF_UNSPEC \
78                 $(AUTOCONF_OUTPUT)
79         $Q sh -- '$<' '$@' \
80                 HAVE_TC_ACT_BPF_FD \
81                 linux/tc_act/tc_bpf.h \
82                 enum TCA_ACT_BPF_FD \
83                 $(AUTOCONF_OUTPUT)
84
85 # Create tap_autoconf.h or update it in case it differs from the new one.
86
87 tap_autoconf.h: tap_autoconf.h.new
88         $Q [ -f '$@' ] && \
89                 cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
90                 mv '$<' '$@'
91
92 $(SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP):.c=.o): tap_autoconf.h
93
94 clean_tap: FORCE
95         $Q rm -f -- tap_autoconf.h tap_autoconf.h.new
96
97 clean: clean_tap