aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/utils/bpftool/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/utils/bpftool/Makefile')
-rw-r--r--package/network/utils/bpftool/Makefile99
1 files changed, 99 insertions, 0 deletions
diff --git a/package/network/utils/bpftool/Makefile b/package/network/utils/bpftool/Makefile
new file mode 100644
index 0000000000..cbbba2dba5
--- /dev/null
+++ b/package/network/utils/bpftool/Makefile
@@ -0,0 +1,99 @@
+#
+# Copyright (C) 2020-2023 Tony Ambardar <itugrok@yahoo.com>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bpftools
+PKG_VERSION:=7.2.0
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=https://github.com/libbpf/bpftool
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=19ff0564980a7429e730f6987a0b0bf418b3c676
+PKG_MIRROR_HASH:=f9b9871f64986dd2e5dab7060bb919398256ba93964da49c62efaf0e6bc9bbc4
+
+PKG_MAINTAINER:=Tony Ambardar <itugrok@yahoo.com>
+
+PKG_BUILD_FLAGS:=no-mips16
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/bpftool/Default
+ SECTION:=net
+ CATEGORY:=Network
+ TITLE:=bpftool - eBPF subsystem utility
+ LICENSE:=GPL-2.0-only OR BSD-2-Clause
+ URL:=http://www.kernel.org
+ DEPENDS:=+libelf
+endef
+
+define Package/bpftool-minimal
+ $(call Package/bpftool/Default)
+ TITLE+= (Minimal)
+ VARIANT:=minimal
+ DEFAULT_VARIANT:=1
+ PROVIDES:=bpftool
+ ALTERNATIVES:=200:/usr/sbin/bpftool:/usr/libexec/bpftool-minimal
+endef
+
+define Package/bpftool-full
+ $(call Package/bpftool/Default)
+ TITLE+= (Full)
+ VARIANT:=full
+ PROVIDES:=bpftool
+ ALTERNATIVES:=300:/usr/sbin/bpftool:/usr/libexec/bpftool-full
+ DEPENDS+= +libbfd +libopcodes
+endef
+
+define Package/bpftool-minimal/description
+ A tool for inspection and simple manipulation of eBPF programs and maps.
+endef
+
+define Package/bpftool-full/description
+ A tool for inspection and simple manipulation of eBPF programs and maps.
+ This full version uses libbfd and libopcodes to support disassembly of
+ eBPF programs and jited code.
+endef
+
+TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
+TARGET_LDFLAGS += -Wl,--gc-sections -flto
+
+ifeq ($(BUILD_VARIANT),full)
+ full:=1
+else
+ full:=0
+endif
+
+MAKE_VARS = \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)"
+
+MAKE_FLAGS += \
+ OUTPUT="$(PKG_BUILD_DIR)/" \
+ prefix="/usr" \
+ $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \
+ check_feat=0 \
+ feature-clang-bpf-co-re=0 \
+ feature-libbfd=$(full) \
+ feature-llvm=0 \
+ feature-libcap=0 \
+ feature-disassembler-four-args=1 \
+ feature-disassembler-init-styled=1
+
+MAKE_PATH = src
+
+define Package/bpftool-$(BUILD_VARIANT)/install
+ $(INSTALL_DIR) $(1)/usr/libexec
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/bpftool \
+ $(1)/usr/libexec/bpftool-$(BUILD_VARIANT)
+endef
+
+$(eval $(call BuildPackage,bpftool-full))
+$(eval $(call BuildPackage,bpftool-minimal))