Makefile 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #
  2. # Copyright (C) 2021 Tony Ambardar <[email protected]>
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. include $(INCLUDE_DIR)/kernel.mk
  9. PKG_NAME:=kselftests-bpf
  10. PKG_VERSION:=$(LINUX_VERSION)
  11. PKG_RELEASE:=1
  12. PKG_MAINTAINER:=Tony Ambardar <[email protected]>
  13. PKG_BUILD_FLAGS:=no-lto
  14. PKG_BUILD_PARALLEL:=1
  15. PKG_FLAGS:=nonshared
  16. include $(INCLUDE_DIR)/package.mk
  17. include $(INCLUDE_DIR)/nls.mk
  18. define Package/kselftests-bpf
  19. SECTION:=devel
  20. CATEGORY:=Development
  21. DEPENDS:= \
  22. +libelf +zlib +libpthread +librt @!IN_SDK \
  23. @KERNEL_DEBUG_FS @KERNEL_DEBUG_INFO_BTF @KERNEL_BPF_EVENTS
  24. TITLE:=Linux Kernel Selftests (BPF)
  25. URL:=http://www.kernel.org
  26. endef
  27. define Package/kselftests-bpf/description
  28. kselftests-bpf is the Linux kernel BPF test suite
  29. endef
  30. EXE_TARGETS = test_verifier
  31. MOD_TARGETS = $(if $(call kernel_patchver_ge,6.4),bpf_testmod.ko)
  32. MAKE_PATH:=tools/testing/selftests/bpf
  33. MAKE_VARS = \
  34. ARCH="$(LINUX_KARCH)" \
  35. CROSS_COMPILE="$(TARGET_CROSS)" \
  36. EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
  37. LDLIBS="$(TARGET_LDFLAGS)" \
  38. TOOLCHAIN_INCLUDE="$(TOOLCHAIN_INC_DIRS)" \
  39. KBUILD_OUTPUT="$(LINUX_DIR)"
  40. MAKE_FLAGS = \
  41. $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \
  42. OUTPUT=$(PKG_BUILD_DIR)
  43. define Build/Compile
  44. +$(MAKE_VARS) \
  45. $(MAKE) $(PKG_JOBS) -C $(LINUX_DIR)/$(MAKE_PATH) \
  46. $(MAKE_FLAGS) $(EXE_TARGETS) $(MOD_TARGETS) ;
  47. endef
  48. define Package/kselftests-bpf/install
  49. $(INSTALL_DIR) $(1)/usr/libexec/$(PKG_NAME)
  50. $(foreach tgt,$(MOD_TARGETS), \
  51. $(INSTALL_DATA) \
  52. $(PKG_BUILD_DIR)/$(tgt) $(1)/usr/libexec/$(PKG_NAME); \
  53. )
  54. $(foreach tgt,$(EXE_TARGETS), \
  55. $(INSTALL_BIN) \
  56. $(PKG_BUILD_DIR)/$(tgt) $(1)/usr/libexec/$(PKG_NAME); \
  57. )
  58. endef
  59. $(eval $(call BuildPackage,kselftests-bpf))