Makefile 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. include $(TOPDIR)/rules.mk
  2. PKG_NAME:=libubox
  3. PKG_RELEASE=1
  4. PKG_SOURCE_PROTO:=git
  5. PKG_SOURCE_URL=$(PROJECT_GIT)/project/libubox.git
  6. PKG_MIRROR_HASH:=51b48648a3a64eed74bcb1ab352aaad6ef7679a574df4445d2914b990aba5bbf
  7. PKG_SOURCE_DATE:=2025-07-23
  8. PKG_SOURCE_DATE_ABI:=2024-03-29
  9. PKG_SOURCE_VERSION:=49056d178f42da98048a5d4c23f83a6f6bc6dd80
  10. PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE_ABI))
  11. CMAKE_INSTALL:=1
  12. PKG_LICENSE:=ISC
  13. PKG_LICENSE_FILES:=
  14. PKG_MAINTAINER:=Felix Fietkau <[email protected]>
  15. PKG_BUILD_DEPENDS:=lua
  16. HOST_BUILD_DEPENDS:=libjson-c/host
  17. HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
  18. include $(INCLUDE_DIR)/package.mk
  19. include $(INCLUDE_DIR)/host-build.mk
  20. include $(INCLUDE_DIR)/cmake.mk
  21. define Package/libubox
  22. SECTION:=libs
  23. CATEGORY:=Libraries
  24. TITLE:=Basic utility library
  25. ABI_VERSION:=$(PKG_ABI_VERSION)
  26. DEPENDS:=
  27. endef
  28. define Package/libblobmsg-json
  29. SECTION:=libs
  30. CATEGORY:=Libraries
  31. TITLE:=blobmsg <-> json conversion library
  32. ABI_VERSION:=$(PKG_ABI_VERSION)
  33. DEPENDS:=+libjson-c +libubox
  34. endef
  35. define Package/jshn
  36. SECTION:=utils
  37. CATEGORY:=Utilities
  38. DEPENDS:=+libjson-c +libubox +libblobmsg-json
  39. TITLE:=JSON SHell Notation
  40. endef
  41. define Package/jshn/description
  42. Library for parsing and generating JSON from shell scripts
  43. endef
  44. define Package/libjson-script
  45. SECTION:=utils
  46. CATEGORY:=Utilities
  47. DEPENDS:=+libubox
  48. ABI_VERSION:=$(PKG_ABI_VERSION)
  49. TITLE:=Minimalistic JSON based scripting engine
  50. endef
  51. define Package/libubox-lua
  52. SECTION:=libs
  53. CATEGORY:=Libraries
  54. DEPENDS:=+libubox +liblua
  55. TITLE:=Lua binding for the OpenWrt Basic utility library
  56. endef
  57. TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
  58. CMAKE_OPTIONS += \
  59. -DLUAPATH=/usr/lib/lua \
  60. -DABIVERSION="$(PKG_ABI_VERSION)"
  61. define Package/libubox/install
  62. $(INSTALL_DIR) $(1)/lib/
  63. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libubox.so.* $(1)/lib/
  64. endef
  65. define Package/libblobmsg-json/install
  66. $(INSTALL_DIR) $(1)/lib/
  67. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libblobmsg_json.so.* $(1)/lib/
  68. endef
  69. define Package/jshn/install
  70. $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/share/libubox
  71. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/jshn $(1)/usr/bin
  72. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/libubox/jshn.sh $(1)/usr/share/libubox
  73. endef
  74. define Package/libjson-script/install
  75. $(INSTALL_DIR) $(1)/lib/
  76. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libjson_script.so.* $(1)/lib/
  77. endef
  78. define Package/libubox-lua/install
  79. $(INSTALL_DIR) $(1)/usr/lib/lua
  80. $(CP) $(PKG_BUILD_DIR)/lua/uloop.so $(1)/usr/lib/lua/
  81. endef
  82. CMAKE_HOST_OPTIONS += \
  83. -DBUILD_LUA=OFF \
  84. -DBUILD_EXAMPLES=OFF \
  85. -DCMAKE_SKIP_RPATH=FALSE \
  86. -DCMAKE_MACOSX_RPATH=1 \
  87. -DCMAKE_INSTALL_RPATH="${STAGING_DIR_HOST}/lib" \
  88. ifeq ($(HOST_OS),Darwin)
  89. define Host/Install
  90. $(Host/Install/Default)
  91. $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/lib
  92. cd "$(STAGING_DIR_HOSTPKG)/lib" && ln -sf ../../host/lib/libubox.* .
  93. endef
  94. endif
  95. $(eval $(call BuildPackage,libubox))
  96. $(eval $(call BuildPackage,libblobmsg-json))
  97. $(eval $(call BuildPackage,jshn))
  98. $(eval $(call BuildPackage,libjson-script))
  99. $(eval $(call BuildPackage,libubox-lua))
  100. $(eval $(call HostBuild))