2 # Copyright (C) 2008-2016 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 # Based on the initial porting done by el1n
9 include $(TOPDIR
)/rules.mk
11 PKG_NAME
:=softethervpn
12 PKG_VERSION
:=4.22-9634
14 PKG_VERDATE
:=2016.11.27
17 PKG_SOURCE
:=softether-src-v
$(PKG_VERSION
)-$(PKG_VERREL
).
tar.gz
18 PKG_SOURCE_URL
:=http
://www.softether-download.com
/files
/softether
/v
$(PKG_VERSION
)-$(PKG_VERREL
)-$(PKG_VERDATE
)-tree
/Source_Code
/
19 PKG_HASH
:=a37c6edeb7076189382fe2cbeb7c02806b76c13bb64e40bd6a5334fdf47f76c8
21 PKG_BUILD_DIR
:=$(BUILD_DIR
)/v
$(PKG_VERSION
)
22 HOST_BUILD_DIR
:=$(BUILD_DIR_HOST
)/v
$(PKG_VERSION
)
25 PKG_LICENSE_FILES
:=COPYING
27 PKG_BUILD_DEPENDS
:=softethervpn
/host
29 HAMCORE_SE2
:=$(STAGING_DIR_HOST
)/share
/softethervpn
/hamcore.se2
31 include $(INCLUDE_DIR
)/nls.mk
32 include $(INCLUDE_DIR
)/package.mk
33 include $(INCLUDE_DIR
)/host-build.mk
36 # Override CC to add fake libreadline to linker search path
37 HOSTCC
+= -L.
/src
/readline
39 # Add defines to turn add_history() and readline() calls into no-ops
40 HOSTCC
+= -D
'add_history(x)' -D
'readline(x)=\"\"'
42 # Execute in host build directory
43 HOST_MAKE_FLAGS
+= -C
$(HOST_BUILD_DIR
)
45 # Select 32 or 64 bit Makefile for host build depending on host architecture
46 HOST_MAKE_FLAGS
+= -f src
/makefiles
/linux_
$(if
$(shell uname
-m | grep
64),64,32)bit.mak
48 # Prevent calling upstream configure
53 # Prepare fake readline headers and library
54 mkdir
-p
$(HOST_BUILD_DIR
)/src
/readline
55 touch
$(HOST_BUILD_DIR
)/src
/readline
/readline.h
56 touch
$(HOST_BUILD_DIR
)/src
/readline
/history.h
57 ar rcs
$(HOST_BUILD_DIR
)/src
/readline
/libreadline.a
59 # Build hamcorebuilder using host compiler and let it generate
60 # the hamcore.se2 archive file
61 CC
="$(HOSTCC)" $(MAKE
) $(HOST_MAKE_FLAGS
) \
62 src
/bin
/BuiltHamcoreFiles
/unix
/hamcore.se2
66 $(INSTALL_DIR
) $(STAGING_DIR_HOST
)/share
/softethervpn
67 $(INSTALL_DATA
) $(HOST_BUILD_DIR
)/src
/bin
/BuiltHamcoreFiles
/unix
/hamcore.se2
$(HAMCORE_SE2
)
71 # Tune CFLAGS for target
73 $(if
$(CONFIG_OPENSSL_WITH_SSL3
),,-DSSL_OP_NO_SSLv3
) \
74 $(if
$(filter mips mipsel
,$(ARCH
)),-minterlink-mips16
)
76 # Select 32 or 64 bit Makefile for target build depending on 64bit config symbol
78 -f src
/makefiles
/linux_
$(if
$(CONFIG_ARCH_64BIT
),64,32)bit.mak
80 # Map nonstandard CCFLAGS variable to standard TARGET_CFLAGS
82 CC
="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS)"
84 define Build
/Configure
85 # Fetch prebuilt hamcore.se2 from staging dir
86 $(INSTALL_DIR
) $(PKG_BUILD_DIR
)/src
/bin
/BuiltHamcoreFiles
/unix
87 $(CP
) $(HAMCORE_SE2
) $(PKG_BUILD_DIR
)/src
/bin
/BuiltHamcoreFiles
/unix
/hamcore.se2
89 # Portably set hamcore.se2 modtime to one day in the future
90 # to prevent rebuilding it
91 perl
-e
'utime(time() + 86400, time() + 86400, $$$$ARGV[0])' \
92 $(PKG_BUILD_DIR
)/src
/bin
/BuiltHamcoreFiles
/unix
/hamcore.se2
96 define Package
/softethervpn
100 DEPENDS
:=+libpthread
+librt
+libreadline
+libopenssl
+libncurses
+kmod-tun
+zlib
$(ICONV_DEPENDS
)
101 TITLE
:=Free Cross-platform Multi-protocol VPN server and client
102 URL
:=http
://www.softether.org
/
103 MAINTAINER
:=Federico Di Marco
<fededim@gmail.com
>
106 define Package
/softethervpn
/description
107 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
108 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
109 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,
110 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,
111 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
112 has very fast throughput, low latency and firewall resistance.
116 define Package/softethervpn/conffiles
117 /usr/libexec/softethervpn/vpn_server.config
118 /usr/libexec/softethervpn/vpn_client.config
119 /usr/libexec/softethervpn/vpn_bridge.config
120 /usr/libexec/softethervpn/lang.config
123 define Package/softethervpn/install
124 $(INSTALL_DIR) $(1)/usr/libexec/softethervpn
125 $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnserver/vpnserver $(1)/usr/libexec/softethervpn
126 $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnserver/hamcore.se2 $(1)/usr/libexec/softethervpn
127 $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnclient/vpnclient $(1)/usr/libexec/softethervpn
128 $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpnbridge/vpnbridge $(1)/usr/libexec/softethervpn
129 $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vpncmd/vpncmd $(1)/usr/libexec/softethervpn
130 $(INSTALL_BIN) files/launcher.sh $(1)/usr/libexec/softethervpn
132 $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_server.config
133 $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_bridge.config
134 $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_client.config
135 $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/lang.config
137 $(INSTALL_DIR) $(1)/usr/bin
139 #$(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpnserver
140 #$(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpnclient
141 #$(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpnbridge
142 $(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpncmd
144 $(INSTALL_DIR) $(1)/etc
145 $(INSTALL_DIR) $(1)/etc/init.d
146 $(INSTALL_BIN) files/vpnserver.init $(1)/etc/init.d/softethervpnserver
147 $(INSTALL_BIN) files/vpnbridge.init $(1)/etc/init.d/softethervpnbridge
148 $(INSTALL_BIN) files/vpnclient.init $(1)/etc/init.d/softethervpnclient
151 $(eval $(call BuildPackage,softethervpn))
152 $(eval $(call HostBuild))