diff --git a/apps/nc/Makefile.am b/apps/nc/Makefile.am index 4b5b561..d678f1e 100644 --- a/apps/nc/Makefile.am +++ b/apps/nc/Makefile.am @@ -12,9 +12,9 @@ endif EXTRA_DIST = nc.1 EXTRA_DIST += CMakeLists.txt -nc_LDADD = $(abs_top_builddir)/crypto/libcrypto.la -nc_LDADD += $(abs_top_builddir)/ssl/libssl.la -nc_LDADD += $(abs_top_builddir)/tls/libtls.la +nc_LDFLAGS = $(abs_top_builddir)/crypto/.libs/libcrypto.a + +nc_LDADD = $(abs_top_builddir)/tls/libtls.la nc_LDADD += $(PLATFORM_LDADD) $(PROG_LDADD) AM_CPPFLAGS += -I$(top_srcdir)/apps/nc/compat diff --git a/configure.ac b/configure.ac index 75b88fe..3aca617 100644 --- a/configure.ac +++ b/configure.ac @@ -29,8 +29,7 @@ USER_CFLAGS="$CFLAGS" AC_PROG_CC([cc gcc]) AC_PROG_CC_STDC AM_PROG_CC_C_O -AC_PROG_LIBTOOL -LT_INIT +LT_INIT([pic-only]) CHECK_OS_OPTIONS diff --git a/crypto/Makefile.am b/crypto/Makefile.am index 7fcfc02..97a84e1 100644 --- a/crypto/Makefile.am +++ b/crypto/Makefile.am @@ -20,6 +20,7 @@ EXTRA_DIST += compat/strcasecmp.c BUILT_SOURCES = crypto_portable.sym CLEANFILES = crypto_portable.sym +CLEANFILES += libcrypto_la_objects.mk crypto_portable.sym: crypto.sym Makefile -echo "generating crypto_portable.sym ..." @@ -93,8 +94,20 @@ if HOST_WIN -mv crypto_portable.sym.tmp crypto_portable.sym endif +libcrypto_la_objects.mk: Makefile + @echo "libcrypto_la_objects= $(libcrypto_la_OBJECTS)" \ + | sed 's/ */ $$\(abs_top_builddir\)\/crypto\//g' \ + > libcrypto_la_objects.mk + @echo "libcompat_la_objects= $(libcompat_la_OBJECTS)" \ + | sed 's/ */ $$\(abs_top_builddir\)\/crypto\//g' \ + >> libcrypto_la_objects.mk + @echo "libcompatnoopt_la_objects= $(libcompatnoopt_la_OBJECTS)" \ + | sed 's/ */ $$\(abs_top_builddir\)\/crypto\//g' \ + >> libcrypto_la_objects.mk + libcrypto_la_LDFLAGS = -version-info @LIBCRYPTO_VERSION@ -no-undefined -export-symbols crypto_portable.sym EXTRA_libcrypto_la_DEPENDENCIES = crypto_portable.sym +EXTRA_libcrypto_la_DEPENDENCIES += libcrypto_la_objects.mk libcrypto_la_LIBADD = libcompat.la if !HAVE_EXPLICIT_BZERO libcrypto_la_LIBADD += libcompatnoopt.la diff --git a/libtls.pc.in b/libtls.pc.in index 82a6a71..0d4e625 100644 --- a/libtls.pc.in +++ b/libtls.pc.in @@ -9,8 +9,7 @@ Name: LibreSSL-libtls Description: Secure communications using the TLS socket protocol. Version: @VERSION@ Requires: -Requires.private: libcrypto libssl Conflicts: Libs: -L${libdir} -ltls -Libs.private: @LIBS@ -lcrypto -lssl @PLATFORM_LDADD@ +Libs.private: @LIBS@ @PLATFORM_LDADD@ Cflags: -I${includedir} diff --git a/ssl/Makefile.am b/ssl/Makefile.am index dded59f..4c4e594 100644 --- a/ssl/Makefile.am +++ b/ssl/Makefile.am @@ -6,6 +6,15 @@ EXTRA_DIST = VERSION EXTRA_DIST += CMakeLists.txt EXTRA_DIST += ssl.sym +CLEANFILES = libssl_la_objects.mk + +EXTRA_libssl_la_DEPENDENCIES = libssl_la_objects.mk + +libssl_la_objects.mk: Makefile + @echo "libssl_la_objects= $(libssl_la_OBJECTS)" \ + | sed 's/ */ $$\(abs_top_builddir\)\/ssl\//g' \ + > libssl_la_objects.mk + libssl_la_LDFLAGS = -version-info @LIBSSL_VERSION@ -no-undefined -export-symbols $(top_srcdir)/ssl/ssl.sym libssl_la_LIBADD = $(abs_top_builddir)/crypto/libcrypto.la $(PLATFORM_LDADD) diff --git a/tls/Makefile.am b/tls/Makefile.am index 942abf9..4cea3a2 100644 --- a/tls/Makefile.am +++ b/tls/Makefile.am @@ -1,5 +1,8 @@ include $(top_srcdir)/Makefile.am.common +-include $(abs_top_builddir)/crypto/libcrypto_la_objects.mk +-include $(abs_top_builddir)/ssl/libssl_la_objects.mk + lib_LTLIBRARIES = libtls.la EXTRA_DIST = VERSION @@ -7,8 +10,10 @@ EXTRA_DIST += CMakeLists.txt EXTRA_DIST += tls.sym libtls_la_LDFLAGS = -version-info @LIBTLS_VERSION@ -no-undefined -export-symbols $(top_srcdir)/tls/tls.sym -libtls_la_LIBADD = $(abs_top_builddir)/ssl/libssl.la -libtls_la_LIBADD += $(abs_top_builddir)/crypto/libcrypto.la +libtls_la_LIBADD = $(libcrypto_la_objects) +libtls_la_LIBADD += $(libcompat_la_objects) +libtls_la_LIBADD += $(libcompatnoopt_la_objects) +libtls_la_LIBADD += $(libssl_la_objects) libtls_la_LIBADD += $(PLATFORM_LDADD) libtls_la_CPPFLAGS = $(AM_CPPFLAGS)