Makefile 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #
  2. # Copyright (C) 2017-2020 Yousong Zhou <[email protected]>
  3. #
  4. # Copyright (C) 2021 ImmortalWrt
  5. # <https://immortalwrt.org>
  6. #
  7. # This is free software, licensed under the GNU General Public License v2.
  8. # See /LICENSE for more information.
  9. #
  10. include $(TOPDIR)/rules.mk
  11. PKG_NAME:=shadowsocks-rust
  12. PKG_VERSION:=1.9.2
  13. PKG_RELEASE:=1
  14. PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION)
  15. PKG_SOURCE_BODY:=unknown-linux-musl
  16. PKG_SOURCE_FOOTER:=tar.xz
  17. PKG_SOURCE_URL:=https://github.com/shell-script/openwrt-shadowsocks-rust/releases/download/v$(PKG_VERSION)/
  18. ifeq ($(ARCH),aarch64)
  19. PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER)
  20. PKG_HASH:=318e0538386e52025448e7dc1e67b71bd399981e386ba0a54802ff3c13b25016
  21. else ifeq ($(ARCH),arm)
  22. # Referred to golang/golang-values.mk
  23. ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE))))
  24. ifeq ($(ARM_CPU_FEATURES),)
  25. PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER)
  26. PKG_HASH:=38d15003799d91ebecb89be61eccb1f3b31ca4e11d6d5ecfcbd367e10cc42319
  27. else ifneq ($(filter $(ARM_CPU_FEATURES),vfp vfpv2),)
  28. PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER)
  29. PKG_HASH:=e31bfbba903ac171b133b897b2a0e183833002b141db74b95d94873d32c07d49
  30. else
  31. PKG_SOURCE:=$(PKG_SOURCE_HEADER).armv7-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER)
  32. PKG_HASH:=e1ed14d86b4e7f6b88da3ff5b99431a707eb7a23f0e063ada86e85e7e84a8ec1
  33. endif
  34. else ifeq ($(ARCH),i386)
  35. ifeq ($(CONFIG_TARGET_x86_geode)$(CONFIG_TARGET_x86_legacy),y)
  36. PKG_SOURCE:=$(PKG_SOURCE_HEADER).i586-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER)
  37. PKG_HASH:=f08f6ab355495f5553e388b347f7bf70502ae3f53f3979267fcfe1dd6a7a565f
  38. else
  39. PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER)
  40. PKG_HASH:=a5021533dad53a877d6265677dea6f5a6f500f135d47327c98beeb85642180ce
  41. endif
  42. else ifeq ($(ARCH),mips)
  43. PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER)
  44. PKG_HASH:=f76de3d0c4b2e3703faabfb730d817b5b5610ec3701827282c18ca44c84f6a28
  45. else ifeq ($(ARCH),mipsel)
  46. PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER)
  47. PKG_HASH:=953d2feb430906edcb5ed6994510b3bded141ae8abb3b77dd6bfc80aac8740d1
  48. else ifeq ($(ARCH),x86_64)
  49. PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER)
  50. PKG_HASH:=adc68983961209cdf3c7a465911bdfabc52e7e08132a6dbcd0db77eaa924ec3f
  51. # Set the default value to make OpenWrt Package Checker happy
  52. else
  53. PKG_SOURCE:=dummy
  54. PKG_HASH:=dummy
  55. endif
  56. PKG_MAINTAINER:=Tianling Shen <[email protected]>
  57. PKG_LICENSE:=MIT
  58. PKG_LICENSE_FILES:=LICENSE
  59. include $(INCLUDE_DIR)/package.mk
  60. TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
  61. define Package/shadowsocks-rust/Default
  62. PKG_CONFIG_DEPENDS+=CONFIG_SHADOWSOCKS_RUST_$(1)_COMPRESS_UPX
  63. define Package/shadowsocks-rust-$(1)
  64. SECTION:=net
  65. CATEGORY:=Network
  66. SUBMENU:=Web Servers/Proxies
  67. TITLE:=shadowsocks-rust $(1)
  68. URL:=https://github.com/shadowsocks/shadowsocks-rust
  69. DEPENDS:=@(aarch64||arm||i386||mips||mipsel||x86_64) @USE_MUSL
  70. endef
  71. define Package/shadowsocks-rust-$(1)/config
  72. config SHADOWSOCKS_RUST_$(1)_COMPRESS_UPX
  73. bool "Compress $(1) with UPX"
  74. default y
  75. endef
  76. define Package/shadowsocks-rust-$(1)/install
  77. $$(INSTALL_DIR) $$(1)/usr/bin
  78. $$(INSTALL_BIN) $$(PKG_BUILD_DIR)/$(1) $$(1)/usr/bin
  79. endef
  80. endef
  81. PKG_CONFIG_DEPENDS:=
  82. SHADOWSOCKS_COMPONENTS:=sslocal ssmanager ssserver ssurl
  83. define shadowsocks-rust/templates
  84. $(foreach component,$(SHADOWSOCKS_COMPONENTS),
  85. $(call Package/shadowsocks-rust/Default,$(component))
  86. )
  87. endef
  88. $(eval $(call shadowsocks-rust/templates))
  89. define Build/Compile
  90. $(foreach component,$(SHADOWSOCKS_COMPONENTS),
  91. ifneq ($(CONFIG_SHADOWSOCKS_RUST_$(component)_COMPRESS_UPX),)
  92. $(STAGING_DIR_HOST)/bin/upx --lzma --best $(PKG_BUILD_DIR)/$(component)
  93. endif
  94. )
  95. endef
  96. $(foreach component,$(SHADOWSOCKS_COMPONENTS), \
  97. $(eval $(call BuildPackage,shadowsocks-rust-$(component))) \
  98. )