3 # Copyright(c) 2016 6WIND S.A.
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
9 # * Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # * Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in
13 # the documentation and/or other materials provided with the
15 # * Neither the name of 6WIND S.A. nor the names of its
16 # contributors may be used to endorse or promote products derived
17 # from this software without specific prior written permission.
19 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 $(error "Please define RTE_SDK environment variable")
35 # Default target, can be overridden by command line or environment
36 RTE_TARGET ?= x86_64-native-linuxapp-gcc
38 include $(RTE_SDK)/mk/rte.vars.mk
40 DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bond
42 DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += distributor
44 DIRS-y += exception_path
45 DIRS-$(CONFIG_RTE_LIBRTE_EFD) += server_node_efd
46 DIRS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += flow_classify
47 DIRS-y += flow_filtering
49 DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += ip_pipeline
50 ifeq ($(CONFIG_RTE_LIBRTE_LPM),y)
51 DIRS-$(CONFIG_RTE_IP_FRAG) += ip_reassembly
52 DIRS-$(CONFIG_RTE_IP_FRAG) += ip_fragmentation
54 ifeq ($(CONFIG_RTE_LIBRTE_ACL)$(CONFIG_RTE_LIBRTE_HASH)$(CONFIG_RTE_LIBRTE_LPM)$(CONFIG_RTE_LIBRTE_SECURITY),yyyy)
55 DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += ipsec-secgw
57 DIRS-$(CONFIG_RTE_LIBRTE_HASH) += ipv4_multicast
58 DIRS-$(CONFIG_RTE_LIBRTE_KNI) += kni
60 ifneq ($(PQOS_INSTALL_PATH),)
63 DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += l2fwd-crypto
64 DIRS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += l2fwd-jobstats
65 DIRS-y += l2fwd-keepalive
66 DIRS-y += l2fwd-keepalive/ka-agent
67 ifeq ($(CONFIG_RTE_LIBRTE_HASH),y)
68 DIRS-$(CONFIG_RTE_LIBRTE_LPM) += l3fwd
70 DIRS-$(CONFIG_RTE_LIBRTE_ACL) += l3fwd-acl
71 ifeq ($(CONFIG_RTE_LIBRTE_LPM)$(CONFIG_RTE_LIBRTE_HASH),yy)
72 DIRS-$(CONFIG_RTE_LIBRTE_POWER) += l3fwd-power
75 DIRS-y += link_status_interrupt
76 DIRS-$(CONFIG_RTE_LIBRTE_LPM) += load_balancer
77 DIRS-y += multi_process
78 DIRS-y += netmap_compat/bridge
79 DIRS-$(CONFIG_RTE_LIBRTE_REORDER) += packet_ordering
80 ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
81 DIRS-y += performance-thread
83 DIRS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ptpclient
84 DIRS-$(CONFIG_RTE_LIBRTE_METER) += qos_meter
85 DIRS-$(CONFIG_RTE_LIBRTE_SCHED) += qos_sched
86 DIRS-y += quota_watermark
87 DIRS-$(CONFIG_RTE_ETHDEV_RXTX_CALLBACKS) += rxtx_callbacks
88 DIRS-y += service_cores
90 ifeq ($(CONFIG_RTE_LIBRTE_HASH),y)
91 DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += tep_termination
93 DIRS-$(CONFIG_RTE_LIBRTE_TIMER) += timer
94 DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += vhost vhost_scsi
97 ifeq ($(CONFIG_RTE_LIBRTE_POWER), y)
98 ifeq ($(shell pkg-config --atleast-version=0.9.3 libvirt; echo $$?), 0)
99 DIRS-y += vm_power_manager
101 $(info vm_power_manager requires libvirt >= 0.9.3)
105 DIRS-y += eventdev_pipeline_sw_pmd
107 include $(RTE_SDK)/mk/rte.extsubdir.mk