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.

141 lines
5.6 KiB

  1. #
  2. # Copyright (C) 2008-2016 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. # Based on the initial porting done by el1n
  8. include $(TOPDIR)/rules.mk
  9. PKG_NAME:=softethervpn
  10. PKG_VERSION:=4.25-9656
  11. PKG_VERREL:=rtm
  12. PKG_VERDATE:=2018.01.15
  13. PKG_RELEASE:=1
  14. PKG_SOURCE:=softether-src-v$(PKG_VERSION)-$(PKG_VERREL).tar.gz
  15. PKG_SOURCE_URL:=http://www.softether-download.com/files/softether/v$(PKG_VERSION)-$(PKG_VERREL)-$(PKG_VERDATE)-tree/Source_Code/
  16. PKG_HASH:=b946dec3da5833ad2be69125224784b8a8e2a4149297d0c0a907ba0e1c4535f8
  17. PKG_BUILD_DIR:=$(BUILD_DIR)/v$(PKG_VERSION)
  18. HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/v$(PKG_VERSION)
  19. PKG_LICENSE:=GPL-2.0
  20. PKG_LICENSE_FILES:=COPYING
  21. PKG_BUILD_DEPENDS:=softethervpn/host
  22. HOST_BUILD_DEPENDS:=readline/host
  23. HAMCORE_SE2:=$(STAGING_DIR_HOST)/share/softethervpn/hamcore.se2
  24. include $(INCLUDE_DIR)/nls.mk
  25. include $(INCLUDE_DIR)/package.mk
  26. include $(INCLUDE_DIR)/host-build.mk
  27. # Execute in host build directory
  28. HOST_MAKE_FLAGS += -C $(HOST_BUILD_DIR)
  29. # Select 32 or 64 bit Makefile for host build depending on host architecture
  30. HOST_MAKE_FLAGS += -f src/makefiles/linux_$(if $(shell uname -m | grep 64),64,32)bit.mak
  31. # Prevent calling upstream configure
  32. define Host/Configure
  33. endef
  34. define Host/Compile
  35. # Build hamcorebuilder using host compiler and let it generate
  36. # the hamcore.se2 archive file
  37. # CFLAGS, CPPFLAGS & LDFLAGS need to be passed with CC because they are being ingored
  38. CC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(HOST_LDFLAGS)" $(MAKE) $(HOST_MAKE_FLAGS) \
  39. src/bin/BuiltHamcoreFiles/unix/hamcore.se2
  40. endef
  41. define Host/Install
  42. $(INSTALL_DIR) $(STAGING_DIR_HOST)/share/softethervpn
  43. $(INSTALL_DATA) $(HOST_BUILD_DIR)/src/bin/BuiltHamcoreFiles/unix/hamcore.se2 $(HAMCORE_SE2)
  44. endef
  45. # Tune CFLAGS for target
  46. TARGET_CFLAGS += \
  47. $(if $(CONFIG_OPENSSL_WITH_SSL3),,-DSSL_OP_NO_SSLv3) \
  48. $(if $(filter mips mipsel,$(ARCH)),-minterlink-mips16)
  49. # Select 32 or 64 bit Makefile for target build depending on 64bit config symbol
  50. MAKE_FLAGS += \
  51. -f src/makefiles/linux_$(if $(CONFIG_ARCH_64BIT),64,32)bit.mak
  52. # Map nonstandard CCFLAGS variable to standard TARGET_CFLAGS
  53. MAKE_FLAGS += \
  54. CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS)"
  55. define Build/Configure
  56. # Fetch prebuilt hamcore.se2 from staging dir
  57. $(INSTALL_DIR) $(PKG_BUILD_DIR)/src/bin/BuiltHamcoreFiles/unix
  58. $(CP) $(HAMCORE_SE2) $(PKG_BUILD_DIR)/src/bin/BuiltHamcoreFiles/unix/hamcore.se2
  59. # Portably set hamcore.se2 modtime to one day in the future
  60. # to prevent rebuilding it
  61. perl -e 'utime(time() + 86400, time() + 86400, $$$$ARGV[0])' \
  62. $(PKG_BUILD_DIR)/src/bin/BuiltHamcoreFiles/unix/hamcore.se2
  63. endef
  64. define Package/softethervpn
  65. SECTION:=net
  66. CATEGORY:=Network
  67. SUBMENU:=VPN
  68. DEPENDS:=+libpthread +librt +libreadline +libopenssl +libncurses +kmod-tun +zlib $(ICONV_DEPENDS)
  69. TITLE:=Free Cross-platform Multi-protocol VPN server and client
  70. URL:=http://www.softether.org/
  71. MAINTAINER:=Federico Di Marco <fededim@gmail.com>
  72. endef
  73. define Package/softethervpn/description
  74. SoftEther VPN ("SoftEther" means "Software Ethernet") is one of the world's most powerful and easy-to-use multi-protocol VPN software developed as an academic
  75. project from University of Tsukuba, Japan. SoftEther VPN has strong compatibility to today's most popular VPN products among the world. It has the interoperability
  76. with OpenVPN, L2TP, IPsec, EtherIP, L2TPv3, Cisco VPN Routers and MS-SSTP VPN Clients. SoftEther VPN is the world's only VPN software which supports SSL-VPN,
  77. OpenVPN, L2TP, EtherIP, L2TPv3 and IPsec as a single VPN software. SoftEther VPN is not only an alternative VPN server to existing VPN products (OpenVPN,
  78. IPsec and MS-SSTP), but has also original strong SSL-VPN protocol to penetrate any kinds of firewalls. Ultra-optimized SSL-VPN Protocol of SoftEther VPN
  79. has very fast throughput, low latency and firewall resistance.
  80. endef
  81. define Package/softethervpn/conffiles
  82. /usr/libexec/softethervpn/vpn_server.config
  83. /usr/libexec/softethervpn/vpn_client.config
  84. /usr/libexec/softethervpn/vpn_bridge.config
  85. /usr/libexec/softethervpn/lang.config
  86. endef
  87. define Package/softethervpn/install
  88. $(INSTALL_DIR) $(1)/usr/libexec/softethervpn
  89. $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnserver/vpnserver $(1)/usr/libexec/softethervpn
  90. $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnserver/hamcore.se2 $(1)/usr/libexec/softethervpn
  91. $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnclient/vpnclient $(1)/usr/libexec/softethervpn
  92. $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnbridge/vpnbridge $(1)/usr/libexec/softethervpn
  93. $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpncmd/vpncmd $(1)/usr/libexec/softethervpn
  94. $(INSTALL_BIN) files/launcher.sh $(1)/usr/libexec/softethervpn
  95. $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_server.config
  96. $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_bridge.config
  97. $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_client.config
  98. $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/lang.config
  99. $(INSTALL_DIR) $(1)/usr/bin
  100. #$(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpnserver
  101. #$(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpnclient
  102. #$(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpnbridge
  103. $(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpncmd
  104. $(INSTALL_DIR) $(1)/etc
  105. $(INSTALL_DIR) $(1)/etc/init.d
  106. $(INSTALL_BIN) files/vpnserver.init $(1)/etc/init.d/softethervpnserver
  107. $(INSTALL_BIN) files/vpnbridge.init $(1)/etc/init.d/softethervpnbridge
  108. $(INSTALL_BIN) files/vpnclient.init $(1)/etc/init.d/softethervpnclient
  109. endef
  110. $(eval $(call BuildPackage,softethervpn))
  111. $(eval $(call HostBuild))