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.

201 lines
7.0 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.28-9669
  11. PKG_VERREL:=beta
  12. PKG_VERDATE:=2018.09.11
  13. PKG_RELEASE:=3
  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:=1e641fa227a732b3eec3fe8bdcf4d4fd2b1d0b0a5084119126c1216d2ec1b545
  17. PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/v$(PKG_VERSION)
  18. HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)/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. HOST_LDFLAGS += -Wl,-rpath="$(STAGING_DIR_HOSTPKG)/lib"
  32. # Prevent calling upstream configure
  33. define Host/Configure
  34. endef
  35. define Host/Compile
  36. # Build hamcorebuilder using host compiler and let it generate
  37. # the hamcore.se2 archive file
  38. # CFLAGS, CPPFLAGS & LDFLAGS need to be passed with CC because they are being ingored
  39. CC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(HOST_LDFLAGS)" $(MAKE) $(HOST_MAKE_FLAGS) \
  40. src/bin/BuiltHamcoreFiles/unix/hamcore.se2
  41. endef
  42. define Host/Install
  43. $(INSTALL_DIR) $(STAGING_DIR_HOST)/share/softethervpn
  44. $(INSTALL_DATA) $(HOST_BUILD_DIR)/src/bin/BuiltHamcoreFiles/unix/hamcore.se2 $(HAMCORE_SE2)
  45. endef
  46. # Tune CFLAGS for target
  47. TARGET_CFLAGS += \
  48. $(if $(CONFIG_OPENSSL_WITH_SSL3),,-DSSL_OP_NO_SSLv3) \
  49. $(if $(filter mips mipsel,$(ARCH)),-minterlink-mips16)
  50. TARGET_LDFLAGS += \
  51. -liconv
  52. # Select 32 or 64 bit Makefile for target build depending on 64bit config symbol
  53. MAKE_FLAGS += \
  54. -f src/makefiles/linux_$(if $(CONFIG_ARCH_64BIT),64,32)bit.mak
  55. # Map nonstandard CCFLAGS variable to standard TARGET_CFLAGS
  56. MAKE_FLAGS += \
  57. CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS)"
  58. define Build/Configure
  59. # Fetch prebuilt hamcore.se2 from staging dir
  60. $(INSTALL_DIR) $(PKG_BUILD_DIR)/src/bin/BuiltHamcoreFiles/unix
  61. $(CP) $(HAMCORE_SE2) $(PKG_BUILD_DIR)/src/bin/BuiltHamcoreFiles/unix/hamcore.se2
  62. # Portably set hamcore.se2 modtime to one day in the future
  63. # to prevent rebuilding it
  64. perl -e 'utime(time() + 86400, time() + 86400, $$$$ARGV[0])' \
  65. $(PKG_BUILD_DIR)/src/bin/BuiltHamcoreFiles/unix/hamcore.se2
  66. endef
  67. define Package/softethervpn/default
  68. SECTION:=net
  69. CATEGORY:=Network
  70. SUBMENU:=VPN
  71. TITLE:=Free Cross-platform Multi-protocol VPN server and client
  72. URL:=http://www.softether.org/
  73. MAINTAINER:=Federico Di Marco <fededim@gmail.com>
  74. endef
  75. define Package/softethervpn/description
  76. 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
  77. 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
  78. 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,
  79. 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,
  80. 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
  81. has very fast throughput, low latency and firewall resistance.
  82. endef
  83. define Package/softethervpn-base
  84. $(Package/softethervpn/default)
  85. DEPENDS:=+libpthread +librt +libreadline +libopenssl +libncurses +kmod-tun +zlib $(ICONV_DEPENDS)
  86. TITLE += (Base)
  87. endef
  88. define Package/softethervpn-server
  89. $(Package/softethervpn/default)
  90. DEPENDS:=+softethervpn-base
  91. TITLE += (Server)
  92. endef
  93. define Package/softethervpn-bridge
  94. $(Package/softethervpn/default)
  95. DEPENDS:=+softethervpn-base
  96. TITLE += (Bridge)
  97. endef
  98. define Package/softethervpn-client
  99. $(Package/softethervpn/default)
  100. DEPENDS:=+softethervpn-base
  101. TITLE += (Client)
  102. endef
  103. Package/softethervpn-base/description = $(Package/softethervpn/description)
  104. Package/softethervpn-server/description = $(Package/softethervpn/description)
  105. Package/softethervpn-bridge/description = $(Package/softethervpn/description)
  106. Package/softethervpn-client/description = $(Package/softethervpn/description)
  107. define Package/softethervpn-base/conffiles
  108. /usr/libexec/softethervpn/lang.config
  109. endef
  110. define Package/softethervpn-server/conffiles
  111. /usr/libexec/softethervpn/vpn_server.config
  112. endef
  113. define Package/softethervpn-client/conffiles
  114. /usr/libexec/softethervpn/vpn_client.config
  115. endef
  116. define Package/softethervpn-bridge/conffiles
  117. /usr/libexec/softethervpn/vpn_bridge.config
  118. endef
  119. define Package/softethervpn-base/install
  120. $(INSTALL_DIR) $(1)/usr/libexec/softethervpn
  121. $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnserver/hamcore.se2 $(1)/usr/libexec/softethervpn
  122. $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpncmd/vpncmd $(1)/usr/libexec/softethervpn
  123. $(INSTALL_BIN) files/launcher.sh $(1)/usr/libexec/softethervpn
  124. $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/lang.config
  125. $(INSTALL_DIR) $(1)/usr/bin
  126. $(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpncmd
  127. endef
  128. define Package/softethervpn-server/install
  129. $(INSTALL_DIR) $(1)/usr/libexec/softethervpn
  130. $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnserver/vpnserver $(1)/usr/libexec/softethervpn
  131. $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_server.config
  132. $(INSTALL_DIR) $(1)/etc
  133. $(INSTALL_DIR) $(1)/etc/init.d
  134. $(INSTALL_BIN) files/vpnserver.init $(1)/etc/init.d/softethervpnserver
  135. endef
  136. define Package/softethervpn-bridge/install
  137. $(INSTALL_DIR) $(1)/usr/libexec/softethervpn
  138. $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnbridge/vpnbridge $(1)/usr/libexec/softethervpn
  139. $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_bridge.config
  140. $(INSTALL_DIR) $(1)/etc
  141. $(INSTALL_DIR) $(1)/etc/init.d
  142. $(INSTALL_BIN) files/vpnbridge.init $(1)/etc/init.d/softethervpnbridge
  143. endef
  144. define Package/softethervpn-client/install
  145. $(INSTALL_DIR) $(1)/usr/libexec/softethervpn
  146. $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnclient/vpnclient $(1)/usr/libexec/softethervpn
  147. $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_client.config
  148. $(INSTALL_DIR) $(1)/etc
  149. $(INSTALL_DIR) $(1)/etc/init.d
  150. $(INSTALL_BIN) files/vpnclient.init $(1)/etc/init.d/softethervpnclient
  151. endef
  152. $(eval $(call BuildPackage,softethervpn-base))
  153. $(eval $(call BuildPackage,softethervpn-server))
  154. $(eval $(call BuildPackage,softethervpn-client))
  155. $(eval $(call BuildPackage,softethervpn-bridge))
  156. $(eval $(call HostBuild))