>From f4bf27e6c01a72b0d97c99f379d85ebc15c5e85d Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Sun, 3 Mar 2013 11:33:29 +0100 Subject: [PATCH] Added option to enable static linking of libraries. Signed-off-by: Nikos Mavrogiannopoulos --- Makefile.am | 19 +++++++++++++++---- configure.ac | 10 ++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index 463df52..679b685 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,13 @@ if USE_NLS SUBDIRS += po endif +OLIBS = $(SSL_LIBS) $(DTLS_SSL_LIBS) $(LIBXML2_LIBS) $(LIBPROXY_LIBS) $(TSS_LIBS) $(LIBINTL) $(LIBSTOKEN_LIBS) $(ZLIB_LIBS) +if USE_STATIC_LINK +OLIBS_F = -static-libtool-libs +else +OLIBS_F = +endif + lib_LTLIBRARIES = libopenconnect.la sbin_PROGRAMS = openconnect man8_MANS = openconnect.8 @@ -14,8 +21,9 @@ man8_MANS = openconnect.8 AM_CPPFLAGS = -DLOCALEDIR="\"$(localedir)\"" openconnect_SOURCES = xml.c main.c dtls.c cstp.c mainloop.c tun.c -openconnect_CFLAGS = $(SSL_CFLAGS) $(DTLS_SSL_CFLAGS) $(LIBXML2_CFLAGS) $(LIBPROXY_CFLAGS) $(ZLIB_CFLAGS) $(LIBSTOKEN_CFLAGS) -openconnect_LDADD = libopenconnect.la $(SSL_LIBS) $(DTLS_SSL_LIBS) $(LIBXML2_LIBS) $(LIBPROXY_LIBS) $(ZLIB_LIBS) $(LIBINTL) $(LIBSTOKEN_LIBS) +openconnect_LDFLAGS = $(OLIBS_F) +openconnect_LDADD = libopenconnect.la $(OLIBS) +openconnect_CFLAGS = $(SSL_CFLAGS) $(LIBXML2_CFLAGS) $(LIBPROXY_CFLAGS) $(P11KIT_CFLAGS) $(TSS_CFLAGS) $(LIBSTOKEN_CFLAGS) library_srcs = ssl.c http.c auth.c library.c compat.c lib_srcs_gnutls = gnutls.c gnutls_pkcs12.c gnutls_tpm.c @@ -31,7 +39,10 @@ library_srcs += $(lib_srcs_openssl) endif libopenconnect_la_SOURCES = version.c $(library_srcs) libopenconnect_la_CFLAGS = $(SSL_CFLAGS) $(LIBXML2_CFLAGS) $(LIBPROXY_CFLAGS) $(P11KIT_CFLAGS) $(TSS_CFLAGS) $(LIBSTOKEN_CFLAGS) -libopenconnect_la_LIBADD = $(SSL_LIBS) $(LIBXML2_LIBS) $(LIBPROXY_LIBS) $(LIBINTL) $(P11KIT_LIBS) $(TSS_LIBS) $(LIBSTOKEN_LIBS) + +libopenconnect_la_LDFLAGS = $(OLIBS_F) +libopenconnect_la_LIBADD = $(OLIBS) + if OPENBSD_LIBTOOL # OpenBSD's libtool doesn't have -version-number, but its -version-info arg # does what GNU libtool's -version-number does. Which arguably is what the @@ -40,7 +51,7 @@ LT_VER_ARG = -version-info else LT_VER_ARG = -version-number endif -libopenconnect_la_LDFLAGS = $(LT_VER_ARG) @APIMAJOR@:@APIMINOR@ +libopenconnect_la_LDFLAGS += $(LT_VER_ARG) @APIMAJOR@:@APIMINOR@ noinst_HEADERS = openconnect-internal.h openconnect.h gnutls.h include_HEADERS = openconnect.h if HAVE_SYMBOL_VERSIONING diff --git a/configure.ac b/configure.ac index 89887f5..e5dfafd 100644 --- a/configure.ac +++ b/configure.ac @@ -147,6 +147,12 @@ AC_CHECK_FUNC(__android_log_vprint, [], AC_CHECK_LIB(log, __android_log_vprint, AC_ENABLE_SHARED AC_DISABLE_STATIC +AC_ARG_ENABLE([static-link], + [ --enable-static-link link statically as many libraries as possible], + [USE_STATIC_LINK=$enableval], [USE_STATIC_LINK=no]) + +AM_CONDITIONAL(USE_STATIC_LINK, [test "$USE_STATIC_LINK" = "yes"]) + AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], [USE_NLS=$enableval], [USE_NLS=yes]) @@ -558,3 +564,7 @@ AC_SUBST(GITVERSIONDEPS) AC_OUTPUT(Makefile openconnect.pc po/Makefile www/Makefile libopenconnect.map \ openconnect.8 www/styles/Makefile www/inc/Makefile www/images/Makefile) + +AC_MSG_NOTICE([ + Static link: $USE_STATIC_LINK +]) -- 1.7.10.4