From: https://src.fedoraproject.org/rpms/gsoap/blob/master/f/gsoap-libtool.patch

diff -ur gsoap-2.8.orig/configure.ac gsoap-2.8/configure.ac
diff --git a/configure.ac b/configure.ac
index dfa7e82..0844269 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,8 +15,7 @@ AM_PROG_CC_C_O
 AM_PROG_LEX([noyywrap])
 AC_PROG_YACC
 AC_PROG_CPP
-AC_PROG_RANLIB
-#AM_PROG_LIBTOOL
+AM_PROG_LIBTOOL
 AC_PROG_LN_S
 AC_PROG_AWK
 AC_PROG_INSTALL
@@ -310,7 +309,7 @@ if test "x$with_openssl" = "xyes"; then
     WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} -lgnutls -lgcrypt -lgpg-error -lz"
     SAMPLE_INCLUDES=
     SAMPLE_SSL_LIBS="-lgnutls -lgcrypt -lgpg-error -lz"
-    WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a"
+    WSDL2H_SOAP_CPP_LIB="libgsoapssl++.la"
   else
     if test "x$with_wolfssl" = "xyes"; then
       AC_MSG_RESULT(yes)
@@ -323,10 +322,10 @@ if test "x$with_openssl" = "xyes"; then
       AC_MSG_RESULT(no)
       WSDL2H_EXTRA_FLAGS="-DWITH_OPENSSL -DWITH_GZIP"
       # compile with wsdl2h when OPENSSL is available
-      WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} -lssl -lcrypto -lz"
+      WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} -lcrypto"
       SAMPLE_INCLUDES=
       SAMPLE_SSL_LIBS="-lssl -lcrypto -lz"
-      WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a"
+      WSDL2H_SOAP_CPP_LIB="libgsoapssl++.la"
     fi
   fi
   if test -n "$ZLIB"; then
@@ -346,7 +345,7 @@ else
   WSDL2H_EXTRA_FLAGS=
   SAMPLE_SSL_LIBS=
   SAMPLE_INCLUDES=
-  WSDL2H_SOAP_CPP_LIB="libgsoap++.a"
+  WSDL2H_SOAP_CPP_LIB="libgsoap++.la"
 fi
 AM_CONDITIONAL([WITH_OPENSSL], [test "x$with_openssl" = "xyes" -a "x$with_gnutls" != "xyes" -a "x$with_wolfssl" != "xyes"])
 AC_SUBST(WSDL2H_EXTRA_FLAGS)
diff --git a/gsoap/Makefile.am b/gsoap/Makefile.am
index b5f1cf1..e238fd5 100644
--- a/gsoap/Makefile.am
+++ b/gsoap/Makefile.am
@@ -34,20 +34,30 @@ stdsoap2_ssl_cpp.cpp: stdsoap2.cpp
 dom_cpp.cpp: dom.cpp
 	$(LN_S) -f $(top_srcdir)/gsoap/dom.cpp dom_cpp.cpp
 
-lib_LIBRARIES = libgsoap.a libgsoap++.a libgsoapck.a libgsoapck++.a libgsoapssl.a libgsoapssl++.a
+lib_LTLIBRARIES = libgsoap.la libgsoap++.la libgsoapck.la libgsoapck++.la libgsoapssl.la libgsoapssl++.la
 
-libgsoap_a_SOURCES = stdsoap2.c dom.c
-libgsoap_a_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform)
-libgsoap___a_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp
-libgsoap___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform)
-libgsoapck_a_SOURCES = stdsoap2_ck.c dom.c
-libgsoapck_a_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform) -DWITH_COOKIES
-libgsoapck___a_SOURCES = stdsoap2_ck_cpp.cpp dom_cpp.cpp
-libgsoapck___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform) -DWITH_COOKIES
-libgsoapssl_a_SOURCES = stdsoap2_ssl.c dom.c
-libgsoapssl_a_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM -DWITH_COOKIES
-libgsoapssl___a_SOURCES = stdsoap2_ssl_cpp.cpp dom_cpp.cpp
-libgsoapssl___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM -DWITH_COOKIES
+SOVERSION = $(shell grep 'define VERSION' $(srcdir)/src/soapcpp2.h | cut -d '"' -f 2)
+
+libgsoap_la_SOURCES = stdsoap2.c dom.c
+libgsoap_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform)
+libgsoap_la_LDFLAGS = -release $(SOVERSION)
+libgsoap___la_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp
+libgsoap___la_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform)
+libgsoap___la_LDFLAGS = -release $(SOVERSION)
+libgsoapck_la_SOURCES = stdsoap2_ck.c dom.c
+libgsoapck_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform) -DWITH_COOKIES
+libgsoapck_la_LDFLAGS = -release $(SOVERSION)
+libgsoapck___la_SOURCES = stdsoap2_ck_cpp.cpp dom_cpp.cpp
+libgsoapck___la_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform) -DWITH_COOKIES
+libgsoapck___la_LDFLAGS = -release $(SOVERSION)
+libgsoapssl_la_SOURCES = stdsoap2_ssl.c dom.c
+libgsoapssl_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM -DWITH_COOKIES
+libgsoapssl_la_LDFLAGS = -release $(SOVERSION)
+libgsoapssl_la_LIBADD = -lssl -lcrypto -lz
+libgsoapssl___la_SOURCES = stdsoap2_ssl_cpp.cpp dom_cpp.cpp
+libgsoapssl___la_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_NO_C_LOCALE) $(SOAPCPP2_IPV6) $(SOAPCPP2_IPV6_V6ONLY) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM -DWITH_COOKIES
+libgsoapssl___la_LDFLAGS = -release $(SOVERSION)
+libgsoapssl___la_LIBADD = -lssl -lcrypto -lz
 
 BUILT_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp stdsoap2_ck.c stdsoap2_ck_cpp.cpp stdsoap2_ssl.c stdsoap2_ssl_cpp.cpp
 
diff --git a/gsoap/samples/Makefile.defines b/gsoap/samples/Makefile.defines
index 7d7e92d..d6df65f 100644
--- a/gsoap/samples/Makefile.defines
+++ b/gsoap/samples/Makefile.defines
@@ -13,13 +13,13 @@ SOAP_H_FILES=soapH.h soapStub.h
 SOAP_C_CORE=soapC.c
 SOAP_C_CLIENT=soapClient.c $(SOAP_C_CORE)
 SOAP_C_SERVER=soapServer.c $(SOAP_C_CORE)
-SOAP_C_LIB=$(top_builddir)/gsoap/libgsoap.a
-SOAP_C_LIB_CK=$(top_builddir)/gsoap/libgsoapck.a
-SOAP_C_LIB_SSL=$(top_builddir)/gsoap/libgsoapssl.a
+SOAP_C_LIB=$(top_builddir)/gsoap/libgsoap.la
+SOAP_C_LIB_CK=$(top_builddir)/gsoap/libgsoapck.la
+SOAP_C_LIB_SSL=$(top_builddir)/gsoap/libgsoapssl.la
 
 SOAP_CPP_CORE=soapC.cpp
 SOAP_CPP_CLIENT=soapClient.cpp $(SOAP_CPP_CORE)
 SOAP_CPP_SERVER=soapServer.cpp $(SOAP_CPP_CORE)
-SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
-SOAP_CPP_LIB_CK=$(top_builddir)/gsoap/libgsoapck++.a
-SOAP_CPP_LIB_SSL=$(top_builddir)/gsoap/libgsoapssl++.a
+SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.la
+SOAP_CPP_LIB_CK=$(top_builddir)/gsoap/libgsoapck++.la
+SOAP_CPP_LIB_SSL=$(top_builddir)/gsoap/libgsoapssl++.la
diff --git a/gsoap/samples/autotest/Makefile.am b/gsoap/samples/autotest/Makefile.am
index 61e514c..4c1ba90 100644
--- a/gsoap/samples/autotest/Makefile.am
+++ b/gsoap/samples/autotest/Makefile.am
@@ -14,7 +14,7 @@ SOAP_FLAGS=-SL -T -I$(top_srcdir)/gsoap/import -I$(top_srcdir)/gsoap/custom
 WSDLINPUT=$(top_srcdir)/gsoap/samples/autotest/examples.wsdl
 SOAPHEADER=$(top_srcdir)/gsoap/samples/autotest/examples.h
 SOAP_CPP_SRC=soapC.cpp soapServer.cpp
-SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
+SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.la
 
 $(SOAP_CPP_SRC) : $(WSDLINPUT)
 	$(WSDL) $(WSDL_FLAGS) $(WSDLINPUT)
diff --git a/gsoap/samples/databinding/Makefile.am b/gsoap/samples/databinding/Makefile.am
index 86ad482..62b975c 100644
--- a/gsoap/samples/databinding/Makefile.am
+++ b/gsoap/samples/databinding/Makefile.am
@@ -14,7 +14,7 @@ SOAP_FLAGS=-0 -CS -p address -I$(top_srcdir)/gsoap/import
 WSDLINPUT=$(top_srcdir)/gsoap/samples/databinding/address.xsd
 SOAPHEADER=$(top_srcdir)/gsoap/samples/databinding/address.h
 SOAP_CPP_SRC=addressC.cpp
-SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
+SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.la
 
 $(SOAP_CPP_SRC) : $(WSDLINPUT)
 	$(WSDL) $(WSDL_FLAGS) $(WSDLINPUT)
