- #
- # Copyright (C) 2017-2019 Yousong Zhou <yszhou4tech@gmail.com>
- #
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
- #
-
- include $(TOPDIR)/rules.mk
-
- # Checklist when bumping versions
- #
- # - update cipher list by checking src/crypto.c:crypto_init()
- # - check if default mode has changed from being tcp_only
- #
- PKG_NAME:=shadowsocks-libev
- PKG_VERSION:=3.3.4
- PKG_RELEASE:=1
-
- PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
- PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(PKG_VERSION)
- PKG_HASH:=fce47a956fad0c30def9c71821bcec450a40d3f881548e31e66cedf262b89eb1
-
- PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
-
- PKG_LICENSE:=GPL-3.0-or-later
- PKG_LICENSE_FILES:=LICENSE
-
- PKG_FIXUP:=autoreconf
- PKG_INSTALL:=1
- PKG_USE_MIPS16:=0
- PKG_BUILD_PARALLEL:=1
- PKG_BUILD_DEPENDS:=c-ares pcre
-
- include $(INCLUDE_DIR)/package.mk
-
-
- define Package/shadowsocks-libev-config
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Web Servers/Proxies
- TITLE:=shadowsocks-libev config scripts
- URL:=https://github.com/shadowsocks/shadowsocks-libev
- endef
-
- define Package/shadowsocks-libev-config/install
- $(INSTALL_DIR) $(1)/etc/config
- $(INSTALL_DATA) ./files/shadowsocks-libev.config $(1)/etc/config/shadowsocks-libev
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/shadowsocks-libev.init $(1)/etc/init.d/shadowsocks-libev
- endef
-
-
- define Package/shadowsocks-libev/Default
- define Package/shadowsocks-libev-$(1)
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Web Servers/Proxies
- TITLE:=shadowsocks-libev $(1)
- URL:=https://github.com/shadowsocks/shadowsocks-libev
- DEPENDS:=+libev +libmbedtls +libpthread +libsodium +shadowsocks-libev-config $(DEPENDS_$(1))
- endef
-
- define Package/shadowsocks-libev-$(1)/install
- $$(INSTALL_DIR) $$(1)/usr/bin
- $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/usr/bin/$(1) $$(1)/usr/bin
- endef
-
- endef
-
- DEPENDS_ss-local = +libpcre
- DEPENDS_ss-server = +libcares +libpcre
-
- SHADOWSOCKS_COMPONENTS:=ss-local ss-redir ss-tunnel ss-server
- define shadowsocks-libev/templates
- $(foreach component,$(SHADOWSOCKS_COMPONENTS),
- $(call Package/shadowsocks-libev/Default,$(component))
- )
- endef
- $(eval $(call shadowsocks-libev/templates))
-
-
- define Package/shadowsocks-libev-ss-rules
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Web Servers/Proxies
- TITLE:=shadowsocks-libev ss-rules
- URL:=https://github.com/shadowsocks/shadowsocks-libev
- DEPENDS:=+ip +ipset +iptables-mod-tproxy +resolveip +shadowsocks-libev-ss-redir +shadowsocks-libev-config
- endef
-
- define Package/shadowsocks-libev-ss-rules/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) ./files/ss-rules $(1)/usr/bin
- $(INSTALL_DIR) $(1)/etc/uci-defaults
- $(INSTALL_DATA) ./files/firewall.ss-rules $(1)/etc
- $(INSTALL_BIN) ./files/ss-rules.defaults $(1)/etc/uci-defaults
- endef
-
- define Package/shadowsocks-libev-ss-rules/prerm
- #!/bin/sh
- s=firewall.ss_rules
- uci get "$$s" >/dev/null || exit 0
- uci batch <<-EOF
- delete $$s
- commit firewall
- EOF
- endef
-
- define Build/Prepare
- $(call Build/Prepare/Default)
- $(FIND) $(PKG_BUILD_DIR) \
- -name '*.o' \
- -o -name '*.lo' \
- -o -name '.deps' \
- -o -name '.libs' \
- | $(XARGS) rm -rvf
- endef
-
- CONFIGURE_ARGS += \
- --disable-documentation \
- --disable-silent-rules \
- --disable-assert \
- --disable-ssp \
-
- TARGET_CFLAGS += -flto
- TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
-
- $(eval $(call BuildPackage,shadowsocks-libev-config))
- $(eval $(call BuildPackage,shadowsocks-libev-ss-rules))
- $(foreach component,$(SHADOWSOCKS_COMPONENTS), \
- $(eval $(call BuildPackage,shadowsocks-libev-$(component))) \
- )
|