Makefile 3.0 KB

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