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