diff -ur gsoap-2.8.orig/configure.ac gsoap-2.8/configure.ac
--- gsoap-2.8.orig/configure.ac	2023-12-23 15:54:31.000000000 +0100
+++ gsoap-2.8/configure.ac	2024-01-22 23:35:13.194024293 +0100
@@ -15,8 +15,7 @@
 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 @@
     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)
@@ -318,15 +317,15 @@
       WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} -lwolfssl -lz"
       SAMPLE_INCLUDES=
       SAMPLE_SSL_LIBS="-lwolfssl -lz"
-      WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a"
+      WSDL2H_SOAP_CPP_LIB="libgsoapssl++.la"
     else
       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 @@
   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 -ur gsoap-2.8.orig/gsoap/Makefile.am gsoap-2.8/gsoap/Makefile.am
--- gsoap-2.8.orig/gsoap/Makefile.am	2023-12-23 15:54:31.000000000 +0100
+++ gsoap-2.8/gsoap/Makefile.am	2024-01-22 23:31:41.361498861 +0100
@@ -34,20 +34,30 @@
 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 -ur gsoap-2.8.orig/gsoap/samples/autotest/Makefile.am gsoap-2.8/gsoap/samples/autotest/Makefile.am
--- gsoap-2.8.orig/gsoap/samples/autotest/Makefile.am	2023-12-23 15:54:31.000000000 +0100
+++ gsoap-2.8/gsoap/samples/autotest/Makefile.am	2024-01-22 23:31:41.361498861 +0100
@@ -14,7 +14,7 @@
 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 -ur gsoap-2.8.orig/gsoap/samples/databinding/Makefile.am gsoap-2.8/gsoap/samples/databinding/Makefile.am
--- gsoap-2.8.orig/gsoap/samples/databinding/Makefile.am	2023-12-23 15:54:32.000000000 +0100
+++ gsoap-2.8/gsoap/samples/databinding/Makefile.am	2024-01-22 23:31:41.361498861 +0100
@@ -14,7 +14,7 @@
 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)
diff -ur gsoap-2.8.orig/gsoap/samples/Makefile.defines gsoap-2.8/gsoap/samples/Makefile.defines
--- gsoap-2.8.orig/gsoap/samples/Makefile.defines	2023-12-23 15:54:32.000000000 +0100
+++ gsoap-2.8/gsoap/samples/Makefile.defines	2024-01-22 23:31:41.362498864 +0100
@@ -13,13 +13,13 @@
 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
