Makefile 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. #
  2. # Copyright (C) 2020-2021 Jo-Philipp Wich <[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. PKG_NAME:=ucode
  9. PKG_RELEASE:=1
  10. PKG_SOURCE_PROTO:=git
  11. PKG_SOURCE_URL=https://github.com/jow-/ucode.git
  12. PKG_SOURCE_DATE:=2023-06-06
  13. PKG_SOURCE_VERSION:=c7d84aae09691a99ae3db427c0b2463732ef84f4
  14. PKG_MIRROR_HASH:=38826ae70d886d1d7ada3fc6591ac807169aa28107f60f7f2e617520083525fb
  15. PKG_MAINTAINER:=Jo-Philipp Wich <[email protected]>
  16. PKG_LICENSE:=ISC
  17. PKG_ABI_VERSION:=20220812
  18. include $(INCLUDE_DIR)/package.mk
  19. include $(INCLUDE_DIR)/host-build.mk
  20. include $(INCLUDE_DIR)/cmake.mk
  21. CMAKE_OPTIONS += -DSOVERSION=$(PKG_ABI_VERSION)
  22. CMAKE_HOST_OPTIONS += \
  23. -DSOVERSION=$(PKG_ABI_VERSION) \
  24. -DFS_SUPPORT=ON \
  25. -DMATH_SUPPORT=ON \
  26. -DNL80211_SUPPORT=OFF \
  27. -DRESOLV_SUPPORT=OFF \
  28. -DRTNL_SUPPORT=OFF \
  29. -DSTRUCT_SUPPORT=ON \
  30. -DUBUS_SUPPORT=OFF \
  31. -DUCI_SUPPORT=OFF \
  32. -DULOOP_SUPPORT=OFF
  33. define Package/ucode/default
  34. SUBMENU:=ucode
  35. SECTION:=lang
  36. CATEGORY:=Languages
  37. TITLE:=Tiny scripting and templating language
  38. endef
  39. define Package/ucode
  40. $(Package/ucode/default)
  41. DEPENDS:=+libucode
  42. endef
  43. define Package/ucode/description
  44. ucode is a tiny script interpreter featuring an ECMAScript oriented
  45. script language and Jinja-inspired templating.
  46. endef
  47. define Package/libucode
  48. $(Package/ucode/default)
  49. SUBMENU:=
  50. SECTION:=libs
  51. CATEGORY:=Libraries
  52. TITLE+= (library)
  53. ABI_VERSION:=$(PKG_ABI_VERSION)
  54. DEPENDS:=+libjson-c
  55. endef
  56. define Package/libucode/description
  57. The libucode package provides the shared runtime library for the ucode interpreter.
  58. endef
  59. define Package/ucode-mod-fs
  60. $(Package/ucode/default)
  61. TITLE+= (filesystem module)
  62. DEPENDS:=ucode
  63. endef
  64. define Package/ucode-mod-fs/description
  65. The filesystem plugin module allows interaction with the local file system.
  66. endef
  67. define Package/ucode-mod-math
  68. $(Package/ucode/default)
  69. TITLE+= (math module)
  70. DEPENDS:=ucode
  71. endef
  72. define Package/ucode-mod-math/description
  73. The math plugin provides access to various <math.h> procedures.
  74. endef
  75. define Package/ucode-mod-nl80211
  76. $(Package/ucode/default)
  77. TITLE+= (nl80211 module)
  78. DEPENDS:=ucode +libnl-tiny +libubox
  79. endef
  80. define Package/ucode-mod-nl80211/description
  81. The nl80211 plugin provides access to the Linux wireless 802.11 netlink API.
  82. endef
  83. define Package/ucode-mod-resolv
  84. $(Package/ucode/default)
  85. TITLE+= (resolv module)
  86. DEPENDS:=ucode
  87. endef
  88. define Package/ucode-mod-resolv/description
  89. The resolv plugin implements simple DNS resolving.
  90. endef
  91. define Package/ucode-mod-rtnl
  92. $(Package/ucode/default)
  93. TITLE+= (rtnl module)
  94. DEPENDS:=ucode +libnl-tiny +libubox
  95. endef
  96. define Package/ucode-mod-rtnl/description
  97. The rtnl plugin provides access to the Linux routing netlink API.
  98. endef
  99. define Package/ucode-mod-struct
  100. $(Package/ucode/default)
  101. TITLE+= (struct module)
  102. DEPENDS:=ucode
  103. endef
  104. define Package/ucode-mod-struct/description
  105. The struct plugin implements Python 3 compatible struct.pack/unpack functionality.
  106. endef
  107. define Package/ucode-mod-ubus
  108. $(Package/ucode/default)
  109. TITLE+= (ubus module)
  110. DEPENDS:=ucode +libubus +libblobmsg-json
  111. endef
  112. define Package/ucode-mod-ubus/description
  113. The ubus module allows ucode template scripts to enumerate and invoke ubus
  114. procedures.
  115. endef
  116. define Package/ucode-mod-uci
  117. $(Package/ucode/default)
  118. TITLE+= (uci module)
  119. DEPENDS:=ucode +libuci
  120. endef
  121. define Package/ucode-mod-uci/description
  122. The uci module allows templates to read and modify uci configuration.
  123. endef
  124. define Package/ucode-mod-uloop
  125. $(Package/ucode/default)
  126. TITLE+= (uloop module)
  127. DEPENDS:=ucode +libubox
  128. endef
  129. define Package/ucode-mod-uloop/description
  130. The uloop module allows ucode scripts to interact with OpenWrt uloop event
  131. loop implementation.
  132. endef
  133. define Build/InstallDev
  134. $(INSTALL_DIR) $(1)/usr/lib $(1)/usr/include/ucode
  135. $(CP) $(PKG_INSTALL_DIR)/usr/include/ucode/*.h $(1)/usr/include/ucode/
  136. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libucode.so* $(1)/usr/lib/
  137. endef
  138. define Package/ucode/install
  139. $(INSTALL_DIR) $(1)/usr/bin
  140. $(CP) $(PKG_INSTALL_DIR)/usr/bin/u* $(1)/usr/bin/
  141. endef
  142. define Package/libucode/install
  143. $(INSTALL_DIR) $(1)/usr/lib
  144. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libucode.so.* $(1)/usr/lib/
  145. endef
  146. define Package/ucode-mod-fs/install
  147. $(INSTALL_DIR) $(1)/usr/lib/ucode
  148. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/fs.so $(1)/usr/lib/ucode/
  149. endef
  150. define Package/ucode-mod-math/install
  151. $(INSTALL_DIR) $(1)/usr/lib/ucode
  152. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/math.so $(1)/usr/lib/ucode/
  153. endef
  154. define Package/ucode-mod-nl80211/install
  155. $(INSTALL_DIR) $(1)/usr/lib/ucode
  156. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/nl80211.so $(1)/usr/lib/ucode/
  157. endef
  158. define Package/ucode-mod-resolv/install
  159. $(INSTALL_DIR) $(1)/usr/lib/ucode
  160. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/resolv.so $(1)/usr/lib/ucode/
  161. endef
  162. define Package/ucode-mod-rtnl/install
  163. $(INSTALL_DIR) $(1)/usr/lib/ucode
  164. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/rtnl.so $(1)/usr/lib/ucode/
  165. endef
  166. define Package/ucode-mod-struct/install
  167. $(INSTALL_DIR) $(1)/usr/lib/ucode
  168. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/struct.so $(1)/usr/lib/ucode/
  169. endef
  170. define Package/ucode-mod-ubus/install
  171. $(INSTALL_DIR) $(1)/usr/lib/ucode
  172. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/ubus.so $(1)/usr/lib/ucode/
  173. endef
  174. define Package/ucode-mod-uci/install
  175. $(INSTALL_DIR) $(1)/usr/lib/ucode
  176. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/uci.so $(1)/usr/lib/ucode/
  177. endef
  178. define Package/ucode-mod-uloop/install
  179. $(INSTALL_DIR) $(1)/usr/lib/ucode
  180. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/uloop.so $(1)/usr/lib/ucode/
  181. endef
  182. $(eval $(call BuildPackage,libucode))
  183. $(eval $(call BuildPackage,ucode))
  184. $(eval $(call BuildPackage,ucode-mod-fs))
  185. $(eval $(call BuildPackage,ucode-mod-math))
  186. $(eval $(call BuildPackage,ucode-mod-nl80211))
  187. $(eval $(call BuildPackage,ucode-mod-resolv))
  188. $(eval $(call BuildPackage,ucode-mod-rtnl))
  189. $(eval $(call BuildPackage,ucode-mod-struct))
  190. $(eval $(call BuildPackage,ucode-mod-ubus))
  191. $(eval $(call BuildPackage,ucode-mod-uci))
  192. $(eval $(call BuildPackage,ucode-mod-uloop))
  193. $(eval $(call HostBuild))