aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2013-09-04 14:25:22 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2013-09-12 01:44:49 +0200
commit9af44ef5d9534cf6a12c0ddd90f9cad5648dcd28 (patch)
tree5a071b7524ed142b46210c2009b4c65b72465ce7 /src
parent3cb4552da62fc5c1550aa5b46a9a52ae2a1737c6 (diff)
downloadstrongswan-9af44ef5d9534cf6a12c0ddd90f9cad5648dcd28.tar.bz2
strongswan-9af44ef5d9534cf6a12c0ddd90f9cad5648dcd28.tar.xz
Build all shared libraries with -no-undefined and link them properly
The flag is required to convince libtool on Cygwin to build DLLs. But on Windows these shared libraries can not have undefined symbols, so we have to link them explicitly to the libraries they reference. For plugins this is currently not done, so only the monolithic build is supported. The plugin loader wouldn't be able to load DLLs anyway, as it tries to load files that don't exist on Cygwin.
Diffstat (limited to 'src')
-rw-r--r--src/libcharon/Makefile.am8
-rw-r--r--src/libfast/Makefile.am8
-rw-r--r--src/libhydra/Makefile.am6
-rw-r--r--src/libimcv/Makefile.am7
-rw-r--r--src/libipsec/Makefile.am6
-rw-r--r--src/libpts/Makefile.am8
-rw-r--r--src/libpttls/Makefile.am9
-rw-r--r--src/libradius/Makefile.am7
-rw-r--r--src/libsimaka/Makefile.am7
-rw-r--r--src/libstrongswan/Makefile.am3
-rw-r--r--src/libtls/Makefile.am6
-rw-r--r--src/libtnccs/Makefile.am7
12 files changed, 73 insertions, 9 deletions
diff --git a/src/libcharon/Makefile.am b/src/libcharon/Makefile.am
index 9c7f67690..5ee047b9c 100644
--- a/src/libcharon/Makefile.am
+++ b/src/libcharon/Makefile.am
@@ -136,7 +136,13 @@ AM_CPPFLAGS = \
-DIPSEC_DIR=\"${ipsecdir}\" \
-DIPSEC_PIDDIR=\"${piddir}\"
-libcharon_la_LIBADD = -lm $(PTHREADLIB) $(DLLIB) $(SOCKLIB)
+AM_LDFLAGS = \
+ -no-undefined
+
+libcharon_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la \
+ $(top_builddir)/src/libhydra/libhydra.la \
+ -lm $(PTHREADLIB) $(DLLIB) $(SOCKLIB)
EXTRA_DIST = Android.mk
diff --git a/src/libfast/Makefile.am b/src/libfast/Makefile.am
index edc2ab1ca..41a489b3d 100644
--- a/src/libfast/Makefile.am
+++ b/src/libfast/Makefile.am
@@ -5,6 +5,9 @@ AM_CPPFLAGS = \
AM_CFLAGS = \
-rdynamic
+AM_LDFLAGS = \
+ -no-undefined
+
ipseclib_LTLIBRARIES = libfast.la
libfast_la_SOURCES = \
@@ -17,5 +20,6 @@ nobase_fast_include_HEADERS = \
fast_request.h fast_session.h fast_smtp.h
endif
-libfast_la_LIBADD = $(top_builddir)/src/libstrongswan/libstrongswan.la \
- -lfcgi $(clearsilver_LIBS) $(PTHREADLIB)
+libfast_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la \
+ -lfcgi $(clearsilver_LIBS) $(PTHREADLIB)
diff --git a/src/libhydra/Makefile.am b/src/libhydra/Makefile.am
index a2a164bd9..f7ae37f98 100644
--- a/src/libhydra/Makefile.am
+++ b/src/libhydra/Makefile.am
@@ -11,7 +11,8 @@ kernel/kernel_ipsec.c kernel/kernel_ipsec.h \
kernel/kernel_net.c kernel/kernel_net.h \
kernel/kernel_listener.h
-libhydra_la_LIBADD =
+libhydra_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la
AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan \
@@ -19,6 +20,9 @@ AM_CPPFLAGS = \
-DPLUGINDIR=\"${plugindir}\" \
-DSTRONGSWAN_CONF=\"${strongswan_conf}\"
+AM_LDFLAGS = \
+ -no-undefined
+
EXTRA_DIST = Android.mk
# build optional plugins
diff --git a/src/libimcv/Makefile.am b/src/libimcv/Makefile.am
index e1e6541aa..86f172dd8 100644
--- a/src/libimcv/Makefile.am
+++ b/src/libimcv/Makefile.am
@@ -4,7 +4,12 @@ AM_CPPFLAGS = \
ipseclib_LTLIBRARIES = libimcv.la
-libimcv_la_LIBADD = $(top_builddir)/src/libtncif/libtncif.la
+libimcv_la_LDFLAGS = \
+ -no-undefined
+
+libimcv_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la \
+ $(top_builddir)/src/libtncif/libtncif.la
libimcv_la_SOURCES = \
imcv.h imcv.c \
diff --git a/src/libipsec/Makefile.am b/src/libipsec/Makefile.am
index 74379f1d5..41f5ae937 100644
--- a/src/libipsec/Makefile.am
+++ b/src/libipsec/Makefile.am
@@ -13,11 +13,15 @@ ipsec_processor.c ipsec_processor.h \
ipsec_sa.c ipsec_sa.h \
ipsec_sa_mgr.c ipsec_sa_mgr.h
-libipsec_la_LIBADD =
+libipsec_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la
AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan
+AM_LDFLAGS = \
+ -no-undefined
+
EXTRA_DIST = Android.mk
# build optional plugins
diff --git a/src/libpts/Makefile.am b/src/libpts/Makefile.am
index 2c02fd18a..48bb46c7a 100644
--- a/src/libpts/Makefile.am
+++ b/src/libpts/Makefile.am
@@ -3,9 +3,15 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/libtncif \
-I$(top_srcdir)/src/libimcv
+AM_LDFLAGS = \
+ -no-undefined
+
ipseclib_LTLIBRARIES = libpts.la
-libpts_la_LIBADD = $(top_builddir)/src/libimcv/libimcv.la
+libpts_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la \
+ $(top_builddir)/src/libtncif/libtncif.la \
+ $(top_builddir)/src/libimcv/libimcv.la
if USE_TROUSERS
libpts_la_LIBADD += -ltspi
diff --git a/src/libpttls/Makefile.am b/src/libpttls/Makefile.am
index 225d0e48f..f2bcf44d5 100644
--- a/src/libpttls/Makefile.am
+++ b/src/libpttls/Makefile.am
@@ -4,8 +4,15 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/libtncif \
-I$(top_srcdir)/src/libtnccs
+AM_LDFLAGS = \
+ -no-undefined
+
ipseclib_LTLIBRARIES = libpttls.la
-libpttls_la_LIBADD = $(top_builddir)/src/libtls/libtls.la
+
+libpttls_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la \
+ $(top_builddir)/src/libtls/libtls.la
+
libpttls_la_SOURCES = pt_tls.c pt_tls.h \
pt_tls_client.c pt_tls_client.h \
pt_tls_server.c pt_tls_server.h \
diff --git a/src/libradius/Makefile.am b/src/libradius/Makefile.am
index 91ded23e3..4706f270d 100644
--- a/src/libradius/Makefile.am
+++ b/src/libradius/Makefile.am
@@ -1,7 +1,14 @@
AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan
+AM_LDFLAGS = \
+ -no-undefined
+
ipseclib_LTLIBRARIES = libradius.la
+
+libradius_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la
+
libradius_la_SOURCES = \
radius_message.h radius_message.c \
radius_socket.h radius_socket.c \
diff --git a/src/libsimaka/Makefile.am b/src/libsimaka/Makefile.am
index 8aaac7de0..6878133f3 100644
--- a/src/libsimaka/Makefile.am
+++ b/src/libsimaka/Makefile.am
@@ -3,7 +3,14 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/libhydra \
-I$(top_srcdir)/src/libcharon
+AM_LDFLAGS = \
+ -no-undefined
+
ipseclib_LTLIBRARIES = libsimaka.la
+
+libsimaka_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la
+
libsimaka_la_SOURCES = simaka_message.h simaka_message.c \
simaka_crypto.h simaka_crypto.c simaka_manager.h simaka_manager.c \
simaka_card.h simaka_provider.h simaka_hooks.h
diff --git a/src/libstrongswan/Makefile.am b/src/libstrongswan/Makefile.am
index dfe6e7e00..78e4ce2e1 100644
--- a/src/libstrongswan/Makefile.am
+++ b/src/libstrongswan/Makefile.am
@@ -95,6 +95,9 @@ AM_CPPFLAGS = \
AM_CFLAGS = \
@COVERAGE_CFLAGS@
+AM_LDFLAGS = \
+ -no-undefined
+
if USE_LEAK_DETECTIVE
AM_CPPFLAGS += -DLEAK_DETECTIVE
libstrongswan_la_SOURCES += utils/leak_detective.c
diff --git a/src/libtls/Makefile.am b/src/libtls/Makefile.am
index 9e3712abe..b83ea8eba 100644
--- a/src/libtls/Makefile.am
+++ b/src/libtls/Makefile.am
@@ -1,12 +1,18 @@
AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan
+AM_LDFLAGS = \
+ -no-undefined
+
ipseclib_LTLIBRARIES = libtls.la
libtls_la_SOURCES = \
tls_protection.c tls_compression.c tls_fragmentation.c tls_alert.c \
tls_crypto.c tls_prf.c tls_socket.c tls_eap.c tls_cache.c tls_peer.c \
tls_server.c tls.c
+libtls_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la
+
if USE_DEV_HEADERS
tls_includedir = ${dev_headers}/tls
nobase_tls_include_HEADERS = \
diff --git a/src/libtnccs/Makefile.am b/src/libtnccs/Makefile.am
index d1f8825de..22a3b93b0 100644
--- a/src/libtnccs/Makefile.am
+++ b/src/libtnccs/Makefile.am
@@ -3,9 +3,14 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/libtncif \
-I$(top_srcdir)/src/libtls
+AM_LDFLAGS = \
+ -no-undefined
+
ipseclib_LTLIBRARIES = libtnccs.la
-libtnccs_la_LIBADD = $(top_builddir)/src/libtncif/libtncif.la
+libtnccs_la_LIBADD = \
+ $(top_builddir)/src/libstrongswan/libstrongswan.la \
+ $(top_builddir)/src/libtncif/libtncif.la
libtnccs_la_SOURCES = \
tnc/tnc.h tnc/tnc.c \