aboutsummaryrefslogtreecommitdiffstats
path: root/build/external/packages
diff options
context:
space:
mode:
Diffstat (limited to 'build/external/packages')
-rw-r--r--build/external/packages/dpdk.mk51
-rw-r--r--build/external/packages/ipsec-mb.mk31
-rw-r--r--build/external/packages/libbpf.mk58
-rw-r--r--build/external/packages/nasm.mk21
-rw-r--r--build/external/packages/octeon-roc.mk26
-rw-r--r--build/external/packages/quicly.mk18
-rw-r--r--build/external/packages/rdma-core.mk35
-rw-r--r--build/external/packages/xdp-tools.mk38
8 files changed, 156 insertions, 122 deletions
diff --git a/build/external/packages/dpdk.mk b/build/external/packages/dpdk.mk
index 70ff5c90eb9..c03d1a14703 100644
--- a/build/external/packages/dpdk.mk
+++ b/build/external/packages/dpdk.mk
@@ -14,22 +14,34 @@
DPDK_PKTMBUF_HEADROOM ?= 128
DPDK_USE_LIBBSD ?= n
DPDK_DEBUG ?= n
-DPDK_MLX4_PMD ?= n
-DPDK_MLX5_PMD ?= n
-DPDK_MLX5_COMMON_PMD ?= n
DPDK_TAP_PMD ?= n
DPDK_FAILSAFE_PMD ?= n
DPDK_MACHINE ?= default
DPDK_MLX_IBV_LINK ?= static
-dpdk_version ?= 21.05
+dpdk_version ?= 24.03
dpdk_base_url ?= http://fast.dpdk.org/rel
dpdk_tarball := dpdk-$(dpdk_version).tar.xz
-dpdk_tarball_md5sum_21.05 := a78bba290b11d9717d1272cc6bfaf7c3
+dpdk_tarball_md5sum_24.03 := a98da848d6ba09808ef00f9a26aaa49a
+dpdk_tarball_md5sum_23.11 := 896c09f5b45b452bd77287994650b916
+dpdk_tarball_md5sum_23.07 := 2b6d57f077585cb15b885482362fd47f
+dpdk_tarball_md5sum_23.03 := 3cf8ebbcd412d5726db230f2eeb90cc9
+dpdk_tarball_md5sum_22.11.1 := 0594708fe42ce186a55b0235c6e20cfe
+dpdk_tarball_md5sum_22.07 := fb73b58b80b1349cd05fe9cf6984afd4
+dpdk_tarball_md5sum_22.03 := a07ca8839f98062f46e1cc359735cce8
+dpdk_tarball_md5sum_21.11 := 58660bbbe9e95abce86e47692b196555
dpdk_tarball_md5sum := $(dpdk_tarball_md5sum_$(dpdk_version))
dpdk_url := $(dpdk_base_url)/$(dpdk_tarball)
dpdk_tarball_strip_dirs := 1
+ifeq ($(shell uname), FreeBSD)
+dpdk_depends := $(if $(ARCH_X86_64), ipsec-mb)
+else
dpdk_depends := rdma-core $(if $(ARCH_X86_64), ipsec-mb)
+endif
+DPDK_MLX_DEFAULT := $(shell if grep -q "rdma=$(rdma-core_version) dpdk=$(dpdk_version)" mlx_rdma_dpdk_matrix.txt; then echo 'y'; else echo 'n'; fi)
+DPDK_MLX4_PMD ?= $(DPDK_MLX_DEFAULT)
+DPDK_MLX5_PMD ?= $(DPDK_MLX_DEFAULT)
+DPDK_MLX5_COMMON_PMD ?= $(DPDK_MLX_DEFAULT)
# Debug or release
DPDK_BUILD_TYPE:=release
@@ -40,10 +52,12 @@ endif
DPDK_DRIVERS_DISABLED := baseband/\*, \
bus/dpaa, \
bus/ifpga, \
+ common/cnxk, \
compress/isal, \
compress/octeontx, \
compress/zlib, \
crypto/ccp, \
+ crypto/cnxk, \
crypto/dpaa_sec, \
crypto/openssl, \
crypto/aesni_mb, \
@@ -53,9 +67,11 @@ DPDK_DRIVERS_DISABLED := baseband/\*, \
crypto/zuc, \
event/\*, \
mempool/dpaa, \
+ mempool/cnxk, \
net/af_packet, \
net/bnx2x, \
net/bonding, \
+ net/cnxk, \
net/ipn3ke, \
net/liquidio, \
net/pcap, \
@@ -71,6 +87,7 @@ DPDK_LIBS_DISABLED := acl, \
bitratestats, \
bpf, \
cfgfile, \
+ cnxk, \
distributor, \
efd, \
fib, \
@@ -120,14 +137,19 @@ endif
DPDK_DRIVERS_DISABLED := $(shell echo $(DPDK_DRIVERS_DISABLED) | tr -d '\\\t ')
DPDK_LIBS_DISABLED := $(shell echo $(DPDK_LIBS_DISABLED) | tr -d '\\\t ')
+SED=sed
+ifeq ($shell(uname), FreeBSD)
+SED=gsed
+endif
+
HASH := \#
# post-meson-setup snippet to alter rte_build_config.h
define dpdk_config
if grep -q RTE_$(1) $(dpdk_src_dir)/config/rte_config.h ; then \
-sed -i -e 's/$(HASH)define RTE_$(1).*/$(HASH)define RTE_$(1) $(DPDK_$(1))/' \
+$(SED) -i -e 's/$(HASH)define RTE_$(1).*/$(HASH)define RTE_$(1) $(DPDK_$(1))/' \
$(dpdk_src_dir)/config/rte_config.h; \
elif grep -q RTE_$(1) $(dpdk_build_dir)/rte_build_config.h ; then \
-sed -i -e 's/$(HASH)define RTE_$(1).*/$(HASH)define RTE_$(1) $(DPDK_$(1))/' \
+$(SED) -i -e 's/$(HASH)define RTE_$(1).*/$(HASH)define RTE_$(1) $(DPDK_$(1))/' \
$(dpdk_build_dir)/rte_build_config.h; \
else \
echo '$(HASH)define RTE_$(1) $(DPDK_$(1))' \
@@ -143,7 +165,7 @@ if [[ "$(DPDK_$(1))" == "y" ]]; then \
>> $(dpdk_build_dir)/rte_build_config.h ; \
fi; \
elif [[ "$(DPDK_$(1))" == "n" ]]; then \
- sed -i '/$(HASH)define RTE_$(1) .*/d' $(dpdk_build_dir)/rte_build_config.h \
+ $(SED) -i '/$(HASH)define RTE_$(1) .*/d' $(dpdk_build_dir)/rte_build_config.h \
$(dpdk_src_dir)/config/rte_config.h ; \
fi
endef
@@ -153,23 +175,26 @@ DPDK_MESON_ARGS = \
--libdir lib \
--prefix $(dpdk_install_dir) \
-Dtests=false \
+ -Denable_driver_sdk=true \
"-Ddisable_drivers=$(DPDK_DRIVERS_DISABLED)" \
"-Ddisable_libs=$(DPDK_LIBS_DISABLED)" \
-Db_pie=true \
-Dmachine=$(DPDK_MACHINE) \
--buildtype=$(DPDK_BUILD_TYPE) \
+ -Denable_kmods=false \
${DPDK_MLX_CONFIG_FLAG}
PIP_DOWNLOAD_DIR = $(CURDIR)/downloads/
define dpdk_config_cmds
cd $(dpdk_build_dir) && \
+ echo "DPDK_MLX_DEFAULT=$(DPDK_MLX_DEFAULT)" > ../../../dpdk_mlx_default.sh && \
rm -rf ../dpdk-meson-venv && \
mkdir -p ../dpdk-meson-venv && \
python3 -m venv ../dpdk-meson-venv && \
source ../dpdk-meson-venv/bin/activate && \
- (if ! ls $(PIP_DOWNLOAD_DIR)meson* ; then pip3 download -d $(PIP_DOWNLOAD_DIR) -f $(DL_CACHE_DIR) meson==0.54 setuptools wheel pyelftools; fi) && \
- pip3 install --no-index --find-links=$(PIP_DOWNLOAD_DIR) meson==0.54 pyelftools && \
+ (if ! ls $(PIP_DOWNLOAD_DIR)meson* ; then pip3 download -d $(PIP_DOWNLOAD_DIR) -f $(DL_CACHE_DIR) meson==0.55.3 setuptools wheel pyelftools; fi) && \
+ pip3 install --no-index --find-links=$(PIP_DOWNLOAD_DIR) meson==0.55.3 pyelftools && \
PKG_CONFIG_PATH=$(dpdk_install_dir)/lib/pkgconfig meson setup $(dpdk_src_dir) \
$(dpdk_build_dir) \
$(DPDK_MESON_ARGS) \
@@ -181,10 +206,14 @@ define dpdk_config_cmds
$(call dpdk_config_def,USE_LIBBSD)
endef
+ifeq ("$(DPDK_VERBOSE)","1")
+DPDK_VERBOSE_BUILD = --verbose
+endif
+
define dpdk_build_cmds
cd $(dpdk_build_dir) && \
source ../dpdk-meson-venv/bin/activate && \
- meson compile -C . | tee $(dpdk_build_log) && \
+ meson compile $(DPDK_VERBOSE_BUILD) -C . | tee $(dpdk_build_log) && \
deactivate
endef
diff --git a/build/external/packages/ipsec-mb.mk b/build/external/packages/ipsec-mb.mk
index d0bd2af19cf..d38f2e306ea 100644
--- a/build/external/packages/ipsec-mb.mk
+++ b/build/external/packages/ipsec-mb.mk
@@ -11,16 +11,21 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-ipsec-mb_version := 1.0
+ipsec-mb_version := 1.5
+ipsec-mb_patch_version := 0
+ipsec-mb_version_str := $(ipsec-mb_version).$(ipsec-mb_patch_version)
ipsec-mb_tarball := v$(ipsec-mb_version).tar.gz
-ipsec-mb_tarball_md5sum_0.54 := 258941f7ba90c275fcf9d19c622d2d21
-ipsec-mb_tarball_md5sum_0.55 := deca674bca7ae2282890e1fa7f953609
ipsec-mb_tarball_md5sum_1.0 := 906e701937751e761671dc83a41cff65
+ipsec-mb_tarball_md5sum_1.1 := 3916471d3713d27e42473cb6af9c65e5
+ipsec-mb_tarball_md5sum_1.2 := f551d9c208893a436c1f5c146a615bd6
+ipsec-mb_tarball_md5sum_1.3 := d8692db9efe32a263b61f12ac0dca950
+ipsec-mb_tarball_md5sum_1.4 := fddba2611f822296ddd82d1c31d22b24
+ipsec-mb_tarball_md5sum_1.5 := f18680f8dd43208a15a19a494423bdb9
ipsec-mb_tarball_md5sum := $(ipsec-mb_tarball_md5sum_$(ipsec-mb_version))
ipsec-mb_tarball_strip_dirs := 1
-ipsec-mb_url := http://github.com/01org/intel-ipsec-mb/archive/$(ipsec-mb_tarball)
-ipsec-mb_depends := nasm
+ipsec-mb_url := http://github.com/intel/intel-ipsec-mb/archive/$(ipsec-mb_tarball)
+ipsec-mb_system_header := $(wildcard /usr/include/intel-ipsec-mb.h)
define ipsec-mb_config_cmds
@true
@@ -33,11 +38,25 @@ define ipsec-mb_build_cmds
SAFE_LOOKUP=n \
SAFE_DATA=n \
PREFIX=$(ipsec-mb_install_dir) \
- NASM=$(ipsec-mb_install_dir)/bin/nasm \
EXTRA_CFLAGS="-g -msse4.2" > $(ipsec-mb_build_log)
endef
+ifneq ($(ipsec-mb_system_header), )
+ ipsec-mb_system_ver_str := $(shell awk '/^#define\s+IMB_VERSION_STR/ { print $$3 }' \
+ $(ipsec-mb_system_header))
+endif
+
define ipsec-mb_install_cmds
+ if [[ -n "$(ipsec-mb_system_header)" ]]; then \
+ if [[ "$(ipsec-mb_system_ver_str)" != "$(ipsec-mb_version_str)" ]]; then \
+ echo "Intel-ipsec-mb build Error: System installed Intel IPsec-mb lib \
+ version mismatch with target version, \
+ expecting $(ipsec-mb_version_str), \
+ but system has $(ipsec-mb_system_ver_str) \
+ please align/remove system installed $(ipsec-mb_system_header) before building."; \
+ exit 1; \
+ fi \
+ fi
@mkdir -p $(ipsec-mb_install_dir)/include
@mkdir -p $(ipsec-mb_install_dir)/lib
@cp $(ipsec-mb_src_dir)/lib/intel-ipsec-mb.h $(ipsec-mb_install_dir)/include
diff --git a/build/external/packages/libbpf.mk b/build/external/packages/libbpf.mk
deleted file mode 100644
index 39da05d9871..00000000000
--- a/build/external/packages/libbpf.mk
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-LIBBPF_DEBUG?=n
-
-libbpf_version := 0.2
-libbpf_tarball := v$(libbpf_version).tar.gz
-libbpf_tarball_md5sum_0.2 := cd0f82d76a9830c1e66b1a249393d5a8
-libbpf_tarball_md5sum_0.1.0 := 00b991a6e2d28d797a56ab1575ed40e1
-libbpf_tarball_md5sum := $(libbpf_tarball_md5sum_$(libbpf_version))
-libbpf_tarball_strip_dirs := 1
-libbpf_url := https://github.com/libbpf/libbpf/archive/$(libbpf_tarball)
-
-LIBBPF_CFLAGS:=-g -Werror -Wall -fPIC -fvisibility=hidden
-ifeq ($(LIBBPF_DEBUG),y)
- LIBBPF_CFLAGS+= -O0
-else
- LIBBPF_CFLAGS+= -O2
-endif
-
-# check for libelf, zlib and kernel if_xdp.h presence
-LIBBPF_DEPS_CHECK:="\#include <linux/if_xdp.h>\\n\#include <gelf.h>\\n\#include <zlib.h>\\nint main(void){return 0;}"
-LIBBPF_DEPS_CHECK:=$(shell echo -e $(LIBBPF_DEPS_CHECK) | $(CC) -xc -lelf -lz -o /dev/null - > /dev/null 2>&1)
-LIBBPF_DEPS_CHECK:=$(.SHELLSTATUS)
-
-define libbpf_config_cmds
- @true
-endef
-
-define libbpf_build_cmds__
- BUILD_STATIC_ONLY=y OBJDIR='$(libbpf_build_dir)' PREFIX='' DESTDIR='$(libbpf_install_dir)' CFLAGS='$(LIBBPF_CFLAGS)' make -C '$(libbpf_src_dir)/src' $(1) > $(2)
-endef
-
-define libbpf_build_cmds
- $(call libbpf_build_cmds__,,$(libbpf_build_log))
-endef
-
-define libbpf_install_cmds
- $(call libbpf_build_cmds__,install,$(libbpf_install_log))
-endef
-
-ifneq ($(LIBBPF_DEPS_CHECK),0)
- $(warning "Missing libbpf dependencies. libbpf will be skipped.")
-libbpf-install:
- @true
-else
- $(eval $(call package,libbpf))
-endif
diff --git a/build/external/packages/nasm.mk b/build/external/packages/nasm.mk
deleted file mode 100644
index 2a5ce018b1f..00000000000
--- a/build/external/packages/nasm.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-nasm_version := 2.14.02
-nasm_tarball := nasm-$(nasm_version).tar.xz
-nasm_tarball_md5sum := 6390bd67b07ff1df9fe628b6929c0353
-nasm_tarball_strip_dirs := 1
-nasm_url := https://ftp.osuosl.org/pub/blfs/conglomeration/nasm/$(nasm_tarball)
-nasm_cflags := -Wno-implicit-fallthrough -std=c11
-
-$(eval $(call package,nasm))
diff --git a/build/external/packages/octeon-roc.mk b/build/external/packages/octeon-roc.mk
new file mode 100644
index 00000000000..f96cd4c6e3d
--- /dev/null
+++ b/build/external/packages/octeon-roc.mk
@@ -0,0 +1,26 @@
+# Copyright (c) 2023 Marvell.
+# SPDX-License-Identifier: Apache-2.0
+# https://spdx.org/licenses/Apache-2.0.html
+
+octeon-roc_version := 0.4
+octeon-roc_tarball := octeon-roc-v$(octeon-roc_version).tar.gz
+octeon-roc_tarball_md5sum := f3772f6e05d71cf2709c00ff1a1929ca
+
+octeon-roc_tarball_strip_dirs := 1
+octeon-roc_url := https://github.com/MarvellEmbeddedProcessors/marvell-vpp/archive/refs/tags/$(octeon-roc_tarball)
+
+define octeon-roc_config_cmds
+ @true
+endef
+
+define octeon-roc_build_cmds
+ @cd ${octeon-roc_src_dir} && rm -f $(octeon-roc_build_log) && $(CMAKE) ${octeon-roc_src_dir} -DCMAKE_INSTALL_PREFIX='$(octeon-roc_install_dir)' >> $(octeon-roc_build_log)
+ @$(MAKE) -C ${octeon-roc_src_dir} >> $(octeon-roc_build_log)
+endef
+
+define octeon-roc_install_cmds
+ @$(MAKE) -C ${octeon-roc_src_dir} install >> $(octeon-roc_install_log)
+endef
+
+$(eval $(call package,octeon-roc))
+
diff --git a/build/external/packages/quicly.mk b/build/external/packages/quicly.mk
index 635cf969a0c..e8c1b42f1b7 100644
--- a/build/external/packages/quicly.mk
+++ b/build/external/packages/quicly.mk
@@ -11,9 +11,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-quicly_version := 0.1.3-vpp
+quicly_version := 0.1.4-vpp
quicly_tarball := quicly_$(quicly_version).tar.gz
-quicly_tarball_md5sum := 195f156f311458f1bd4540765e62dd27
+quicly_tarball_md5sum := 5419a0f340c5572bcf682c08acc84c77
quicly_tarball_strip_dirs := 1
quicly_url := https://github.com/vpp-quic/quicly/releases/download/v$(quicly_version)/quicly_$(quicly_version).tar.gz
@@ -21,16 +21,17 @@ picotls_build_dir := $(B)/build-picotls
define quicly_build_cmds
@cd $(quicly_build_dir) && \
+ rm -f $(quicly_build_log) && \
$(CMAKE) -DWITH_DTRACE=OFF \
-DCMAKE_INSTALL_PREFIX:PATH=$(quicly_install_dir) \
- $(quicly_src_dir) > $(quicly_build_log)
- @$(MAKE) quicly $(MAKE_ARGS) -C $(quicly_build_dir) > $(quicly_build_log)
+ $(quicly_src_dir) >> $(quicly_build_log)
+ @$(MAKE) quicly $(MAKE_ARGS) -C $(quicly_build_dir) >> $(quicly_build_log)
@mkdir -p $(picotls_build_dir)
@cd $(picotls_build_dir) && \
$(CMAKE) -DWITH_DTRACE=OFF -DCMAKE_INSTALL_PREFIX:PATH=$(quicly_install_dir) \
- $(quicly_src_dir)/deps/picotls > $(quicly_build_log)
- @$(MAKE) picotls-core picotls-openssl $(MAKE_ARGS) -C $(picotls_build_dir) > $(quicly_build_log)
+ $(quicly_src_dir)/deps/picotls >> $(quicly_build_log)
+ @$(MAKE) picotls-core picotls-openssl $(MAKE_ARGS) -C $(picotls_build_dir) >> $(quicly_build_log)
endef
define quicly_config_cmds
@@ -38,8 +39,9 @@ define quicly_config_cmds
endef
define quicly_install_cmds
- @$(MAKE) $(MAKE_ARGS) -C $(quicly_build_dir) install > $(quicly_install_log)
- @$(MAKE) $(MAKE_ARGS) -C $(picotls_build_dir) install > $(quicly_install_log)
+ @rm -f $(quicly_install_log)
+ @$(MAKE) $(MAKE_ARGS) -C $(quicly_build_dir) install >> $(quicly_install_log)
+ @$(MAKE) $(MAKE_ARGS) -C $(picotls_build_dir) install >> $(quicly_install_log)
endef
diff --git a/build/external/packages/rdma-core.mk b/build/external/packages/rdma-core.mk
index b8092e4cb4d..f015322775f 100644
--- a/build/external/packages/rdma-core.mk
+++ b/build/external/packages/rdma-core.mk
@@ -13,10 +13,20 @@
RDMA_CORE_DEBUG?=n
-rdma-core_version := 35.0
+# NOTE: When updating the rdma-core version in conjunction with an update of the
+# dpdk version, please update ../mlx_rdma_dpdk_matrix.txt to include the
+# updated version matrix with the dpdk and rdma-core version.
+#
+# Also, please verify that the DPDK RDMA driver is built into the dpdk plugin
+# as follows:
+# 1. from workspace root directory, 'make -C build/external build-deb'
+# 2. Verify that the file build/external/dpdk_mlx_default.sh was generated
+# and contains 'DPDK_MLX_DEFAULT=y'
+#
+rdma-core_version := 51.0
rdma-core_tarball := rdma-core-$(rdma-core_version).tar.gz
-rdma-core_tarball_md5sum_31.1 := f14b3eba775c2eba0d9433bfb3bae637
-rdma-core_tarball_md5sum_35.0 := 85afb89ec536ef229c0fef6cb87e8665
+rdma-core_tarball_md5sum_49.0 := 9fe3909f19c7e0276c9e546411bbb49c
+rdma-core_tarball_md5sum_51.0 := ed95d79f782ea00bd7233d453abd60b3
rdma-core_tarball_md5sum := $(rdma-core_tarball_md5sum_$(rdma-core_version))
rdma-core_tarball_strip_dirs := 1
rdma-core_url := http://github.com/linux-rdma/rdma-core/releases/download/v$(rdma-core_version)/$(rdma-core_tarball)
@@ -32,27 +42,16 @@ define rdma-core_config_cmds
-DENABLE_STATIC=1 -DENABLE_RESOLVE_NEIGH=0 -DNO_PYVERBS=1 -DENABLE_VALGRIND=0\
-DCMAKE_BUILD_TYPE=$(RDMA_BUILD_TYPE) -DCMAKE_INSTALL_PREFIX=$(rdma-core_install_dir) \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_C_FLAGS='-fPIC -fvisibility=hidden' > $(rdma-core_config_log)
+ -DCMAKE_INSTALL_RUNDIR:PATH=/run \
+ -DCMAKE_C_FLAGS='-fPIC' -DNO_MAN_PAGES=ON | tee $(rdma-core_config_log)
endef
define rdma-core_build_cmds
- $(CMAKE) --build $(rdma-core_build_dir) -- libccan.a libibverbs.a librdma_util.a libmlx5.a libmlx4.a > $(rdma-core_build_log)
- sed 's/^Libs.private:.*/Libs.private: -lmlx4 -lmlx5 -libverbs -lrdma_util -lccan -lpthread/' -i $(rdma-core_build_dir)/lib/pkgconfig/libibverbs.pc >> $(rdma-core_build_log)
+ $(CMAKE) --build $(rdma-core_build_dir) | tee $(rdma-core_build_log)
endef
define rdma-core_install_cmds
- mkdir -p $(rdma-core_install_dir)/lib/pkgconfig
- cp -av $(rdma-core_build_dir)/include $(rdma-core_install_dir) > $(rdma-core_install_log)
- cp -v $(rdma-core_build_dir)/lib/pkgconfig/libibverbs.pc \
- $(rdma-core_build_dir)/lib/pkgconfig/libmlx5.pc \
- $(rdma-core_build_dir)/lib/pkgconfig/libmlx4.pc \
- $(rdma-core_install_dir)/lib/pkgconfig >> $(rdma-core_install_log)
- cp -v $(rdma-core_build_dir)/lib/statics/libibverbs.a \
- $(rdma-core_build_dir)/lib/statics/libmlx5.a \
- $(rdma-core_build_dir)/lib/statics/libmlx4.a \
- $(rdma-core_build_dir)/util/librdma_util.a \
- $(rdma-core_build_dir)/ccan/libccan.a \
- $(rdma-core_install_dir)/lib >> $(rdma-core_install_log)
+ $(CMAKE) --install $(rdma-core_build_dir) | tee $(rdma-core_install_log)
endef
$(eval $(call package,rdma-core))
diff --git a/build/external/packages/xdp-tools.mk b/build/external/packages/xdp-tools.mk
new file mode 100644
index 00000000000..b65ae1361f5
--- /dev/null
+++ b/build/external/packages/xdp-tools.mk
@@ -0,0 +1,38 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# Copyright (c) 2018 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+xdp-tools_version := 1.2.9
+xdp-tools_tarball := xdp-tools-$(xdp-tools_version).tar.gz
+xdp-tools_tarball_md5sum_1.2.9:= 6e4a49ceea8354bb7bb3b55990e9aed7
+xdp-tools_tarball_md5sum := $(xdp-tools_tarball_md5sum_$(xdp-tools_version))
+xdp-tools_tarball_strip_dirs := 1
+xdp-tools_url := https://github.com/xdp-project/xdp-tools/releases/download/v$(xdp-tools_version)/$(xdp-tools_tarball)
+
+define xdp-tools_config_cmds
+ @true
+endef
+
+define xdp-tools_build_cmds
+ @cd ${xdp-tools_src_dir} && make V=1 BUILD_STATIC_ONLY=y > $(xdp-tools_build_log)
+endef
+
+define xdp-tools_install_cmds
+ @rm -f $(xdp-tools_install_log)
+ @cd ${xdp-tools_src_dir} && \
+ make -C lib/libbpf/src install V=1 BUILD_STATIC_ONLY=y PREFIX='' DESTDIR='$(xdp-tools_install_dir)' >> $(xdp-tools_install_log)
+ @cd ${xdp-tools_src_dir} && \
+ make libxdp_install V=1 BUILD_STATIC_ONLY=y PREFIX='' DESTDIR='$(xdp-tools_install_dir)' >> $(xdp-tools_install_log)
+endef
+
+$(eval $(call package,xdp-tools))