xdp-tools: update to v1.2.6
[openwrt/staging/aparcar.git] / package / network / utils / xdp-tools / Makefile
1 include $(TOPDIR)/rules.mk
2
3 PKG_NAME:=xdp-tools
4 PKG_RELEASE:=$(AUTORELEASE)
5 PKG_VERSION:=1.2.6
6 PKG_HASH:=e1bead15014adf404c1ae93b5bb24e6625840b4aadef6c1acfb47e0b99039f52
7
8 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
9 PKG_SOURCE_URL:=https://codeload.github.com/xdp-project/xdp-tools/tar.gz/v$(PKG_VERSION)?
10 PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_VERSION))
11
12 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
13
14 PKG_BUILD_DEPENDS:=bpf-headers
15 PKG_FLAGS:=nonshared
16
17 include $(INCLUDE_DIR)/package.mk
18 include $(INCLUDE_DIR)/bpf.mk
19 include $(INCLUDE_DIR)/nls.mk
20
21 PKG_BUILD_PARALLEL:=1
22 PKG_INSTALL:=1
23
24 define Package/libxdp
25 SECTION:=libs
26 CATEGORY:=Libraries
27 TITLE:=libxdp - Library for use with XDP
28 LICENSE:=LGPL-2.1 OR BSD-2-Clause
29 ABI_VERSION:=$(PKG_ABI_VERSION)
30 URL:=https://github.com/xdp-project/xdp-tools/
31 DEPENDS:=+libbpf $(BPF_DEPENDS)
32 endef
33
34 define Package/libxdp/description
35 libxdp - library for attaching XDP programs and using AF_XDP sockets
36 endef
37
38 define Package/xdp-tools/Default
39 SECTION:=net
40 CATEGORY:=Network
41 LICENSE:=GPL-2.0-only
42 URL:=https://github.com/xdp-project/xdp-tools/
43 DEPENDS:=+libxdp
44 endef
45
46 define Package/xdp-filter
47 $(call Package/xdp-tools/Default)
48 TITLE:=xdp-filter - a simple XDP-powered packet filter
49 endef
50
51 define Package/xdp-filter/description
52 xdp-filter is a packet filtering utility powered by XDP. It is deliberately
53 simple and so does not have the same matching capabilities as, e.g.,
54 netfilter. Instead, thanks to XDP, it can achieve very high drop rates:
55 tens of millions of packets per second on a single CPU core.
56 endef
57
58
59 define Package/xdp-loader
60 $(call Package/xdp-tools/Default)
61 TITLE:=xdp-loader - an XDP program loader
62 endef
63
64 define Package/xdp-loader/description
65 xdp-loader is a simple loader for XDP programs with support for attaching
66 multiple programs to the same interface. To achieve this it exposes the same
67 load and unload semantics exposed by the libxdp library.
68 endef
69
70 define Package/xdpdump
71 $(call Package/xdp-tools/Default)
72 TITLE:=xdpdump - tool for capturing packets at the XDP layer
73 DEPENDS+=+libpcap
74 endef
75
76 define Package/xdpdump/description
77 xdpdump - a simple tcpdump like tool for capturing packets at the XDP layer
78 endef
79
80 TARGET_LDFLAGS += $(INTL_LDFLAGS)
81
82 CONFIGURE_VARS += \
83 FORCE_SYSTEM_LIBBPF=1 \
84 CC="$(TARGET_CC)" \
85 CFLAGS="$(TARGET_CFLAGS)" \
86 LDFLAGS="$(TARGET_LDFLAGS)" \
87 CLANG="$(CLANG)" \
88 BPF_CFLAGS="$(BPF_CFLAGS)" \
89 BPF_TARGET="$(BPF_TARGET)" \
90 LLC="$(LLVM_LLC)"
91
92 MAKE_VARS += \
93 PREFIX=/usr \
94 RUNDIR=/tmp/run
95
96 define Build/InstallDev
97 $(INSTALL_DIR) $(1)/usr/include/xdp
98 $(CP) $(PKG_INSTALL_DIR)/usr/include/xdp/*.h $(1)/usr/include/xdp/
99 $(INSTALL_DIR) $(1)/usr/lib/bpf
100 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxdp.{a,so*} $(1)/usr/lib/
101 $(CP) $(PKG_INSTALL_DIR)/usr/lib/bpf/*.o $(1)/usr/lib/bpf
102 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
103 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libxdp.pc \
104 $(1)/usr/lib/pkgconfig/
105 $(SED) 's,/usr/include,$$$${prefix}/include,g' \
106 $(1)/usr/lib/pkgconfig/libxdp.pc
107 $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' \
108 $(1)/usr/lib/pkgconfig/libxdp.pc
109 endef
110
111 define Package/xdp-filter/install
112 $(INSTALL_DIR) $(1)/usr/sbin
113 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xdp-filter $(1)/usr/sbin
114 endef
115
116 define Package/xdp-loader/install
117 $(INSTALL_DIR) $(1)/usr/sbin
118 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xdp-loader $(1)/usr/sbin
119 endef
120
121 define Package/xdpdump/install
122 $(INSTALL_DIR) $(1)/usr/sbin
123 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xdpdump $(1)/usr/sbin
124 endef
125
126 define Package/libxdp/install
127 $(INSTALL_DIR) $(1)/usr/lib/bpf
128 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxdp.so.* $(1)/usr/lib/
129 $(CP) $(PKG_INSTALL_DIR)/usr/lib/bpf/*.o $(1)/usr/lib/bpf
130 endef
131
132 $(eval $(call BuildPackage,libxdp))
133 $(eval $(call BuildPackage,xdp-filter))
134 $(eval $(call BuildPackage,xdp-loader))
135 $(eval $(call BuildPackage,xdpdump))