mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 07:22:33 +00:00
f5d6ed3007
xdp-tools build currently breaks on build hosts which do not have libbpf headers installed because the build system wrongly tries to use the host's include path. Properly pass path to libbpf headers to xdp-tools build system to fix build e.g. on the buildbots. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
140 lines
3.9 KiB
Makefile
140 lines
3.9 KiB
Makefile
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=xdp-tools
|
|
PKG_RELEASE:=$(AUTORELEASE)
|
|
PKG_VERSION:=1.2.6
|
|
PKG_HASH:=e1bead15014adf404c1ae93b5bb24e6625840b4aadef6c1acfb47e0b99039f52
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=https://codeload.github.com/xdp-project/xdp-tools/tar.gz/v$(PKG_VERSION)?
|
|
PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_VERSION))
|
|
|
|
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
|
|
|
|
PKG_BUILD_DEPENDS:=bpf-headers
|
|
PKG_FLAGS:=nonshared
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/bpf.mk
|
|
include $(INCLUDE_DIR)/nls.mk
|
|
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_INSTALL:=1
|
|
|
|
define Package/libxdp
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=libxdp - Library for use with XDP
|
|
LICENSE:=LGPL-2.1 OR BSD-2-Clause
|
|
ABI_VERSION:=$(PKG_ABI_VERSION)
|
|
URL:=https://github.com/xdp-project/xdp-tools/
|
|
DEPENDS:=+libbpf $(BPF_DEPENDS)
|
|
endef
|
|
|
|
define Package/libxdp/description
|
|
libxdp - library for attaching XDP programs and using AF_XDP sockets
|
|
endef
|
|
|
|
define Package/xdp-tools/Default
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
LICENSE:=GPL-2.0-only
|
|
URL:=https://github.com/xdp-project/xdp-tools/
|
|
DEPENDS:=+libxdp
|
|
endef
|
|
|
|
define Package/xdp-filter
|
|
$(call Package/xdp-tools/Default)
|
|
TITLE:=xdp-filter - a simple XDP-powered packet filter
|
|
endef
|
|
|
|
define Package/xdp-filter/description
|
|
xdp-filter is a packet filtering utility powered by XDP. It is deliberately
|
|
simple and so does not have the same matching capabilities as, e.g.,
|
|
netfilter. Instead, thanks to XDP, it can achieve very high drop rates:
|
|
tens of millions of packets per second on a single CPU core.
|
|
endef
|
|
|
|
|
|
define Package/xdp-loader
|
|
$(call Package/xdp-tools/Default)
|
|
TITLE:=xdp-loader - an XDP program loader
|
|
endef
|
|
|
|
define Package/xdp-loader/description
|
|
xdp-loader is a simple loader for XDP programs with support for attaching
|
|
multiple programs to the same interface. To achieve this it exposes the same
|
|
load and unload semantics exposed by the libxdp library.
|
|
endef
|
|
|
|
define Package/xdpdump
|
|
$(call Package/xdp-tools/Default)
|
|
TITLE:=xdpdump - tool for capturing packets at the XDP layer
|
|
DEPENDS+=+libpcap
|
|
endef
|
|
|
|
define Package/xdpdump/description
|
|
xdpdump - a simple tcpdump like tool for capturing packets at the XDP layer
|
|
endef
|
|
|
|
TARGET_LDFLAGS += $(INTL_LDFLAGS)
|
|
|
|
CONFIGURE_VARS += \
|
|
FORCE_SYSTEM_LIBBPF=1 \
|
|
CC="$(TARGET_CC)" \
|
|
CFLAGS="$(TARGET_CFLAGS)" \
|
|
LDFLAGS="$(TARGET_LDFLAGS)" \
|
|
CLANG="$(CLANG)" \
|
|
BPF_TARGET="$(BPF_TARGET)" \
|
|
LLC="$(LLVM_LLC)"
|
|
|
|
MAKE_VARS += \
|
|
PREFIX=/usr \
|
|
RUNDIR=/tmp/run
|
|
|
|
define Build/Configure
|
|
$(call Build/Configure/Default)
|
|
echo "BPF_CFLAGS += -I$(BPF_HEADERS_DIR)/tools/lib" >> $(PKG_BUILD_DIR)/config.mk
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include/xdp
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/xdp/*.h $(1)/usr/include/xdp/
|
|
$(INSTALL_DIR) $(1)/usr/lib/bpf
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxdp.{a,so*} $(1)/usr/lib/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/bpf/*.o $(1)/usr/lib/bpf
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libxdp.pc \
|
|
$(1)/usr/lib/pkgconfig/
|
|
$(SED) 's,/usr/include,$$$${prefix}/include,g' \
|
|
$(1)/usr/lib/pkgconfig/libxdp.pc
|
|
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' \
|
|
$(1)/usr/lib/pkgconfig/libxdp.pc
|
|
endef
|
|
|
|
define Package/xdp-filter/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xdp-filter $(1)/usr/sbin
|
|
endef
|
|
|
|
define Package/xdp-loader/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xdp-loader $(1)/usr/sbin
|
|
endef
|
|
|
|
define Package/xdpdump/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xdpdump $(1)/usr/sbin
|
|
endef
|
|
|
|
define Package/libxdp/install
|
|
$(INSTALL_DIR) $(1)/usr/lib/bpf
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxdp.so.* $(1)/usr/lib/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/bpf/*.o $(1)/usr/lib/bpf
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,libxdp))
|
|
$(eval $(call BuildPackage,xdp-filter))
|
|
$(eval $(call BuildPackage,xdp-loader))
|
|
$(eval $(call BuildPackage,xdpdump))
|