1*4882a593SmuzhiyunFrom 75625af541fd128f51079d0ffe5ef24645b8f421 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Darik Horn <dajhorn@vanadac.com>
3*4882a593SmuzhiyunDate: Sun, 13 Apr 2014 12:51:15 -0400
4*4882a593SmuzhiyunSubject: [PATCH] Create libsoftether.so and dynamically link the userland.
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunSharing object code between vpnbridge, vpnclient, vpnserver, and vpncmd
7*4882a593Smuzhiyunreduces the binary size of SoftEther by 85% and its administrative memory
8*4882a593Smuzhiyunfootprint by 50%.
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun[Upstream commit https://github.com/dajhorn/SoftEtherVPN/commit/75625af541fd128f51079d0ffe5ef24645b8f421]
11*4882a593SmuzhiyunSigned-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
12*4882a593Smuzhiyun---
13*4882a593Smuzhiyun configure.ac                 |  1 +
14*4882a593Smuzhiyun src/Makefile.am              |  7 +++++--
15*4882a593Smuzhiyun src/libsoftether/Makefile.am | 34 ++++++++++++++++++++++++++++++++++
16*4882a593Smuzhiyun src/vpnbridge/Makefile.am    |  3 +--
17*4882a593Smuzhiyun src/vpnclient/Makefile.am    |  3 +--
18*4882a593Smuzhiyun src/vpncmd/Makefile.am       |  3 +--
19*4882a593Smuzhiyun src/vpnserver/Makefile.am    |  3 +--
20*4882a593Smuzhiyun 7 files changed, 44 insertions(+), 10 deletions(-)
21*4882a593Smuzhiyun create mode 100644 src/libsoftether/Makefile.am
22*4882a593Smuzhiyun
23*4882a593Smuzhiyundiff --git a/configure.ac b/configure.ac
24*4882a593Smuzhiyunindex 4a3fc2ba..94639c44 100644
25*4882a593Smuzhiyun--- a/configure.ac
26*4882a593Smuzhiyun+++ b/configure.ac
27*4882a593Smuzhiyun@@ -30,6 +30,7 @@ AC_CONFIG_FILES([
28*4882a593Smuzhiyun 	src/Mayaqua/Makefile
29*4882a593Smuzhiyun 	src/Cedar/Makefile
30*4882a593Smuzhiyun 	src/hamcorebuilder/Makefile
31*4882a593Smuzhiyun+	src/libsoftether/Makefile
32*4882a593Smuzhiyun 	src/bin/hamcore/Makefile
33*4882a593Smuzhiyun 	src/vpnserver/Makefile
34*4882a593Smuzhiyun 	src/vpnclient/Makefile
35*4882a593Smuzhiyundiff --git a/src/Makefile.am b/src/Makefile.am
36*4882a593Smuzhiyunindex dc745426..1d041d47 100644
37*4882a593Smuzhiyun--- a/src/Makefile.am
38*4882a593Smuzhiyun+++ b/src/Makefile.am
39*4882a593Smuzhiyun@@ -22,5 +22,8 @@ SUBDIRS = Mayaqua Cedar
40*4882a593Smuzhiyun # This is a nodist helper.
41*4882a593Smuzhiyun SUBDIRS += hamcorebuilder
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun-# These are final build products.
44*4882a593Smuzhiyun-SUBDIRS += bin/hamcore vpnserver vpnclient vpnbridge vpncmd
45*4882a593Smuzhiyun+# These are shared components.
46*4882a593Smuzhiyun+SUBDIRS += libsoftether bin/hamcore
47*4882a593Smuzhiyun+
48*4882a593Smuzhiyun+# These are the final build products.
49*4882a593Smuzhiyun+SUBDIRS += vpnserver vpnclient vpnbridge vpncmd
50*4882a593Smuzhiyundiff --git a/src/libsoftether/Makefile.am b/src/libsoftether/Makefile.am
51*4882a593Smuzhiyunnew file mode 100644
52*4882a593Smuzhiyunindex 00000000..601920d9
53*4882a593Smuzhiyun--- /dev/null
54*4882a593Smuzhiyun+++ b/src/libsoftether/Makefile.am
55*4882a593Smuzhiyun@@ -0,0 +1,34 @@
56*4882a593Smuzhiyun+#  Copyright 2014 Darik Horn <dajhorn@vanadac.com>
57*4882a593Smuzhiyun+#
58*4882a593Smuzhiyun+#  This file is part of SoftEther.
59*4882a593Smuzhiyun+#
60*4882a593Smuzhiyun+#  SoftEther is free software: you can redistribute it and/or modify it under
61*4882a593Smuzhiyun+#  the terms of the GNU General Public License as published by the Free
62*4882a593Smuzhiyun+#  Software Foundation, either version 2 of the License, or (at your option)
63*4882a593Smuzhiyun+#  any later version.
64*4882a593Smuzhiyun+#
65*4882a593Smuzhiyun+#  SoftEther is distributed in the hope that it will be useful, but WITHOUT ANY
66*4882a593Smuzhiyun+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
67*4882a593Smuzhiyun+#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
68*4882a593Smuzhiyun+#  details.
69*4882a593Smuzhiyun+#
70*4882a593Smuzhiyun+#  You should have received a copy of the GNU General Public License along with
71*4882a593Smuzhiyun+#  SoftEther.  If not, see <http://www.gnu.org/licenses/>.
72*4882a593Smuzhiyun+
73*4882a593Smuzhiyun+
74*4882a593Smuzhiyun+include $(top_srcdir)/autotools/softether.am
75*4882a593Smuzhiyun+
76*4882a593Smuzhiyun+lib_LTLIBRARIES = \
77*4882a593Smuzhiyun+	libsoftether.la
78*4882a593Smuzhiyun+
79*4882a593Smuzhiyun+libsoftether_la_SOURCES =
80*4882a593Smuzhiyun+
81*4882a593Smuzhiyun+libsoftether_la_LDFLAGS = \
82*4882a593Smuzhiyun+	-avoid-version
83*4882a593Smuzhiyun+
84*4882a593Smuzhiyun+libsoftether_la_LIBTOOLFLAGS = \
85*4882a593Smuzhiyun+	--tag=disable-static
86*4882a593Smuzhiyun+
87*4882a593Smuzhiyun+libsoftether_la_LIBADD = \
88*4882a593Smuzhiyun+	$(top_builddir)/src/Mayaqua/libmayaqua.la \
89*4882a593Smuzhiyun+	$(top_builddir)/src/Cedar/libcedar.la
90*4882a593Smuzhiyundiff --git a/src/vpnbridge/Makefile.am b/src/vpnbridge/Makefile.am
91*4882a593Smuzhiyunindex 35fe043d..fb91dd2d 100644
92*4882a593Smuzhiyun--- a/src/vpnbridge/Makefile.am
93*4882a593Smuzhiyun+++ b/src/vpnbridge/Makefile.am
94*4882a593Smuzhiyun@@ -25,5 +25,4 @@ vpnbridge_SOURCES = \
95*4882a593Smuzhiyun 	vpnbridge.c
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun vpnbridge_LDADD = \
98*4882a593Smuzhiyun-	$(top_builddir)/src/Mayaqua/libmayaqua.la \
99*4882a593Smuzhiyun-	$(top_builddir)/src/Cedar/libcedar.la
100*4882a593Smuzhiyun+	$(top_builddir)/src/libsoftether/libsoftether.la
101*4882a593Smuzhiyundiff --git a/src/vpnclient/Makefile.am b/src/vpnclient/Makefile.am
102*4882a593Smuzhiyunindex 1aa55330..c225c416 100644
103*4882a593Smuzhiyun--- a/src/vpnclient/Makefile.am
104*4882a593Smuzhiyun+++ b/src/vpnclient/Makefile.am
105*4882a593Smuzhiyun@@ -25,5 +25,4 @@ vpnclient_SOURCES = \
106*4882a593Smuzhiyun 	vpncsvc.c
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun vpnclient_LDADD = \
109*4882a593Smuzhiyun-	$(top_builddir)/src/Mayaqua/libmayaqua.la \
110*4882a593Smuzhiyun-	$(top_builddir)/src/Cedar/libcedar.la
111*4882a593Smuzhiyun+	$(top_builddir)/src/libsoftether/libsoftether.la
112*4882a593Smuzhiyundiff --git a/src/vpncmd/Makefile.am b/src/vpncmd/Makefile.am
113*4882a593Smuzhiyunindex d8042aa2..271affb0 100644
114*4882a593Smuzhiyun--- a/src/vpncmd/Makefile.am
115*4882a593Smuzhiyun+++ b/src/vpncmd/Makefile.am
116*4882a593Smuzhiyun@@ -25,5 +25,4 @@ vpncmd_SOURCES = \
117*4882a593Smuzhiyun 	vpncmd.c
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun vpncmd_LDADD = \
120*4882a593Smuzhiyun-	$(top_builddir)/src/Mayaqua/libmayaqua.la \
121*4882a593Smuzhiyun-	$(top_builddir)/src/Cedar/libcedar.la
122*4882a593Smuzhiyun+	$(top_builddir)/src/libsoftether/libsoftether.la
123*4882a593Smuzhiyundiff --git a/src/vpnserver/Makefile.am b/src/vpnserver/Makefile.am
124*4882a593Smuzhiyunindex c1c33570..1f7b7f98 100644
125*4882a593Smuzhiyun--- a/src/vpnserver/Makefile.am
126*4882a593Smuzhiyun+++ b/src/vpnserver/Makefile.am
127*4882a593Smuzhiyun@@ -25,5 +25,4 @@ vpnserver_SOURCES = \
128*4882a593Smuzhiyun 	vpnserver.c
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun vpnserver_LDADD = \
131*4882a593Smuzhiyun-	$(top_builddir)/src/Mayaqua/libmayaqua.la \
132*4882a593Smuzhiyun-	$(top_builddir)/src/Cedar/libcedar.la
133*4882a593Smuzhiyun+	$(top_builddir)/src/libsoftether/libsoftether.la
134