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