New upstream version 18.11-rc1
[deb_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 LIBABIVER := 1
14
15 #
16 # TAP_MAX_QUEUES must be a power of 2
17 #
18 ifeq ($(TAP_MAX_QUEUES),)
19         TAP_MAX_QUEUES = 16
20 endif
21 CFLAGS += -O3
22 CFLAGS += -I$(SRCDIR)
23 CFLAGS += -I.
24 CFLAGS += $(WERROR_FLAGS)
25 CFLAGS += -DALLOW_EXPERIMENTAL_API
26 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
27 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
28 LDLIBS += -lrte_bus_vdev -lrte_gso
29
30 CFLAGS += -DTAP_MAX_QUEUES=$(TAP_MAX_QUEUES)
31
32 #
33 # all source are stored in SRCS-y
34 #
35 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += rte_eth_tap.c
36 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_flow.c
37 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_netlink.c
38 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_tcmsgs.c
39 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_bpf_api.c
40 SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_intr.c
41
42 include $(RTE_SDK)/mk/rte.lib.mk
43
44 # Generate and clean-up tap_autoconf.h.
45
46 export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS
47 export AUTO_CONFIG_CFLAGS = -Wno-error
48
49 ifndef V
50 AUTOCONF_OUTPUT := >/dev/null
51 endif
52
53 tap_autoconf.h.new: FORCE
54
55 tap_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh
56         $Q $(RM) -f -- '$@'
57         $Q sh -- '$<' '$@' \
58                 HAVE_TC_FLOWER \
59                 linux/pkt_cls.h \
60                 enum TCA_FLOWER_UNSPEC \
61                 $(AUTOCONF_OUTPUT)
62         $Q sh -- '$<' '$@' \
63                 HAVE_TC_VLAN_ID \
64                 linux/pkt_cls.h \
65                 enum TCA_FLOWER_KEY_VLAN_PRIO \
66                 $(AUTOCONF_OUTPUT)
67         $Q sh -- '$<' '$@' \
68                 HAVE_TC_BPF \
69                 linux/pkt_cls.h \
70                 enum TCA_BPF_UNSPEC \
71                 $(AUTOCONF_OUTPUT)
72         $Q sh -- '$<' '$@' \
73                 HAVE_TC_BPF_FD \
74                 linux/pkt_cls.h \
75                 enum TCA_BPF_FD \
76                 $(AUTOCONF_OUTPUT)
77         $Q sh -- '$<' '$@' \
78                 HAVE_TC_ACT_BPF \
79                 linux/tc_act/tc_bpf.h \
80                 enum TCA_ACT_BPF_UNSPEC \
81                 $(AUTOCONF_OUTPUT)
82         $Q sh -- '$<' '$@' \
83                 HAVE_TC_ACT_BPF_FD \
84                 linux/tc_act/tc_bpf.h \
85                 enum TCA_ACT_BPF_FD \
86                 $(AUTOCONF_OUTPUT)
87
88 # Create tap_autoconf.h or update it in case it differs from the new one.
89
90 tap_autoconf.h: tap_autoconf.h.new
91         $Q [ -f '$@' ] && \
92                 cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
93                 mv '$<' '$@'
94
95 $(SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP):.c=.o): tap_autoconf.h
96
97 clean_tap: FORCE
98         $Q rm -f -- tap_autoconf.h tap_autoconf.h.new
99
100 clean: clean_tap