Makefile 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  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-01-07
  13. PKG_SOURCE_VERSION:=1e4d20932646f90523d21ea358c72901e3ee689e
  14. PKG_MIRROR_HASH:=8c43b9a0a80c3de92961caad65c934bd3989e6f7f9389f676d91e2e926c9e4a6
  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. SECTION:=utils
  35. CATEGORY:=Utilities
  36. TITLE:=ucode - Tiny scripting and templating language
  37. endef
  38. define Package/ucode
  39. $(Package/ucode/default)
  40. DEPENDS:=+libucode
  41. endef
  42. define Package/ucode/description
  43. ucode is a tiny script interpreter featuring an ECMAScript oriented
  44. script language and Jinja-inspired templating.
  45. endef
  46. define Package/libucode
  47. $(Package/ucode/default)
  48. TITLE+= - runtime library
  49. ABI_VERSION:=$(PKG_ABI_VERSION)
  50. DEPENDS:=+libjson-c
  51. endef
  52. define Package/libucode/description
  53. The libucode package provides the shared runtime library for the ucode interpreter.
  54. endef
  55. define Package/ucode-mod-fs
  56. $(Package/ucode/default)
  57. TITLE+= (filesystem module)
  58. DEPENDS:=ucode
  59. endef
  60. define Package/ucode-mod-fs/description
  61. The filesystem plugin module allows interaction with the local file system.
  62. endef
  63. define Package/ucode-mod-math
  64. $(Package/ucode/default)
  65. TITLE+= (math module)
  66. DEPENDS:=ucode
  67. endef
  68. define Package/ucode-mod-math/description
  69. The math plugin provides access to various <math.h> procedures.
  70. endef
  71. define Package/ucode-mod-nl80211
  72. $(Package/ucode/default)
  73. TITLE+= (nl80211 module)
  74. DEPENDS:=ucode +libnl-tiny
  75. endef
  76. define Package/ucode-mod-nl80211/description
  77. The nl80211 plugin provides access to the Linux wireless 802.11 netlink API.
  78. endef
  79. define Package/ucode-mod-resolv
  80. $(Package/ucode/default)
  81. TITLE+= (resolv module)
  82. DEPENDS:=ucode
  83. endef
  84. define Package/ucode-mod-resolv/description
  85. The resolv plugin implements simple DNS resolving.
  86. endef
  87. define Package/ucode-mod-rtnl
  88. $(Package/ucode/default)
  89. TITLE+= (rtnl module)
  90. DEPENDS:=ucode +libnl-tiny
  91. endef
  92. define Package/ucode-mod-rtnl/description
  93. The rtnl plugin provides access to the Linux routing netlink API.
  94. endef
  95. define Package/ucode-mod-struct
  96. $(Package/ucode/default)
  97. TITLE+= (struct module)
  98. DEPENDS:=ucode
  99. endef
  100. define Package/ucode-mod-struct/description
  101. The struct plugin implemnts Python 3 compatible struct.pack/unpack functionality.
  102. endef
  103. define Package/ucode-mod-ubus
  104. $(Package/ucode/default)
  105. TITLE+= (ubus module)
  106. DEPENDS:=ucode +libubus +libblobmsg-json
  107. endef
  108. define Package/ucode-mod-ubus/description
  109. The ubus module allows ucode template scripts to enumerate and invoke ubus
  110. procedures.
  111. endef
  112. define Package/ucode-mod-uci
  113. $(Package/ucode/default)
  114. TITLE+= (uci module)
  115. DEPENDS:=ucode +libuci
  116. endef
  117. define Package/ucode-mod-uci/description
  118. The uci module allows templates to read and modify uci configuration.
  119. endef
  120. define Package/ucode-mod-uloop
  121. $(Package/ucode/default)
  122. TITLE+= (uloop module)
  123. DEPENDS:=ucode +libubox
  124. endef
  125. define Package/ucode-mod-uloop/description
  126. The uloop module allows ucode scripts to interact with OpenWrt uloop event
  127. loop implementation.
  128. endef
  129. define Build/InstallDev
  130. $(INSTALL_DIR) $(1)/usr/lib $(1)/usr/include/ucode
  131. $(CP) $(PKG_INSTALL_DIR)/usr/include/ucode/*.h $(1)/usr/include/ucode/
  132. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libucode.so* $(1)/usr/lib/
  133. endef
  134. define Package/ucode/install
  135. $(INSTALL_DIR) $(1)/usr/bin
  136. $(CP) $(PKG_INSTALL_DIR)/usr/bin/u* $(1)/usr/bin/
  137. endef
  138. define Package/libucode/install
  139. $(INSTALL_DIR) $(1)/usr/lib
  140. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libucode.so.* $(1)/usr/lib/
  141. endef
  142. define Package/ucode-mod-fs/install
  143. $(INSTALL_DIR) $(1)/usr/lib/ucode
  144. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/fs.so $(1)/usr/lib/ucode/
  145. endef
  146. define Package/ucode-mod-math/install
  147. $(INSTALL_DIR) $(1)/usr/lib/ucode
  148. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/math.so $(1)/usr/lib/ucode/
  149. endef
  150. define Package/ucode-mod-nl80211/install
  151. $(INSTALL_DIR) $(1)/usr/lib/ucode
  152. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/nl80211.so $(1)/usr/lib/ucode/
  153. endef
  154. define Package/ucode-mod-resolv/install
  155. $(INSTALL_DIR) $(1)/usr/lib/ucode
  156. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/resolv.so $(1)/usr/lib/ucode/
  157. endef
  158. define Package/ucode-mod-rtnl/install
  159. $(INSTALL_DIR) $(1)/usr/lib/ucode
  160. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/rtnl.so $(1)/usr/lib/ucode/
  161. endef
  162. define Package/ucode-mod-struct/install
  163. $(INSTALL_DIR) $(1)/usr/lib/ucode
  164. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/struct.so $(1)/usr/lib/ucode/
  165. endef
  166. define Package/ucode-mod-ubus/install
  167. $(INSTALL_DIR) $(1)/usr/lib/ucode
  168. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/ubus.so $(1)/usr/lib/ucode/
  169. endef
  170. define Package/ucode-mod-uci/install
  171. $(INSTALL_DIR) $(1)/usr/lib/ucode
  172. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/uci.so $(1)/usr/lib/ucode/
  173. endef
  174. define Package/ucode-mod-uloop/install
  175. $(INSTALL_DIR) $(1)/usr/lib/ucode
  176. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/uloop.so $(1)/usr/lib/ucode/
  177. endef
  178. $(eval $(call BuildPackage,libucode))
  179. $(eval $(call BuildPackage,ucode))
  180. $(eval $(call BuildPackage,ucode-mod-fs))
  181. $(eval $(call BuildPackage,ucode-mod-math))
  182. $(eval $(call BuildPackage,ucode-mod-nl80211))
  183. $(eval $(call BuildPackage,ucode-mod-resolv))
  184. $(eval $(call BuildPackage,ucode-mod-rtnl))
  185. $(eval $(call BuildPackage,ucode-mod-struct))
  186. $(eval $(call BuildPackage,ucode-mod-ubus))
  187. $(eval $(call BuildPackage,ucode-mod-uci))
  188. $(eval $(call BuildPackage,ucode-mod-uloop))
  189. $(eval $(call HostBuild))