You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

439 lines
16 KiB

  1. include $(TOPDIR)/rules.mk
  2. PKG_NAME:=gnunet
  3. PKG_VERSION:=0.13.3
  4. PKG_RELEASE:=3
  5. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  6. PKG_SOURCE_URL:=@GNU/gnunet
  7. PKG_HASH:=318e06c4134d1a8ce3b4385d82b11316eaaeb9a4dbc5d4b646453dfc53199296
  8. PKG_LICENSE:=AGPL-3.0
  9. PKG_LICENSE_FILES:=COPYING
  10. PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
  11. PKG_CPE_ID:=cpe:/a:gnunet:gnunet
  12. PKG_BUILD_PARALLEL:=1
  13. PKG_FIXUP:=gettext-version
  14. PKG_INSTALL:=1
  15. include $(INCLUDE_DIR)/package.mk
  16. include $(INCLUDE_DIR)/nls.mk
  17. CONFIGURE_ARGS+= \
  18. --with-libiconv-prefix="$(ICONV_PREFIX)" \
  19. --with-libintl-prefix="$(INTL_PREFIX)" \
  20. --with-ltdl \
  21. $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mysql),--with-mysql="$(STAGING_DIR)/usr",--without-mysql) \
  22. $(if $(CONFIG_PACKAGE_$(PKG_NAME)-pgsql),--with-postgresql="$(STAGING_DIR)/usr/bin/pg_config",--without-postgresql) \
  23. $(if $(CONFIG_PACKAGE_libsqlite3),--with-sqlite="$(STAGING_DIR)/usr",--without-sqlite) \
  24. --enable-testing \
  25. --disable-testruns \
  26. --disable-documentation \
  27. --enable-experimental \
  28. --with-extractor=$(STAGING_DIR)/usr \
  29. --with-gnutls=$(STAGING_DIR)/usr \
  30. $(if $(CONFIG_PACKAGE_$(PKG_NAME)-transport-bluetooth),--with-libbluetooth="$(STAGING_DIR)/usr",--without-libbluetooth) \
  31. --with-libgnurl=$(STAGING_DIR)/usr \
  32. --with-libogg=$(STAGING_DIR)/usr \
  33. --with-libopus=$(STAGING_DIR)/usr \
  34. --with-libpulse=$(STAGING_DIR)/usr \
  35. --with-libunistring-prefix=$(STAGING_DIR)/usr \
  36. --with-microhttpd=$(STAGING_DIR)/usr
  37. # upstream now provides --with-pulseaudio but doesn't detect rpath
  38. TARGET_LDFLAGS+= -Wl,-rpath-link=$(STAGING_DIR)/usr/lib/pulseaudio
  39. define Package/gnunet/Default
  40. SECTION:=net
  41. CATEGORY:=Network
  42. TITLE:=GNUnet
  43. URL:=https://www.gnunet.org/
  44. endef
  45. define Package/gnunet
  46. $(call Package/gnunet/Default)
  47. TITLE+= - a peer-to-peer framework focusing on security
  48. DEPENDS:=+libatomic +libgcrypt +libgpg-error +libidn2 +libltdl +libsodium \
  49. +libunistring +librt +zlib $(ICONV_DEPENDS) $(INTL_DEPENDS)
  50. USERID:=gnunet=958:gnunet=958
  51. MENU:=1
  52. FILE_MODES:=/usr/lib/gnunet/libexec/gnunet-helper-nat-server:root:gnunet:4750 \
  53. /usr/lib/gnunet/libexec/gnunet-helper-nat-client:root:gnunet:4750
  54. endef
  55. define Package/gnunet/description
  56. GNUnet is a peer-to-peer framework focusing on security. The first and
  57. primary application for GNUnet is anonymous file-sharing. GNUnet is
  58. currently developed by a worldwide group of independent free software
  59. developers. GNUnet is a GNU package (http://www.gnu.org/).
  60. This is an ALPHA release. There are known and significant bugs as
  61. well as many missing features in this release.
  62. This package provides the core components of GNUnet including the
  63. CADET routing engine, a DHT implementation and basic transports as
  64. well as their helpers.
  65. endef
  66. define BuildComponent
  67. PKG_CONFIG_DEPENDS+=CONFIG_PACKAGE_$(PKG_NAME)-$(1)
  68. define Package/gnunet-$(1)
  69. $$(call Package/gnunet/Default)
  70. TITLE+= $(2)
  71. DEPENDS:=gnunet $(DEPENDS_$(1))
  72. $(if $(3),DEFAULT:=y if PACKAGE_gnunet)
  73. $(if $(USERID_$(1)),USERID:=$(USERID_$(1)))
  74. $(if $(CONFLICTS_$(1)),CONFLICTS:=$(CONFLICTS_$(1)))
  75. $(if $(FILE_MODES_$(1)),FILE_MODES:=$(FILE_MODES_$(1)))
  76. endef
  77. define Package/gnunet-$(1)/install
  78. ( if [ "$(BIN_$(1))" ]; then \
  79. $(INSTALL_DIR) $$(1)/usr/bin ; \
  80. for bin in $(BIN_$(1)); do \
  81. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gnunet-$$$$$$$$bin $$(1)/usr/bin/ ; \
  82. done \
  83. fi )
  84. ( if [ "$(LIB_$(1))" ]; then \
  85. $(INSTALL_DIR) $$(1)/usr/lib ; \
  86. for lib in $(LIB_$(1)); do \
  87. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgnunet$$$$$$$$lib.so* $$(1)/usr/lib/ ; \
  88. done \
  89. fi )
  90. ( if [ "$(PLUGIN_$(1))" ]; then \
  91. $(INSTALL_DIR) $$(1)/usr/lib/gnunet ; \
  92. for plug in $(PLUGIN_$(1)); do \
  93. $(CP) $(PKG_INSTALL_DIR)/usr/lib/gnunet/libgnunet_plugin_$$$$$$$$plug*.so $$(1)/usr/lib/gnunet ; \
  94. done \
  95. fi )
  96. ( if [ "$(LIBEXEC_$(1))" ]; then \
  97. $(INSTALL_DIR) $$(1)/usr/lib/gnunet/libexec ; \
  98. for lex in $(LIBEXEC_$(1)); do \
  99. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/gnunet/libexec/gnunet-$$$$$$$$lex $$(1)/usr/lib/gnunet/libexec ; \
  100. done \
  101. fi )
  102. ( if [ "$(CONF_$(1))" ]; then \
  103. $(INSTALL_DIR) $$(1)/usr/share/gnunet/config.d ; \
  104. for conf in $(CONF_$(1)); do \
  105. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/gnunet/config.d/$$$$$$$$conf.conf $$(1)/usr/share/gnunet/config.d ; \
  106. done \
  107. fi )
  108. ( if [ -e ./files/gnunet-$(1).defaults ]; then \
  109. $(INSTALL_DIR) $$(1)/etc/uci-defaults ; \
  110. $(INSTALL_BIN) ./files/gnunet-$(1).defaults $$(1)/etc/uci-defaults/gnunet-$(1) ; \
  111. fi )
  112. endef
  113. $$(eval $$(call BuildPackage,gnunet-$(1)))
  114. endef
  115. define Package/gnunet/install
  116. $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib/gnunet/libexec
  117. $(INSTALL_DIR) $(1)/usr/share/gnunet/config.d $(1)/usr/share/gnunet/hellos
  118. ( for bin in arm ats cadet core config ecc identity nat nat-auto nat-server nse \
  119. peerinfo peerstore revocation scalarproduct scrypt statistics transport uri; do \
  120. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gnunet-$$$$bin $(1)/usr/bin/ ; \
  121. done )
  122. ( for lib in arm ats block blockgroup cadet \
  123. core datacache dht dns fragmentation friends hello \
  124. identity natauto natnew nse nt peerinfo peerstore regexblock regex revocation \
  125. scalarproduct set seti setu statistics transport transportapplication \
  126. transportcommunicator transportcore transportmonitor util; do \
  127. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgnunet$$$$lib.so* $(1)/usr/lib/ ; \
  128. done )
  129. ( for plug in ats_proportional block_dht block_regex block_revocation transport_unix; do \
  130. $(CP) $(PKG_INSTALL_DIR)/usr/lib/gnunet/libgnunet_plugin_$$$$plug*.so $(1)/usr/lib/gnunet ; \
  131. done )
  132. ( for lex in daemon-topology helper-nat-client \
  133. helper-nat-server service-arm service-ats service-ats-new service-cadet \
  134. service-core service-dht service-identity service-nat service-nat-auto \
  135. service-nse service-peerinfo service-peerstore service-regex \
  136. service-revocation service-scalarproduct-alice \
  137. service-scalarproduct-bob service-scalarproduct-ecc-alice \
  138. service-scalarproduct-ecc-bob service-set service-seti service-setu service-statistics \
  139. service-transport timeout; do \
  140. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/gnunet/libexec/gnunet-$$$$lex $(1)/usr/lib/gnunet/libexec ; \
  141. done )
  142. ( for conf in arm ats cadet communicator-unix core datacache dht identity \
  143. nat nat-auto nse peerinfo peerstore regex revocation \
  144. scalarproduct set seti setu statistics topology transport util; do \
  145. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/gnunet/config.d/$$$$conf.conf $(1)/usr/share/gnunet/config.d ; \
  146. done )
  147. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/gnunet/hellos/* $(1)/usr/share/gnunet/hellos
  148. $(INSTALL_DIR) $(1)/etc/init.d
  149. $(INSTALL_BIN) ./files/gnunet.init $(1)/etc/init.d/gnunet
  150. $(INSTALL_DIR) $(1)/lib/upgrade/keep.d
  151. $(INSTALL_DATA) ./files/gnunet.upgrade $(1)/lib/upgrade/keep.d/gnunet
  152. $(INSTALL_DIR) $(1)/etc/uci-defaults
  153. $(INSTALL_BIN) ./files/gnunet.defaults $(1)/etc/uci-defaults/gnunet
  154. $(INSTALL_DIR) $(1)/lib/netifd/proto
  155. $(INSTALL_BIN) ./files/gnunet-proto.sh $(1)/lib/netifd/proto/gnunet.sh
  156. endef
  157. define Build/InstallDev
  158. $(INSTALL_DIR) $(1)/usr/include/gnunet $(1)/usr/lib/pkgconfig
  159. $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{la,so}* $(1)/usr/lib/
  160. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig
  161. $(CP) $(PKG_INSTALL_DIR)/usr/include/gnunet/*.h $(1)/usr/include/gnunet
  162. endef
  163. BIN_abd:=abd
  164. LIB_abd:=abd
  165. PLUGIN_abd:=gnsrecord_abd
  166. LIBEXEC_abd:=service-abd
  167. CONF_abd:=abd
  168. DEPENDS_abd:=+gnunet-gns
  169. BIN_auction:=auction-create auction-info auction-join
  170. LIBEXEC_auction:=service-auction
  171. CONF_auction:=auction
  172. DEPENDS_auction:=+gnunet-reclaim +jansson
  173. DEPENDS_conversation:=+gnunet-gns +libgst1app +libgst1audio +libgstreamer1 +glib2 +pulseaudio-daemon +libopus +libogg
  174. BIN_conversation:=conversation conversation-test
  175. LIB_conversation:=conversation microphone speaker
  176. PLUGIN_conversation:=gnsrecord_conversation
  177. LIBEXEC_conversation:=helper-audio-playback helper-audio-record service-conversation
  178. CONF_conversation:=conversation
  179. BIN_dht-cli:=dht-get dht-put dht-monitor
  180. PLUGIN_dht-cli:=block_test
  181. DEPENDS_curl:=+libgnurl +jansson
  182. LIB_curl:=curl
  183. DEPENDS_hostlist:=+libmicrohttpd-ssl +gnunet-curl +ca-certificates
  184. LIBEXEC_hostlist:=daemon-hostlist
  185. CONF_hostlist:=hostlist
  186. DEPENDS_transport-bluetooth:=+bluez-libs
  187. PLUGIN_transport-bluetooth:=transport_bluetooth
  188. LIBEXEC_transport-bluetooth:=helper-transport-bluetooth
  189. FILE_MODES_transport-bluetooth:=/usr/lib/gnunet/libexec/gnunet-helper-transport-bluetooth:root:gnunet:4750
  190. DEPENDS_transport-http_client:=+gnunet-curl +ca-certificates
  191. PLUGIN_transport-http_client:=transport_http_client transport_https_client
  192. DEPENDS_transport-http_server:=+libmicrohttpd-ssl
  193. PLUGIN_transport-http_server:=transport_http_server transport_https_server
  194. PLUGIN_transport-tcp:=transport_tcp
  195. PLUGIN_transport-udp:=transport_udp
  196. PLUGIN_transport-wlan:=transport_wlan
  197. LIBEXEC_transport-wlan:=helper-transport-wlan
  198. FILE_MODES_transport-wlan:=/usr/lib/gnunet/libexec/gnunet-helper-transport-wlan:root:gnunet:4750
  199. # BIN_dv:=dv
  200. LIB_dv:=dv
  201. PLUGIN_dv:=transport_dv
  202. LIBEXEC_dv:=service-dv
  203. CONF_dv:=dv
  204. DEPENDS_fs:=+gnunet-datastore +libextractor
  205. BIN_fs:=auto-share directory download fs publish unindex search
  206. LIB_fs:=fs
  207. PLUGIN_fs:=block_fs
  208. LIBEXEC_fs:=helper-fs-publish service-fs
  209. CONF_fs:=fs
  210. DEPENDS_gns:=+gnunet-vpn +iptables-mod-extra
  211. USERID_gns:=:gnunetdns=452
  212. BIN_gns:=gns gns-import.sh namecache namestore resolver zoneimport
  213. LIB_gns:=gns gnsrecord namecache namestore
  214. PLUGIN_gns:=block_dns block_gns gnsrecord_conversation gnsrecord_dns gnsrecord_gns
  215. LIBEXEC_gns:=dns2gns helper-dns service-dns service-gns service-namecache service-namestore service-resolver service-zonemaster
  216. CONF_gns:=dns gns namecache namestore resolver zonemaster
  217. FILE_MODES_gns:=/usr/lib/gnunet/libexec/gnunet-helper-dns:root:gnunetdns:4750 /usr/lib/gnunet/libexec/gnunet-service-dns:gnunet:gnunetdns:2750
  218. DEPENDS_namestore-fcfsd:=+gnunet-gns +libmicrohttpd-ssl
  219. LIBEXEC_namestore-fcfsd:=namestore-fcfsd
  220. DEPENDS_gns-proxy:=+gnunet-gns +gnunet-curl +libmicrohttpd-ssl
  221. LIBEXEC_gns-proxy:=gns-proxy
  222. DEPENDS_datastore:=+gnunet-gns
  223. BIN_datastore:=datastore
  224. LIB_datastore:=datastore
  225. LIBEXEC_datastore:=service-datastore
  226. CONF_datastore:=datastore
  227. DEPENDS_reclaim:=+gnunet-gns +gnunet-sqlite +libpbc +libgabe +jansson
  228. BIN_reclaim:=reclaim
  229. LIB_reclaim:=consensus abe reclaim reclaimattribute secretsharing
  230. LIBEXEC_reclaim:=service-consensus service-reclaim service-secretsharing
  231. CONF_reclaim:=consensus reclaim secretsharing
  232. PLUGIN_reclaim:=block_consensus gnsrecord_reclaim reclaim_credential_jwt reclaim_attribute_basic
  233. DEPENDS_rest:=+gnunet-gns +gnunet-reclaim +libmicrohttpd-ssl +jansson
  234. LIB_rest:=rest json
  235. PLUGIN_rest:=rest_config rest_copying rest_gns rest_identity rest_namestore rest_peerinfo rest_openid_connect rest_reclaim
  236. LIBEXEC_rest:=rest-server
  237. CONF_rest:=rest
  238. BIN_rps:=rps
  239. LIB_rps:=rps
  240. LIBEXEC_rps:=service-rps
  241. CONF_rps:=rps
  242. PLUGIN_dhtcache-heap:=datacache_heap
  243. CONFLICTS_dhtcache-heap:=gnunet-dhtcache-pgsql gnunet-dhtcache-sqlite
  244. DEPENDS_gns-flat:=+gnunet-gns
  245. PLUGIN_gns-flat:=namecache_flat namestore_flat
  246. PLUGIN_peerstore-flat:=peerstore_flat
  247. DEPENDS_fs-heap:=+gnunet-datastore
  248. PLUGIN_fs-heap:=datastore_heap
  249. CONFLICTS_fs-heap:=gnunet-fs-mysql gnunet-fs-pgsql gnunet-fs-sqlite
  250. DEPENDS_mysql:=+libmysqlclient
  251. LIB_mysql:=mysql my
  252. DEPENDS_fs-mysql:=+gnunet-mysql +gnunet-datastore
  253. PLUGIN_fs-mysql:=datastore_mysql
  254. CONFLICTS_fs-mysql:=gnunet-fs-pgsql gnunet-fs-sqlite
  255. DEPENDS_pgsql:=+libpq
  256. LIB_pgsql:=pq
  257. DEPENDS_dhtcache-pgsql:=+gnunet-pgsql
  258. PLUGIN_dhtcache-pgsql:=datacache_postgres
  259. CONFLICTS_dhtcache-pgsql:=gnunet-dhtcache-sqlite
  260. DEPENDS_fs-pgsql:=+gnunet-pgsql +gnunet-datastore
  261. PLUGIN_fs-pgsql:=datastore_postgres
  262. CONFLICTS_fs-pgsql:=gnunet-fs-sqlite
  263. DEPENDS_gns-pgsql:=+gnunet-pgsql +gnunet-gns
  264. PLUGIN_gns-pgsql:=namecache_postgres namestore_postgres
  265. CONFLICTS_gns-pgsql:=gnunet-gns-sqlite gnunet-gns-flat
  266. DEPENDS_sqlite:=+libsqlite3
  267. LIB_sqlite:=sq
  268. DEPENDS_gns-sqlite:=+gnunet-gns +gnunet-sqlite
  269. PLUGIN_gns-sqlite:=namecache_sqlite namestore_sqlite
  270. CONFLICTS_gns-sqlite:=gnunet-gns-flat
  271. DEPENDS_peerstore-sqlite:=+gnunet-sqlite
  272. PLUGIN_peerstore-sqlite:=peerstore_sqlite
  273. CONFLICTS_peerstore-sqlite:=gnunet-peerstore-flat
  274. DEPENDS_dhtcache-sqlite:=+gnunet-sqlite
  275. PLUGIN_dhtcache-sqlite:=datacache_sqlite
  276. DEPENDS_fs-sqlite:=+gnunet-datastore +gnunet-sqlite
  277. PLUGIN_fs-sqlite:=datastore_sqlite
  278. DEPENDS_utils:=+certtool +openssl-util
  279. BIN_utils:=gns-proxy-setup-ca transport-certificate-creation
  280. DEPENDS_vpn:=+kmod-tun +iptables +firewall
  281. BIN_vpn:=vpn
  282. FILE_MODES_vpn:=/usr/lib/gnunet/libexec/gnunet-helper-exit:root:gnunet:4750 /usr/lib/gnunet/libexec/gnunet-helper-vpn:root:gnunet:4750
  283. LIB_vpn:=dnsstub tun vpn
  284. LIBEXEC_vpn:=daemon-exit daemon-pt helper-exit helper-vpn service-vpn
  285. CONF_vpn:=exit pt vpn
  286. define Package/gnunet-gns/prerm
  287. #!/bin/sh
  288. uci -q batch <<EOF
  289. del network.gnunetdns
  290. del network.gndnsrtt
  291. del network.gndnsrl
  292. commit network
  293. del firewall.gnunetdns
  294. del firewall.gndnsrl
  295. del firewall.gndnsrl2
  296. commit firewall
  297. EOF
  298. endef
  299. define Package/gnunet-vpn/prerm
  300. #!/bin/sh
  301. uci -q batch <<EOF
  302. del network.gnunetvpn
  303. del network.gnunetexit
  304. commit network
  305. del firewall.gnunetvpn
  306. del firewall.gnunetexit
  307. del firewall.gnexitfwd
  308. commit firewall
  309. EOF
  310. endef
  311. define PostInstFixSUIDPerms
  312. define Package/$(1)/postinst
  313. #!/bin/sh
  314. [ -z "$IPKG_INSTROOT" ] || exit 0
  315. [ -e /usr/share/gnunet/.permfix ] && rm /usr/share/gnunet/.permfix || exit 0
  316. endef
  317. endef
  318. $(eval $(call PostInstFixSUIDPerms,gnunet))
  319. $(eval $(call PostInstFixSUIDPerms,gnunet-gns))
  320. $(eval $(call PostInstFixSUIDPerms,gnunet-transport-bluetooth))
  321. $(eval $(call PostInstFixSUIDPerms,gnunet-transport-wlan))
  322. $(eval $(call PostInstFixSUIDPerms,gnunet-vpn))
  323. $(eval $(call BuildPackage,gnunet))
  324. $(eval $(call BuildComponent,abd,credential service components,))
  325. $(eval $(call BuildComponent,auction,auction components,))
  326. $(eval $(call BuildComponent,conversation,conversation component,))
  327. $(eval $(call BuildComponent,curl,cURL wrapper component,))
  328. $(eval $(call BuildComponent,datastore,data storage components,))
  329. $(eval $(call BuildComponent,dht-cli,DHT command line clients,))
  330. # $(eval $(call BuildComponent,dv,distance-vector routing component,y))
  331. $(eval $(call BuildComponent,fs,file-sharing components,))
  332. $(eval $(call BuildComponent,gns,name resolution components,y))
  333. $(eval $(call BuildComponent,gns-proxy,gns-proxy component,))
  334. $(eval $(call BuildComponent,hostlist,HTTP bootstrap hostlist client and server,y))
  335. $(eval $(call BuildComponent,reclaim,reclaim identity-provider subsystem,))
  336. $(eval $(call BuildComponent,rest,REST interface,))
  337. $(eval $(call BuildComponent,rps,RPS routing component,y))
  338. $(eval $(call BuildComponent,namestore-fcfsd,first-come-first-serve registration server,))
  339. $(eval $(call BuildComponent,dhtcache-heap,heap-based dhtcache plugin,y))
  340. $(eval $(call BuildComponent,fs-heap,heap-based filesharing plugin,))
  341. $(eval $(call BuildComponent,gns-flat,flat storage GNS plugins,y))
  342. $(eval $(call BuildComponent,peerstore-flat,flat storage peerstore plugin,))
  343. $(eval $(call BuildComponent,mysql,mySQL backend,))
  344. $(eval $(call BuildComponent,fs-mysql,mySQL filesharing plugins,))
  345. $(eval $(call BuildComponent,pgsql,PostgreSQL backend,))
  346. $(eval $(call BuildComponent,dhtcache-pgsql,PostgreSQL dhtcache plugin,))
  347. $(eval $(call BuildComponent,fs-pgsql,PostgreSQL filesharing plugin,))
  348. $(eval $(call BuildComponent,gns-pgsql,PostgreSQL GNS plugins,))
  349. $(eval $(call BuildComponent,sqlite,libsqlite3 backend,))
  350. $(eval $(call BuildComponent,dhtcache-sqlite,libsqlite3 dhtcache plugin,))
  351. $(eval $(call BuildComponent,fs-sqlite,libsqlite3 filesharing plugin,))
  352. $(eval $(call BuildComponent,gns-sqlite,libsqlite3 gns plugins,))
  353. $(eval $(call BuildComponent,peerstore-sqlite,libsqlite3 peerstore plugin,))
  354. $(eval $(call BuildComponent,transport-bluetooth,bluetooth transport,))
  355. $(eval $(call BuildComponent,transport-http_client,HTTP/HTTPS client transport,y))
  356. $(eval $(call BuildComponent,transport-http_server,HTTP/HTTPS server transport,))
  357. $(eval $(call BuildComponent,transport-tcp,TCP transport,y))
  358. $(eval $(call BuildComponent,transport-udp,UDP transport,y))
  359. $(eval $(call BuildComponent,transport-wlan,WLAN transport,y))
  360. $(eval $(call BuildComponent,utils,administration utililties,))
  361. $(eval $(call BuildComponent,vpn,vpn components,y))