[packages/xmlrpc-c] - follow Fedora and switch back to upstream maintained build system (too much effort to update, ther
qboosh
qboosh at pld-linux.org
Sat Jun 20 17:10:06 CEST 2026
commit 3546340efa056080b5b6e27532f83830de3f6f90
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Sat Jun 20 17:10:26 2026 +0200
- follow Fedora and switch back to upstream maintained build system (too much effort to update, there were already missing soname and targets updates)
xmlrpc-c-cmake.patch | 2152 -------------------------------------------------
xmlrpc-c-pc.patch | 65 ++
xmlrpc-c-soname.patch | 95 ---
xmlrpc-c.spec | 186 +++--
4 files changed, 177 insertions(+), 2321 deletions(-)
---
diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec
index 408aafe..f3f366f 100644
--- a/xmlrpc-c.spec
+++ b/xmlrpc-c.spec
@@ -1,3 +1,4 @@
+# TODO: consider packaging static libs?
Summary: XML-RPC C library - an implementation of the xmlrpc protocol
Summary(pl.UTF-8): Biblioteka XML-RPC C - implementacja protokołu xmlrpc
Name: xmlrpc-c
@@ -15,24 +16,21 @@ Source0: https://downloads.sourceforge.net/xmlrpc-c/%{name}-%{version}.tgz
Patch0: %{name}-fastdep.patch
Patch1: %{name}-soname.patch
Patch2: %{name}-cflags.patch
+Patch3: %{name}-pc.patch
# patches 10+ come from Fedora (cmake patch is updated from original version)
-Patch10: %{name}-cmake.patch
Patch11: %{name}-printf-size_t.patch
Patch12: %{name}-longlong.patch
Patch14: %{name}-30x-redirect.patch
-URL: http://xmlrpc-c.sourceforge.net/
-BuildRequires: cmake >= 2.6
+URL: https://xmlrpc-c.sourceforge.net/
BuildRequires: curl-devel
-BuildRequires: gcc >= 6:7
BuildRequires: libstdc++-devel
BuildRequires: libxml2-devel >= 2.0
BuildRequires: ncurses-devel >= 5.7-21
+BuildRequires: openssl-devel
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: rpmbuild(macros) >= 1.605
-BuildRequires: tar >= 1:1.22
BuildRequires: w3c-libwww-devel >= 5.4.0-20
-BuildRequires: xz
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
@@ -55,9 +53,9 @@ Summary(pl.UTF-8): Pliki nagłówkowe C dla głównych bibliotek xmlrpc-c
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: curl-devel
-Requires: expat-devel
Requires: libxml2-devel >= 2.0
Requires: w3c-libwww-devel
+Obsoletes: xmlrpc-c-static < 1.20
%description devel
C header files for xmlrpc-c base libraries.
@@ -135,6 +133,31 @@ C header files for xmlrpc-c server libraries.
%description server-devel -l pl.UTF-8
Pliki nagłówkowe C dla bibliotek serwerowych xmlrpc-c.
+%package openssl
+Summary: XML-RPC OpenSSL library
+Summary(pl.UTF-8): Biblioteka XML-RPC OpenSSL
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description openssl
+XML-RPC OpenSSL library.
+
+%description openssl -l pl.UTF-8
+Biblioteka XML-RPC OpenSSL.
+
+%package openssl-devel
+Summary: Development files for XML-RPC OpenSSL library
+Summary(pl.UTF-8): Pliki programistyczne biblioteki XML-RPC OpenSSL
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-openssl = %{version}-%{release}
+
+%description openssl-devel
+Development files for XML-RPC OpenSSL library.
+
+%description openssl-devel -l pl.UTF-8
+Pliki programistyczne biblioteki XML-RPC OpenSSL.
+
%package c++
Summary: C++ libraries for xmlrpc-c
Summary(pl.UTF-8): Biblioteki C++ xmlrpc-c
@@ -252,6 +275,7 @@ Requires: %{name} = %{version}-%{release}
Requires: %{name}-c++ = %{version}-%{release}
Requires: %{name}-client = %{version}-%{release}
Requires: %{name}-client++ = %{version}-%{release}
+Requires: %{name}-server = %{version}-%{release}
%description apps
XML-RPC is a quick-and-easy way to make procedure calls over the
@@ -272,34 +296,34 @@ XML-RPC.
%setup -q
%patch -P0 -p1
%patch -P2 -p1
-%patch -P10 -p1
%patch -P11 -p1
%patch -P12 -p1
%patch -P14 -p1
%patch -P1 -p1
+%patch -P3 -p1
%build
-mkdir -p build
-cd build
-%cmake .. \
- -D_lib:STRING=%{_lib} \
- -DCMAKE_C_FLAGS="-std=gnu17" \
- -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \
- -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
- -DMUST_BUILD_CURL_CLIENT:BOOL=ON \
- -DMUST_BUILD_LIBWWW_CLIENT:BOOL=ON \
- -DBUILD_SHARED_LIBS:BOOL=ON \
- -DENABLE_TOOLS:BOOL=ON
-
-%{__make}
+%configure \
+ --enable-libxml2-backend
+
+%if "%{_ver_ge %{cc_version} 14.0}" == "1"
+CSTD=-std=gnu17
+%endif
+%{__make} -j1 \
+ CFLAGS="%{rpmcflags} $CSTD" \
+
+%{__make} -C tools -j1 \
+ CFLAGS="%{rpmcflags} $CSTD"
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} -C build install \
+%{__make} -j1 install \
DESTDIR=$RPM_BUILD_ROOT \
+ STATIC_LIBRARIES_TO_INSTALL=
-chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so*
+%{__make} -C tools -j1 install \
+ DESTDIR=$RPM_BUILD_ROOT
# Win32-specific
%{__rm} $RPM_BUILD_ROOT%{_includedir}/xmlrpc_server_w32httpsys.h \
@@ -317,6 +341,9 @@ rm -rf $RPM_BUILD_ROOT
%post server -p /sbin/ldconfig
%postun server -p /sbin/ldconfig
+%post openssl -p /sbin/ldconfig
+%postun openssl -p /sbin/ldconfig
+
%post c++ -p /sbin/ldconfig
%postun c++ -p /sbin/ldconfig
@@ -329,20 +356,20 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
%doc README doc/{COPYING,CREDITS,HISTORY,SECURITY,TODO}
-%attr(755,root,root) %{_libdir}/libxmlrpc-c.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc-c.so.3
-%attr(755,root,root) %{_libdir}/libxmlrpc_abyss.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_abyss.so.3
-%attr(755,root,root) %{_libdir}/libxmlrpc_util.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_util.so.3
+%{_libdir}/libxmlrpc-c.so.*.*
+%ghost %{_libdir}/libxmlrpc-c.so.3
+%{_libdir}/libxmlrpc_abyss.so.*.*
+%ghost %{_libdir}/libxmlrpc_abyss.so.3
+%{_libdir}/libxmlrpc_util.so.*.*
+%ghost %{_libdir}/libxmlrpc_util.so.4
%files devel
%defattr(644,root,root,755)
%doc doc/{DEVELOPING,TESTING}
%attr(755,root,root) %{_bindir}/xmlrpc-c-config
-%attr(755,root,root) %{_libdir}/libxmlrpc-c.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_abyss.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_util.so
+%{_libdir}/libxmlrpc-c.so
+%{_libdir}/libxmlrpc_abyss.so
+%{_libdir}/libxmlrpc_util.so
%dir %{_includedir}/xmlrpc-c
%{_includedir}/xmlrpc-c/abyss*.h
%{_includedir}/xmlrpc-c/base.h
@@ -360,30 +387,30 @@ rm -rf $RPM_BUILD_ROOT
%files client
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libxmlrpc_client.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_client.so.3
+%{_libdir}/libxmlrpc_client.so.*.*
+%ghost %{_libdir}/libxmlrpc_client.so.3
%files client-devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libxmlrpc_client.so
+%{_libdir}/libxmlrpc_client.so
%{_includedir}/xmlrpc-c/client*.h
%{_includedir}/xmlrpc_client.h
%{_pkgconfigdir}/xmlrpc_client.pc
%files server
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libxmlrpc_server.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server.so.3
-%attr(755,root,root) %{_libdir}/libxmlrpc_server_abyss.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server_abyss.so.3
-%attr(755,root,root) %{_libdir}/libxmlrpc_server_cgi.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server_cgi.so.3
+%{_libdir}/libxmlrpc_server.so.*.*
+%ghost %{_libdir}/libxmlrpc_server.so.3
+%{_libdir}/libxmlrpc_server_abyss.so.*.*
+%ghost %{_libdir}/libxmlrpc_server_abyss.so.3
+%{_libdir}/libxmlrpc_server_cgi.so.*.*
+%ghost %{_libdir}/libxmlrpc_server_cgi.so.3
%files server-devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libxmlrpc_server.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_server_abyss.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_server_cgi.so
+%{_libdir}/libxmlrpc_server.so
+%{_libdir}/libxmlrpc_server_abyss.so
+%{_libdir}/libxmlrpc_server_cgi.so
%{_includedir}/xmlrpc-c/server.h
%{_includedir}/xmlrpc-c/server_abyss.h
%{_includedir}/xmlrpc-c/server_cgi.h
@@ -394,26 +421,36 @@ rm -rf $RPM_BUILD_ROOT
%{_pkgconfigdir}/xmlrpc_server_abyss.pc
%{_pkgconfigdir}/xmlrpc_server_cgi.pc
+%files openssl
+%defattr(644,root,root,755)
+%{_libdir}/libxmlrpc_openssl.so.*.*
+%ghost %{_libdir}/libxmlrpc_openssl.so.1
+
+%files openssl-devel
+%defattr(644,root,root,755)
+%{_libdir}/libxmlrpc_openssl.so
+%{_pkgconfigdir}/xmlrpc_openssl.pc
+
%files c++
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libxmlrpc++.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc++.so.8
-%attr(755,root,root) %{_libdir}/libxmlrpc_abyss++.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_abyss++.so.8
-%attr(755,root,root) %{_libdir}/libxmlrpc_cpp.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_cpp.so.8
-%attr(755,root,root) %{_libdir}/libxmlrpc_packetsocket.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_packetsocket.so.8
-%attr(755,root,root) %{_libdir}/libxmlrpc_util++.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_util++.so.8
+%{_libdir}/libxmlrpc++.so.*.*
+%ghost %{_libdir}/libxmlrpc++.so.9
+%{_libdir}/libxmlrpc_abyss++.so.*.*
+%ghost %{_libdir}/libxmlrpc_abyss++.so.9
+%{_libdir}/libxmlrpc_cpp.so.*.*
+%ghost %{_libdir}/libxmlrpc_cpp.so.9
+%{_libdir}/libxmlrpc_packetsocket.so.*.*
+%ghost %{_libdir}/libxmlrpc_packetsocket.so.9
+%{_libdir}/libxmlrpc_util++.so.*.*
+%ghost %{_libdir}/libxmlrpc_util++.so.9
%files c++-devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libxmlrpc++.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_abyss++.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_cpp.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_packetsocket.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_util++.so
+%{_libdir}/libxmlrpc++.so
+%{_libdir}/libxmlrpc_abyss++.so
+%{_libdir}/libxmlrpc_cpp.so
+%{_libdir}/libxmlrpc_packetsocket.so
+%{_libdir}/libxmlrpc_util++.so
%{_includedir}/xmlrpc-c/AbyssChanSwitch.hpp
%{_includedir}/xmlrpc-c/AbyssChanSwitchUnix.hpp
%{_includedir}/xmlrpc-c/AbyssEnvironment.hpp
@@ -437,32 +474,32 @@ rm -rf $RPM_BUILD_ROOT
%files client++
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libxmlrpc_client++.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_client++.so.8
+%{_libdir}/libxmlrpc_client++.so.*.*
+%ghost %{_libdir}/libxmlrpc_client++.so.9
%files client++-devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libxmlrpc_client++.so
+%{_libdir}/libxmlrpc_client++.so
%{_includedir}/xmlrpc-c/client*.hpp
%{_pkgconfigdir}/xmlrpc_client++.pc
%files server++
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libxmlrpc_server++.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server++.so.8
-%attr(755,root,root) %{_libdir}/libxmlrpc_server_abyss++.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server_abyss++.so.8
-%attr(755,root,root) %{_libdir}/libxmlrpc_server_cgi++.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server_cgi++.so.8
-%attr(755,root,root) %{_libdir}/libxmlrpc_server_pstream++.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmlrpc_server_pstream++.so.8
+%{_libdir}/libxmlrpc_server++.so.*.*
+%ghost %{_libdir}/libxmlrpc_server++.so.9
+%{_libdir}/libxmlrpc_server_abyss++.so.*.*
+%ghost %{_libdir}/libxmlrpc_server_abyss++.so.9
+%{_libdir}/libxmlrpc_server_cgi++.so.*.*
+%ghost %{_libdir}/libxmlrpc_server_cgi++.so.9
+%{_libdir}/libxmlrpc_server_pstream++.so.*.*
+%ghost %{_libdir}/libxmlrpc_server_pstream++.so.9
%files server++-devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libxmlrpc_server++.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_server_abyss++.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_server_cgi++.so
-%attr(755,root,root) %{_libdir}/libxmlrpc_server_pstream++.so
+%{_libdir}/libxmlrpc_server++.so
+%{_libdir}/libxmlrpc_server_abyss++.so
+%{_libdir}/libxmlrpc_server_cgi++.so
+%{_libdir}/libxmlrpc_server_pstream++.so
%{_includedir}/xmlrpc-c/server_abyss.hpp
%{_includedir}/xmlrpc-c/server_pstream.hpp
%{_pkgconfigdir}/xmlrpc_server++.pc
@@ -479,6 +516,7 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_bindir}/xml-rpc-api2cpp
%attr(755,root,root) %{_bindir}/xml-rpc-api2txt
%attr(755,root,root) %{_bindir}/xmlrpc_cpp_proxy
+%attr(755,root,root) %{_bindir}/xmlrpc_dumpserver
%attr(755,root,root) %{_bindir}/xmlrpc_pstream
%{_mandir}/man1/xml-rpc-api2cpp.1*
%{_mandir}/man1/xml-rpc-api2txt.1*
diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch
deleted file mode 100644
index f0f05f3..0000000
--- a/xmlrpc-c-cmake.patch
+++ /dev/null
@@ -1,2152 +0,0 @@
-From 26a4d5168bb69474c3cc304f90592d37bf0be8fe Mon Sep 17 00:00:00 2001
-From: Enrico Scholz <enrico.scholz at informatik.tu-chemnitz.de>
-Date: Sat, 5 Apr 2008 10:55:02 +0200
-Subject: [PATCH 1/8] make -> cmake transition
-
-cmake: updated
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-new file mode 100644
-index 0000000..2876dea
---- /dev/null
-+++ b/CMakeLists.txt
-@@ -0,0 +1,295 @@
-+## -*- cmake -*-
-+project(xmlrpc-c)
-+include(FindPkgConfig)
-+include(CheckIncludeFile)
-+include(CheckFunctionExists)
-+
-+cmake_minimum_required(VERSION 3.5)
-+
-+if(COMMAND cmake_policy)
-+ cmake_policy(SET CMP0003 NEW)
-+endif()
-+
-+
-+set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c")
-+set(XMLRPC_C_VERSION_MINOR "43" CACHE STRING "Version (minor) of xmlrpc-c")
-+set(XMLRPC_C_VERSION_POINT "08" CACHE STRING "Version (point) of xmlrpc-c")
-+
-+set(XMLRPC_C_VERSION
-+ "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}"
-+ CACHE STRING "Version of xmlrpc-c")
-+
-+set(XMLRPC_C_LIBVERSION "3.${XMLRPC_C_VERSION_MINOR}")
-+set(XMLRPC_C_SOVERSION "3")
-+
-+set(XMLRPC_CXX_LIBVERSION "8.${XMLRPC_C_VERSION_MINOR}")
-+set(XMLRPC_CXX_SOVERSION "8")
-+
-+string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MAJOR_NUM "${XMLRPC_C_VERSION_MAJOR}")
-+string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MINOR_NUM "${XMLRPC_C_VERSION_MINOR}")
-+string(REGEX REPLACE "^0+(.)" "\\1" XMLRPC_C_VERSION_POINT_NUM "${XMLRPC_C_VERSION_POINT}")
-+
-+
-+macro(ensc_set_bool NAME VALUE DESC)
-+ set(${NAME} ${VALUE} CACHE BOOL ${DESC})
-+ if(${NAME})
-+ set(_${NAME} 1)
-+ else(${NAME})
-+ set(_${NAME} 0)
-+ endif(${NAME})
-+endmacro(ensc_set_bool)
-+
-+macro(ensc_pkgconfig COMP)
-+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${COMP}.pc.cmake
-+ ${CMAKE_CURRENT_BINARY_DIR}/${COMP}.pc
-+ @ONLY)
-+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${COMP}.pc
-+ DESTINATION ${pkgconfdir})
-+endmacro(ensc_pkgconfig)
-+
-+macro(ensc_pkgconfig_lib TARGET LIBS)
-+ get_target_property(libtype ${TARGET} TYPE)
-+ if("${libtype}" STREQUAL "STATIC_LIBRARY")
-+ list(APPEND ${TARGET}_pkgconfig_libs "${LIBS}")
-+ endif("${libtype}" STREQUAL "STATIC_LIBRARY")
-+endmacro(ensc_pkgconfig_lib)
-+
-+macro(ensc_set_link_exe_flags)
-+ ## HACK: libwww has broken inter-lib dependencies and '-Wl,--as-needed' fails with it
-+ if(NOT MUST_BUILD_LIBWWW_CLIENT)
-+ set_target_properties(${ARGV}
-+ PROPERTIES
-+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS})
-+ endif(NOT MUST_BUILD_LIBWWW_CLIENT)
-+endmacro(ensc_set_link_exe_flags)
-+
-+###########
-+if(WIN32)
-+ find_program(WININET_CONFIG_EXECUTABLE wininet-config)
-+
-+ if(DEFINED MUST_BUILD_WININET_CLIENT)
-+ set(tmp ${MUST_BUILD_WININET_CLIENT})
-+ else(DEFINED MUST_BUILD_WININET_CLIENT)
-+ if(WININET_CONFIG_EXECUTABLE)
-+ set(tmp 1)
-+ else(WININET_CONFIG_EXECUTABLE)
-+ set(tmp 0)
-+ endif(WININET_CONFIG_EXECUTABLE)
-+ endif(DEFINED MUST_BUILD_WININET_CLIENT)
-+
-+ set(MSVCRT yes)
-+else(WIN32)
-+ set(tmp 0)
-+endif(WIN32)
-+
-+if(tmp)
-+ set(MUST_BUILD_CLIENT 1)
-+ execute_process(COMMAND ${WININET_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE WININET_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
-+ execute_process(COMMAND ${WININET_CONFIG_EXECUTABLE} --cflags OUTPUT_VARIABLE WININET_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
-+ execute_process(COMMAND ${WININET_CONFIG_EXECUTABLE} --libs OUTPUT_VARIABLE WININET_LDADD OUTPUT_STRIP_TRAILING_WHITESPACE)
-+ message(STATUS "Using WinInet ${WININET_VERSION} transport")
-+endif(tmp)
-+
-+ensc_set_bool(MUST_BUILD_WININET_CLIENT ${tmp} "Set iff WinInet client transport shall be built")
-+set(wininet_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/wininet_transport)
-+
-+###########
-+if(DEFINED MUST_BUILD_CURL_CLIENT)
-+ set(tmp REQUIRED)
-+else(DEFINED MUST_BUILD_CURL_CLIENT)
-+ set(tmp)
-+endif(DEFINED MUST_BUILD_CURL_CLIENT)
-+
-+pkg_check_modules(CURL ${tmp} libcurl)
-+
-+ensc_set_bool(MUST_BUILD_CURL_CLIENT ${CURL_FOUND} "Set iff Curl client transport shall be built")
-+set(curl_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/curl_transport)
-+
-+if(MUST_BUILD_CURL_CLIENT)
-+ set(MUST_BUILD_CLIENT 1)
-+endif(MUST_BUILD_CURL_CLIENT)
-+
-+###########
-+find_program(LIBWWW_CONFIG_EXECUTABLE libwww-config)
-+if(DEFINED MUST_BUILD_LIBWWW_CLIENT)
-+ set(tmp ${MUST_BUILD_LIBWWW_CLIENT})
-+else(DEFINED MUST_BUILD_LIBWWW_CLIENT)
-+ if(LIBWWW_CONFIG_EXECUTABLE)
-+ set(tmp 1)
-+ else(LIBWWW_CONFIG_EXECUTABLE)
-+ set(tmp 0)
-+ endif(LIBWWW_CONFIG_EXECUTABLE)
-+endif(DEFINED MUST_BUILD_LIBWWW_CLIENT)
-+
-+if(tmp)
-+ set(MUST_BUILD_CLIENT 1)
-+ execute_process(COMMAND ${LIBWWW_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE LIBWWW_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
-+ execute_process(COMMAND ${LIBWWW_CONFIG_EXECUTABLE} --libs OUTPUT_VARIABLE LIBWWW_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
-+ execute_process(COMMAND ${LIBWWW_CONFIG_EXECUTABLE} --cflags OUTPUT_VARIABLE LIBWWW_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
-+ message(STATUS "Using libwww ${LIBWWW_VERSION} transport")
-+endif(tmp)
-+ensc_set_bool(MUST_BUILD_LIBWWW_CLIENT ${tmp} "Set iff LibWWW client transport shall be built")
-+set(libwww_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/libwww_transport)
-+
-+############
-+
-+set(ENABLE_CGI_SERVER 1 CACHE BOOL "Set iff CGI server shall be enabled")
-+set(ENABLE_CPLUSPLUS 1 CACHE BOOL "Set iff C++ part shall be enabled")
-+set(ENABLE_ABYSS_SERVER 1 CACHE BOOL "Set iff Abyss server shall be enabled")
-+set(ENABLE_LIBXML2_BACKEND 1 CACHE BOOL "Set iff libxml2 backend shall be used")
-+set(ENABLE_ABYSS_SERVER 1 CACHE BOOL "Set iff abyss server shall be enabled")
-+set(ENABLE_ABYSS_THREADS 1 CACHE BOOL "Use pthread")
-+set(MUST_BUILD_ABYSS_OPENSSL 1 CACHE BOOL "Use OpenSSL")
-+
-+if(MUST_BUILD_ABYSS_OPENSSL)
-+ pkg_check_modules(OPENSSL openssl)
-+endif(MUST_BUILD_ABYSS_OPENSSL)
-+
-+if(ENABLE_LIBXML2_BACKEND)
-+ pkg_check_modules(LIBXML2 libxml-2.0)
-+
-+ if(LIBXML2_FOUND)
-+ set(libxml_pkgconfig libxml-2.0) # TODO: add more alternative modules
-+ endif(LIBXML2_FOUND)
-+endif(ENABLE_LIBXML2_BACKEND)
-+
-+###########
-+
-+pkg_check_modules(NCURSES ncurses)
-+find_library(READLINE readline)
-+
-+if (MUST_BUILD_LIBWWW_CLIENT OR MUST_BUILD_WININET_CLIENT OR MUST_BUILD_CURL_CLIENT)
-+ if (NCURSES_FOUND AND READLINE)
-+ set(BUILD_XMLRPC_PSTREAM 1)
-+ message(STATUS "Building xmlrpc_pstream tool")
-+ endif()
-+ message(STATUS "Tools will be built")
-+ set(BUILD_TOOLS 1)
-+else()
-+ message(STATUS "Tools will not be built")
-+ set(BUILD_TOOLS 0)
-+endif()
-+
-+#### <wchar.h> tests
-+check_include_file(wchar.h _have_wchar_h)
-+if(_have_wchar_h)
-+ set(HAVE_WCHAR_H 1)
-+else(_have_wchar_h)
-+ set(HAVE_WCHAR_H 1)
-+endif(_have_wchar_h)
-+set(XMLRPC_HAVE_WCHAR ${HAVE_WCHAR_H})
-+set(HAVE_WCHAR_H_DEFINE ${HAVE_WCHAR_H})
-+
-+
-+#######
-+set(LINKER_AS_NEEDED 1 CACHE BOOL "Use the --as-needed linker option")
-+if(LINKER_AS_NEEDED)
-+ set(XMLRPC_LINKER_FLAGS "-Wl,--as-needed")
-+endif(LINKER_AS_NEEDED)
-+
-+
-+try_compile(HAVE_ATTR_UNUSED
-+ ${CMAKE_BINARY_DIR}/
-+ ${xmlrpc-c_SOURCE_DIR}/cmake/try-attr.cc
-+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=-DCMAKE_TEST_ATTR=__unused__)
-+
-+try_compile(VA_LIST_IS_NOT_ARRAY
-+ ${CMAKE_BINARY_DIR}/
-+ ${xmlrpc-c_SOURCE_DIR}/cmake/va-list-is-array.c)
-+
-+if(VA_LIST_IS_NOT_ARRAY)
-+ set(VA_LIST_IS_ARRAY 0)
-+ message(STATUS "va_list is not an array")
-+else(VA_LIST_IS_NOT_ARRAY)
-+ set(VA_LIST_IS_ARRAY 1)
-+ message(STATUS "va_list is an array")
-+endif(VA_LIST_IS_NOT_ARRAY)
-+
-+
-+if(HAVE_ATTR_UNUSED)
-+ set(ATTR_UNUSED "__attribute__((__unused__))")
-+endif(HAVE_ATTR_UNUSED)
-+
-+if(WIN32)
-+ set(DIRECTORY_SEPARATOR "\\")
-+ set(THREAD_LIBS "")
-+else(WIN32)
-+ set(DIRECTORY_SEPARATOR "/")
-+ set(THREAD_LIBS "pthread")
-+ set(THREAD_LIBS_PKGCONFIG "-lpthread")
-+endif(WIN32)
-+
-+check_include_file(sys/filio.h HAVE_SYS_FILIO_H)
-+check_include_file(sys/ioctl.h HAVE_SYS_IOCTL_H)
-+check_include_file(sys/select.h HAVE_SYS_SELECT_H)
-+check_function_exists(setenv HAVE_SETENV)
-+check_function_exists(strcasecmp HAVE_STRCASECMP)
-+check_function_exists(_stricmp HAVE__STRICMP)
-+check_function_exists(stricmp HAVE_STRICMP)
-+check_function_exists(strtoll HAVE_STRTOLL)
-+check_function_exists(__strtoll HAVE___STRTOLL)
-+check_function_exists(strtoull HAVE_STRTOULL)
-+check_function_exists(__strtoull HAVE___STRTOULL)
-+check_function_exists(strtoq HAVE_STRTOQ)
-+check_function_exists(strtouq HAVE_STRTOUQ)
-+check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
-+check_function_exists(setgroups HAVE_SETGROUPS)
-+check_function_exists(asprintf HAVE_ASPRINTF)
-+check_function_exists(pselect HAVE_PSELECT)
-+check_function_exists(wcsncmp HAVE_WCSNCMP)
-+check_function_exists(localtime_r HAVE_LOCALTIME_R)
-+check_function_exists(gmtime_r HAVE_GMTIME_R)
-+
-+
-+configure_file(${xmlrpc-c_SOURCE_DIR}/xmlrpc_config.h.cmake
-+ ${xmlrpc-c_BINARY_DIR}/xmlrpc_config.h
-+ ESCAPE_QUOTES @ONLY)
-+
-+configure_file(${xmlrpc-c_SOURCE_DIR}/version.h.cmake
-+ ${xmlrpc-c_BINARY_DIR}/version.h
-+ ESCAPE_QUOTES @ONLY)
-+
-+configure_file(${xmlrpc-c_SOURCE_DIR}/transport_config.h.cmake
-+ ${xmlrpc-c_BINARY_DIR}/transport_config.h
-+ ESCAPE_QUOTES @ONLY)
-+
-+configure_file(${xmlrpc-c_SOURCE_DIR}/include/xmlrpc-c/config.h.cmake
-+ ${xmlrpc-c_BINARY_DIR}/include/xmlrpc-c/config.h
-+ ESCAPE_QUOTES @ONLY)
-+
-+
-+include_directories(${xmlrpc-c_SOURCE_DIR}/include)
-+include_directories(${xmlrpc-c_BINARY_DIR}/include)
-+include_directories(${xmlrpc-c_SOURCE_DIR}/lib/util/include)
-+include_directories(${xmlrpc-c_BINARY_DIR})
-+
-+add_custom_target(dist
-+ rm -rf _dist && mkdir -p _dist/xmlrpc-c-${XMLRPC_C_VERSION}
-+ COMMAND cp -a ${xmlrpc-c_SOURCE_DIR}/* _dist/xmlrpc-c-${XMLRPC_C_VERSION}/
-+ COMMAND cd _dist && tar cjf ../xmlrpc-c-${XMLRPC_C_VERSION}.tar.bz2 xmlrpc-c-${XMLRPC_C_VERSION} --exclude=.git --exclude=CVS --exclude=.svn
-+ )
-+
-+set(_lib lib CACHE STRING "Basename of the library-directory; usually 'lib' or 'lib64' (on multilib archs)")
-+set(_bin bin CACHE STRING "Basename of the bin-directory; usually 'bin'")
-+set(prefix ${CMAKE_INSTALL_PREFIX})
-+set(libdir "${prefix}/${_lib}")
-+set(bindir "${prefix}/${_bin}")
-+set(mandir "${prefix}/share/man")
-+set(pkgconfdir "${libdir}/pkgconfig")
-+set(includedir "${prefix}/include")
-+
-+#############
-+
-+install(PROGRAMS xmlrpc-c-config DESTINATION ${_bin})
-+
-+enable_testing()
-+
-+add_subdirectory(test)
-+add_subdirectory(lib)
-+add_subdirectory(examples)
-+add_subdirectory(include)
-+add_subdirectory(src)
-+
-+if (BUILD_TOOLS)
-+ add_subdirectory(tools)
-+endif()
-diff --git a/cmake/try-attr.cc b/cmake/try-attr.cc
-new file mode 100644
-index 0000000..4668c5b
---- /dev/null
-+++ b/cmake/try-attr.cc
-@@ -0,0 +1,3 @@
-+int x __attribute__((CMAKE_TEST_ATTR));
-+
-+int main() {}
-diff --git a/cmake/va-list-is-array.c b/cmake/va-list-is-array.c
-new file mode 100644
-index 0000000..1ad0bab
---- /dev/null
-+++ b/cmake/va-list-is-array.c
-@@ -0,0 +1,9 @@
-+#include <stdarg.h>
-+
-+void foo()
-+{
-+ va_list list1, list2;
-+ list1 = list2;
-+}
-+
-+int main() {}
-diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
-new file mode 100644
-index 0000000..1535adf
---- /dev/null
-+++ b/examples/CMakeLists.txt
-@@ -0,0 +1,67 @@
-+# -*- cmake -*-
-+
-+include_directories(${CMAKE_CURRENT_BINARY_DIR})
-+
-+macro(ensc_add_example name ext class)
-+ # HACK: avoid name collision of c and c++ program
-+ if(${ext} STREQUAL "cpp")
-+ set(_target ${name}++)
-+ else(${ext} STREQUAL "cpp")
-+ set(_target ${name})
-+ endif(${ext} STREQUAL "cpp")
-+
-+ add_executable(${_target} ${name}.${ext})
-+ target_link_libraries(${_target} ${${class}_LIBS})
-+ list(APPEND ${class}_TARGETS ${_target})
-+ list(APPEND example_TARGETS ${_target})
-+endmacro(ensc_add_example)
-+
-+if(ENABLE_CPLUSPLUS)
-+ add_subdirectory(cpp)
-+endif(ENABLE_CPLUSPLUS)
-+
-+
-+set(base_LIBS xmlrpc)
-+ensc_add_example(json c base)
-+ensc_add_example(gen_sample_add_xml c base)
-+
-+if(MUST_BUILD_CLIENT)
-+ set(client_LIBS xmlrpc_client)
-+
-+ ensc_add_example(auth_client c client)
-+ ensc_add_example(compound_value_client c client)
-+ ensc_add_example(synch_client c client)
-+ ensc_add_example(xmlrpc_sample_add_client c client)
-+ ensc_add_example(xmlrpc_asynch_client c client)
-+endif(MUST_BUILD_CLIENT)
-+
-+if(MUST_BUILD_CURL_CLIENT)
-+ set(client_LIBS xmlrpc_client)
-+
-+ if(NOT DEFINED MSVCRT)
-+ ensc_add_example(interrupted_client c client)
-+ endif(NOT DEFINED MSVCRT)
-+endif(MUST_BUILD_CURL_CLIENT)
-+
-+if(ENABLE_CGI_SERVER)
-+ set(cgi_server_LIBS xmlrpc_server_cgi)
-+
-+ ensc_add_example(xmlrpc_sample_add_server_cgi c cgi_server)
-+endif(ENABLE_CGI_SERVER)
-+
-+if(ENABLE_ABYSS_SERVER)
-+ set(abyss_server_LIBS xmlrpc_server_abyss)
-+
-+ ensc_add_example(compound_value_server c abyss_server)
-+ ensc_add_example(xmlrpc_inetd_server c abyss_server)
-+ ensc_add_example(xmlrpc_socket_server c abyss_server)
-+ ensc_add_example(xmlrpc_loop_server c abyss_server)
-+ ensc_add_example(xmlrpc_sample_add_server c abyss_server)
-+ ensc_add_example(xmlrpc_server_validatee c abyss_server)
-+
-+ if(NOT DEFINED MSVCRT)
-+ ensc_add_example(interrupted_server c abyss_server)
-+ endif(NOT DEFINED MSVCRT)
-+endif(ENABLE_ABYSS_SERVER)
-+
-+ensc_set_link_exe_flags(${example_TARGETS})
-diff --git a/examples/config.h b/examples/config.h
-new file mode 100644
-index 0000000..31d5f9b
---- /dev/null
-+++ b/examples/config.h
-@@ -0,0 +1 @@
-+#include "../xmlrpc_config.h"
-diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt
-new file mode 100644
-index 0000000..093a75d
---- /dev/null
-+++ b/examples/cpp/CMakeLists.txt
-@@ -0,0 +1,34 @@
-+# -*- cmake -*-
-+
-+if(ENABLE_ABYSS_SERVER)
-+ set(abyss_serverxx_LIBS xmlrpc_server_abyss++)
-+
-+ ensc_add_example(xmlrpc_inetd_server cpp abyss_serverxx)
-+ ensc_add_example(xmlrpc_loop_server cpp abyss_serverxx)
-+ ensc_add_example(xmlrpc_sample_add_server cpp abyss_serverxx)
-+ ensc_add_example(callinfo_abyss_server cpp abyss_serverxx)
-+endif(ENABLE_ABYSS_SERVER)
-+
-+if (ENABLE_CGI_SERVER)
-+ set(cgi_serverxx_LIBS xmlrpc_server_cgi++)
-+
-+ ensc_add_example(xmlrpc_sample_add_server_cgi cpp cgi_serverxx)
-+endif(ENABLE_CGI_SERVER)
-+
-+if(MUST_BUILD_CLIENT)
-+ set(abyss_clientxx_LIBS xmlrpc_client++)
-+
-+ ensc_add_example(xmlrpc_sample_add_client cpp abyss_clientxx)
-+ ensc_add_example(sample_add_client_complex cpp abyss_clientxx)
-+ ensc_add_example(asynch_client cpp abyss_clientxx)
-+
-+ ensc_add_example(pstream_client cpp abyss_clientxx)
-+endif(MUST_BUILD_CLIENT)
-+
-+set(pstream_serverxx_LIBS xmlrpc_server_pstream++)
-+ensc_add_example(pstream_inetd_server cpp pstream_serverxx)
-+ensc_add_example(pstream_serial_server cpp pstream_serverxx)
-+
-+
-+
-+ensc_set_link_exe_flags(${example_TARGETS})
-diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
-new file mode 100644
-index 0000000..ebfdba5
---- /dev/null
-+++ b/include/CMakeLists.txt
-@@ -0,0 +1,3 @@
-+# -*- cmake -*-
-+
-+add_subdirectory(xmlrpc-c)
-diff --git a/include/xmlrpc-c/CMakeLists.txt b/include/xmlrpc-c/CMakeLists.txt
-new file mode 100644
-index 0000000..b9386b8
---- /dev/null
-+++ b/include/xmlrpc-c/CMakeLists.txt
-@@ -0,0 +1,84 @@
-+# -*- cmake -*-
-+
-+macro(ensc_install_symlink src dst)
-+ install(CODE "EXECUTE_PROCESS(COMMAND ln -s xmlrpc-c/${src} \$ENV{DESTDIR}${includedir}/${dst})")
-+endmacro(ensc_install_symlink)
-+
-+list(APPEND headers
-+ ${CMAKE_CURRENT_BINARY_DIR}/config.h
-+ inttypes.h
-+ c_util.h
-+ util.h
-+ base.h
-+ json.h
-+ abyss.h
-+ abyss_unixsock.h
-+ abyss_winsock.h
-+ server.h
-+ server_abyss.h
-+ server_w32httpsys.h
-+ oldxmlrpc.h)
-+
-+list(APPEND compat_links "oldxmlrpc.h xmlrpc.h")
-+list(APPEND compat_links "server.h xmlrpc_server.h")
-+list(APPEND compat_links "server_abyss.h xmlrpc_abyss.h")
-+list(APPEND compat_links "server_w32httpsys.h xmlrpc_server_w32httpsys.h")
-+
-+
-+if(ENABLE_CPLUSPLUS)
-+ list(APPEND headers
-+ oldcppwrapper.hpp
-+ girerr.hpp
-+ girmem.hpp
-+ base.hpp
-+ base64.hpp
-+ timeout.hpp
-+ xml.hpp
-+ registry.hpp
-+ server_abyss.hpp
-+ packetsocket.hpp
-+ server_pstream.hpp
-+ AbyssEnvironment.hpp
-+ AbyssServer.hpp
-+ abyss_reqhandler_xmlrpc.hpp
-+ AbyssChanSwitch.hpp
-+ AbyssChanSwitchUnix.hpp)
-+
-+ list(APPEND compat_links "oldcppwrapper.hpp XmlRpcCpp.h")
-+endif(ENABLE_CPLUSPLUS)
-+
-+if(MUST_BUILD_CLIENT)
-+ list(APPEND headers
-+ client.h
-+ transport.h
-+ client_global.h)
-+
-+ list(APPEND compat_links "client.h xmlrpc_client.h")
-+
-+ if(ENABLE_CPLUSPLUS)
-+ list(APPEND headers
-+ client.hpp
-+ client_transport.hpp
-+ client_simple.hpp)
-+ endif(ENABLE_CPLUSPLUS)
-+endif(MUST_BUILD_CLIENT)
-+
-+if(ENABLE_CGI_SERVER)
-+ list(APPEND headers
-+ server_cgi.h)
-+
-+ list(APPEND compat_links "server_cgi.h xmlrpc_cgi.h")
-+endif(ENABLE_CGI_SERVER)
-+
-+if(MUST_BUILD_OPENSSL)
-+ list(APPEND headers openssl_thread.h)
-+endif(MUST_BUILD_OPENSSL)
-+
-+install(FILES
-+ ${headers}
-+ DESTINATION ${includedir}/xmlrpc-c)
-+
-+foreach (ln ${compat_links})
-+ separate_arguments(ln)
-+ ensc_install_symlink(${ln})
-+endforeach(ln)
-diff --git a/include/xmlrpc-c/config.h.cmake b/include/xmlrpc-c/config.h.cmake
-new file mode 100644
-index 0000000..48f64be
---- /dev/null
-+++ b/include/xmlrpc-c/config.h.cmake
-@@ -0,0 +1,34 @@
-+/* --*- c -*-- */
-+#ifndef XMLRPC_C_CONFIG_H_INCLUDED
-+#define XMLRPC_C_CONFIG_H_INCLUDED
-+
-+/* This file, part of XML-RPC For C/C++, is meant to
-+ define characteristics of this particular installation
-+ that the other <xmlrpc-c/...> header files need in
-+ order to compile correctly when #included in Xmlrpc-c
-+ user code.
-+
-+ Those header files #include this one.
-+
-+ This file was created by a make rule.
-+*/
-+#define XMLRPC_HAVE_WCHAR @HAVE_WCHAR_H@
-+#ifdef _WIN32
-+ /* SOCKET is a type defined by <winsock.h>. Anyone who
-+ uses XMLRPC_SOCKET on a WIN32 system must #include
-+ <winsock.h>
-+ */
-+ #define XMLRPC_SOCKET SOCKET
-+ #define XMLRPC_HAVE_TIMEVAL 0
-+ #define XMLRPC_HAVE_TIMESPEC 0
-+ #define XMLRPC_HAVE_PTHREAD 0
-+ #define XMLRPC_HAVE_WINTHREAD 1
-+#else
-+ #define XMLRPC_SOCKET int
-+ #define XMLRPC_HAVE_TIMEVAL 1
-+ #define XMLRPC_HAVE_TIMESPEC 1
-+ #define XMLRPC_HAVE_PTHREAD 1
-+ #define XMLRPC_HAVE_WINTHREAD 0
-+#endif
-+
-+#endif
-diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
-new file mode 100644
-index 0000000..7f8f912
---- /dev/null
-+++ b/lib/CMakeLists.txt
-@@ -0,0 +1,14 @@
-+## -*- cmake -*-
-+
-+add_subdirectory(abyss)
-+add_subdirectory(libutil)
-+add_subdirectory(util)
-+add_subdirectory(curl_transport)
-+add_subdirectory(libwww_transport)
-+add_subdirectory(wininet_transport)
-+add_subdirectory(libutil++)
-+add_subdirectory(abyss++)
-+
-+if(NOT ENABLE_LIBXML2_BACKEND)
-+ add_subdirectory(expat)
-+endif(NOT ENABLE_LIBXML2_BACKEND)
-diff --git a/lib/abyss/CMakeLists.txt b/lib/abyss/CMakeLists.txt
-new file mode 100644
-index 0000000..2358061
---- /dev/null
-+++ b/lib/abyss/CMakeLists.txt
-@@ -0,0 +1,3 @@
-+## -*- cmake -*-
-+
-+SUBDIRS(src)
-diff --git a/lib/abyss/src/CMakeLists.txt b/lib/abyss/src/CMakeLists.txt
-new file mode 100644
-index 0000000..b1813bb
---- /dev/null
-+++ b/lib/abyss/src/CMakeLists.txt
-@@ -0,0 +1,80 @@
-+## -*- cmake -*-
-+
-+set(xmlrpc_abyss_SOURCES
-+ abyss_info.h
-+ channel.c
-+ channel.h
-+ chanswitch.c
-+ chanswitch.h
-+ conf.c
-+ conn.c
-+ conn.h
-+ data.c
-+ data.h
-+ date.c
-+ date.h
-+ file.c
-+ file.h
-+ handler.c
-+ handler.h
-+ http.c
-+ http.h
-+ init.c
-+ response.c
-+ server.c
-+ server.h
-+ session.c
-+ session.h
-+ sessionReadRequest.c
-+ sessionReadRequest.h
-+ socket.c
-+ socket.h
-+ thread.h
-+ token.c
-+ token.h
-+ trace.c
-+ trace.h)
-+
-+add_definitions(-D_UNIX)
-+
-+if(WIN32)
-+ list(APPEND xmlrpc_abyss_SOURCES thread_windows.c)
-+else(WIN32)
-+ list(APPEND xmlrpc_abyss_SOURCES socket_unix.c socket_unix.h sockutil.c sockutil.h)
-+
-+ if(ENABLE_ABYSS_THREADS)
-+ list(APPEND xmlrpc_abyss_SOURCES thread_pthread.c)
-+ else(ENABLE_ABYSS_THREADS)
-+ list(APPEND xmlrpc_abyss_SOURCES thread_fork.c)
-+ endif(ENABLE_ABYSS_THREADS)
-+ if(MUST_BUILD_ABYSS_OPENSSL)
-+ list(APPEND xmlrpc_abyss_SOURCES socket_openssl.c socket_openssl.h)
-+ endif(MUST_BUILD_ABYSS_OPENSSL)
-+endif(WIN32)
-+
-+add_library(xmlrpc_abyss SHARED ${xmlrpc_abyss_SOURCES})
-+target_link_libraries(xmlrpc_abyss xmlrpc_util)
-+
-+if(ENABLE_ABYSS_THREADS)
-+ set_target_properties(xmlrpc_abyss PROPERTIES DEFINE_SYMBOL _THREAD)
-+ target_link_libraries(xmlrpc_abyss ${THREAD_LIBS})
-+ ensc_pkgconfig_lib(xmlrpc_abyss "${THREAD_LIBS_PKGCONFIG}")
-+endif(ENABLE_ABYSS_THREADS)
-+
-+if(MUST_BUILD_ABYSS_OPENSSL)
-+ target_link_libraries(xmlrpc_abyss ${OPENSSL_LIBRARIES})
-+ ensc_pkgconfig_lib(xmlrpc_abyss "${OPENSSL_LIBRARIES}")
-+endif(MUST_BUILD_ABYSS_OPENSSL)
-+
-+install(TARGETS xmlrpc_abyss
-+ RUNTIME DESTINATION ${_bin}
-+ LIBRARY DESTINATION ${_lib}
-+ ARCHIVE DESTINATION ${_lib})
-+
-+set_target_properties(xmlrpc_abyss
-+ PROPERTIES
-+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS}
-+ VERSION ${XMLRPC_C_LIBVERSION}
-+ SOVERSION ${XMLRPC_C_SOVERSION})
-+
-+ensc_pkgconfig(xmlrpc_abyss)
-diff --git a/lib/abyss/src/xmlrpc_abyss.pc.cmake b/lib/abyss/src/xmlrpc_abyss.pc.cmake
-new file mode 100644
-index 0000000..b0dbcc9
---- /dev/null
-+++ b/lib/abyss/src/xmlrpc_abyss.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_abyss
-+Description: XMLRPC Abyss base library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_abyss @xmlrpc_abyss_pkgconfig_libs@
-+Cflags:
-diff --git a/lib/abyss++/CMakeLists.txt b/lib/abyss++/CMakeLists.txt
-new file mode 100644
-index 0000000..b1813bb
---- /dev/null
-+++ b/lib/abyss++/CMakeLists.txt
-@@ -0,0 +1,32 @@
-+## -*- cmake -*-
-+
-+set(abysspp_SOURCES
-+ AbyssChanSwitch.cpp
-+ AbyssEnvironment.cpp
-+ AbyssServer.cpp)
-+
-+if(WIN32)
-+ list(APPEND abysspp_SOURCES AbyssChanSwitchWin.cpp)
-+else(WIN32)
-+ list(APPEND abysspp_SOURCES AbyssChanSwitchUnix.cpp)
-+ if(MUST_BUILD_OPENSSL)
-+ list(APPEND abysspp_SOURCESS AbyssChanSwitchOpenSsl.cpp)
-+ endif(MUST_BUILD_OPENSSL)
-+endif(WIN32)
-+
-+add_library(xmlrpc_abyss++ SHARED ${abysspp_SOURCES})
-+
-+target_link_libraries(xmlrpc_abyss++ xmlrpc_abyss xmlrpc_util++ xmlrpc_util)
-+
-+install(TARGETS xmlrpc_abyss++
-+ RUNTIME DESTINATION ${_bin}
-+ LIBRARY DESTINATION ${_lib}
-+ ARCHIVE DESTINATION ${_lib})
-+
-+set_target_properties(xmlrpc_abyss++
-+ PROPERTIES
-+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS}
-+ VERSION ${XMLRPC_CXX_LIBVERSION}
-+ SOVERSION ${XMLRPC_CXX_SOVERSION})
-+
-+ensc_pkgconfig(xmlrpc_abyss++)
-diff --git a/lib/abyss++/xmlrpc_abyss++.pc.cmake b/lib/abyss++/xmlrpc_abyss++.pc.cmake
-new file mode 100644
-index 0000000..b0dbcc9
---- /dev/null
-+++ b/lib/abyss++/xmlrpc_abyss++.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_abyss++
-+Description: XMLRPC C++ Abyss library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc_abyss xmlrpc_util++ xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_abyss++
-+Cflags:
-diff --git a/lib/curl_transport/CMakeLists.txt b/lib/curl_transport/CMakeLists.txt
-new file mode 100644
-index 0000000..4224a13
---- /dev/null
-+++ b/lib/curl_transport/CMakeLists.txt
-@@ -0,0 +1,15 @@
-+# -*- cmake -*-
-+
-+if(MUST_BUILD_CURL_CLIENT)
-+ list(APPEND transport_SOURCES
-+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_curl_transport.c
-+
-+ ${CMAKE_CURRENT_SOURCE_DIR}/curltransaction.c
-+ ${CMAKE_CURRENT_SOURCE_DIR}/curltransaction.h
-+
-+ ${CMAKE_CURRENT_SOURCE_DIR}/curlmulti.c
-+ ${CMAKE_CURRENT_SOURCE_DIR}/curlmulti.h
-+
-+ ${CMAKE_CURRENT_SOURCE_DIR}/curlversion.h
-+ )
-+endif(MUST_BUILD_CURL_CLIENT)
-diff --git a/lib/expat/CMakeLists.txt b/lib/expat/CMakeLists.txt
-new file mode 100644
-index 0000000..7397f52
---- /dev/null
-+++ b/lib/expat/CMakeLists.txt
-@@ -0,0 +1,9 @@
-+# -*- cmake -*-
-+
-+
-+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/xmltok)
-+
-+add_subdirectory(gennmtab)
-+add_subdirectory(xmlparse)
-+add_subdirectory(xmltok)
-+add_subdirectory(xmlwf)
-diff --git a/lib/expat/gennmtab/CMakeLists.txt b/lib/expat/gennmtab/CMakeLists.txt
-new file mode 100644
-index 0000000..48a44da
---- /dev/null
-+++ b/lib/expat/gennmtab/CMakeLists.txt
-@@ -0,0 +1,3 @@
-+# -*- cmake -*-
-+
-+ADD_EXECUTABLE(gennmtab gennmtab.c)
-diff --git a/lib/expat/xmlparse/CMakeLists.txt b/lib/expat/xmlparse/CMakeLists.txt
-new file mode 100644
-index 0000000..f87008a
---- /dev/null
-+++ b/lib/expat/xmlparse/CMakeLists.txt
-@@ -0,0 +1,7 @@
-+# -*- cmake -*-
-+
-+add_library(xmlrpc_xmlparse STATIC
-+ xmlparse.c)
-+target_link_libraries(xmlrpc_xmlparse xmlrpc_xmltok)
-+
-+ensc_pkgconfig(xmlrpc_xmlparse)
-diff --git a/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake b/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake
-new file mode 100644
-index 0000000..5b2a7e4
---- /dev/null
-+++ b/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_xmlparse
-+Description: XMLRPC xmlparse library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc_xmltok
-+Libs: -L${libdir} -lxmlrpc_xmlparse
-+Cflags:
-diff --git a/lib/expat/xmltok/CMakeLists.txt b/lib/expat/xmltok/CMakeLists.txt
-new file mode 100644
-index 0000000..42406fb
---- /dev/null
-+++ b/lib/expat/xmltok/CMakeLists.txt
-@@ -0,0 +1,23 @@
-+# -*- cmake -*-
-+
-+include_directories(${CMAKE_CURRENT_BINARY_DIR})
-+
-+add_definitions(-DXML_BYTE_ORDER=0)
-+
-+add_library(xmlrpc_xmltok STATIC
-+ xmltok.c xmlrole.c xmltok_impl.c
-+ ${CMAKE_CURRENT_BINARY_DIR}/nametab.h)
-+
-+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/nametab.h
-+ PROPERTIES
-+ OBJECT_DEPENDS gennmtab
-+ GENERATED true)
-+
-+
-+get_target_property(GENNMTAB_EXECUTABLE gennmtab LOCATION)
-+add_custom_command(
-+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/nametab.h
-+ COMMAND ${GENNMTAB_EXECUTABLE} >nametab.h || { rm -f nametab.h\; false\; }
-+ DEPENDS gennmtab)
-+
-+ensc_pkgconfig(xmlrpc_xmltok)
-diff --git a/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake b/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake
-new file mode 100644
-index 0000000..88e7ad8
---- /dev/null
-+++ b/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake
-@@ -0,0 +1,9 @@
-+prefix=@prefix@
-+libdir=@libdir@
-+
-+Name: xmlrpc_xmltok
-+Description: XMLRPC xmltok library
-+Version: @XMLRPC_C_VERSION@
-+
-+Libs: -L${libdir}
-+Cflags:
-diff --git a/lib/libutil/CMakeLists.txt b/lib/libutil/CMakeLists.txt
-new file mode 100644
-index 0000000..25ba487
---- /dev/null
-+++ b/lib/libutil/CMakeLists.txt
-@@ -0,0 +1,31 @@
-+# -*- cmake -*-
-+
-+add_library(xmlrpc_util SHARED
-+ asprintf.c
-+ base64.c
-+ error.c
-+ lock_platform.c
-+ lock_pthread.c
-+ lock_none.c
-+ make_printable.c
-+ memblock.c
-+ mempool.c
-+ select.c
-+ sleep.c
-+ string_number.c
-+ time.c
-+ utf8.c)
-+
-+set_target_properties(xmlrpc_util
-+ PROPERTIES
-+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS}
-+ VERSION ${XMLRPC_C_LIBVERSION}
-+ SOVERSION ${XMLRPC_C_SOVERSION})
-+target_link_libraries(xmlrpc_util ${THREAD_LIBS})
-+
-+install(TARGETS xmlrpc_util
-+ RUNTIME DESTINATION ${_bin}
-+ LIBRARY DESTINATION ${_lib}
-+ ARCHIVE DESTINATION ${_lib})
-+
-+ensc_pkgconfig(xmlrpc_util)
-diff --git a/lib/libutil/xmlrpc_util.pc.cmake b/lib/libutil/xmlrpc_util.pc.cmake
-new file mode 100644
-index 0000000..d4e01bf
---- /dev/null
-+++ b/lib/libutil/xmlrpc_util.pc.cmake
-@@ -0,0 +1,10 @@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_util
-+Description: XMLRPC utility library
-+Version: @XMLRPC_C_VERSION@
-+
-+Libs: -L${libdir} -lxmlrpc_util
-+Cflags: -I${includedir}
-diff --git a/lib/libutil++/CMakeLists.txt b/lib/libutil++/CMakeLists.txt
-new file mode 100644
-index 0000000..25ba487
---- /dev/null
-+++ b/lib/libutil++/CMakeLists.txt
-@@ -0,0 +1,22 @@
-+# -*- cmake -*-
-+
-+add_library(xmlrpc_util++ SHARED
-+ Lock.cpp
-+ base64.cpp
-+ env_wrap.cpp
-+ girerr.cpp
-+ girmem.cpp)
-+
-+set_target_properties(xmlrpc_util++
-+ PROPERTIES
-+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS}
-+ VERSION ${XMLRPC_CXX_LIBVERSION}
-+ SOVERSION ${XMLRPC_CXX_SOVERSION})
-+target_link_libraries(xmlrpc_util++ xmlrpc_util ${THREAD_LIBS})
-+
-+install(TARGETS xmlrpc_util++
-+ RUNTIME DESTINATION ${_bin}
-+ LIBRARY DESTINATION ${_lib}
-+ ARCHIVE DESTINATION ${_lib})
-+
-+ensc_pkgconfig(xmlrpc_util++)
-diff --git a/lib/libutil++/xmlrpc_util++.pc.cmake b/lib/libutil++/xmlrpc_util++.pc.cmake
-new file mode 100644
-index 0000000..d4e01bf
---- /dev/null
-+++ b/lib/libutil++/xmlrpc_util++.pc.cmake
-@@ -0,0 +1,11 @@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_util++
-+Description: XMLRPC C++ utility library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_util++
-+Cflags: -I${includedir}
-diff --git a/lib/libwww_transport/CMakeLists.txt b/lib/libwww_transport/CMakeLists.txt
-new file mode 100644
-index 0000000..aa52d9e
---- /dev/null
-+++ b/lib/libwww_transport/CMakeLists.txt
-@@ -0,0 +1,6 @@
-+# -*- cmake -*-
-+
-+if(MUST_BUILD_LIBWWW_CLIENT)
-+ list(APPEND transport_SOURCES
-+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.c)
-+endif(MUST_BUILD_LIBWWW_CLIENT)
-diff --git a/lib/util/CMakeLists.txt b/lib/util/CMakeLists.txt
-new file mode 100644
-index 0000000..80696d9
---- /dev/null
-+++ b/lib/util/CMakeLists.txt
-@@ -0,0 +1,17 @@
-+## -*- cmake -*-
-+
-+set(util_SOURCES
-+ casprintf.c
-+ cmdline_parser.c
-+ cmdline_parser_cpp.cpp
-+ getoptx.c
-+ getoptx.h
-+ stripcaseeq.c
-+ string_parser.c
-+)
-+
-+if(WIN32)
-+ list(APPEND util_SOURCES pthreadx_win32.c)
-+endif(WIN32)
-+
-+add_library(util STATIC ${util_SOURCES})
-diff --git a/lib/wininet_transport/CMakeLists.txt b/lib/wininet_transport/CMakeLists.txt
-new file mode 100644
-index 0000000..17535ab
---- /dev/null
-+++ b/lib/wininet_transport/CMakeLists.txt
-@@ -0,0 +1,7 @@
-+# -*- cmake -*-
-+
-+if(MUST_BUILD_WININET_CLIENT)
-+ list(APPEND transport_SOURCES
-+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.c
-+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.h)
-+endif(MUST_BUILD_WININET_CLIENT)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-new file mode 100644
-index 0000000..f51e15b
---- /dev/null
-+++ b/src/CMakeLists.txt
-@@ -0,0 +1,118 @@
-+# -*- cmake -*-
-+
-+if(ENABLE_LIBXML2_BACKEND)
-+ set(xmlrpc_xml_parser xmlrpc_libxml2.c)
-+ set(libxml_INCLUDES ${LIBXML2_CFLAGS})
-+ set(libxml_LIBS ${LIBXML2_LDFLAGS})
-+ set(xmlrpc_pkgconfig_req ${libxml_pkgconfig})
-+else(ENABLE_LIBXML2_BACKEND)
-+ set(xmlrpc_xml_parser xmlrpc_expat.c)
-+ set(libxml_INCLUDES -I${xmlrpc-c_SOURCE_DIR}/lib/expat/xmlparse)
-+ set(libxml_LIBS xmlrpc_xmlparse)
-+ set(xmlrpc_pkgconfig_req xmlrpc_xmlparse)
-+endif(ENABLE_LIBXML2_BACKEND)
-+
-+if(MUST_BUILD_WININET_CLIENT)
-+ set(client_wininet_CFLAGS "")
-+ set(client_wininet_LIBS "${WININET_LDADD}" pthread)
-+ list(APPEND transport_SOURCES
-+ ${wininet_srcdir}/xmlrpc_wininet_transport.c ${wininet_srcdir}/xmlrpc_wininet_transport.h)
-+endif(MUST_BUILD_WININET_CLIENT)
-+
-+if(MUST_BUILD_LIBWWW_CLIENT)
-+ set(client_libwww_CFLAGS "${LIBWWW_CFLAGS}")
-+ set(client_libwww_LIBS "${LIBWWW_LIBS}")
-+ list(APPEND transport_SOURCES ${libwww_srcdir}/xmlrpc_libwww_transport.c)
-+endif(MUST_BUILD_LIBWWW_CLIENT)
-+
-+if(MUST_BUILD_CURL_CLIENT)
-+ set(client_curl_CFLAGS ${CURL_CFLAGS})
-+ set(client_curl_LIBS ${CURL_LDFLAGS} pthread)
-+ set(xmlrpc_client_pkgconfig_req libcurl)
-+ list(APPEND transport_SOURCES
-+ ${curl_srcdir}/xmlrpc_curl_transport.c
-+ ${curl_srcdir}/curltransaction.c
-+ ${curl_srcdir}/curltransaction.h
-+ ${curl_srcdir}/curlmulti.c
-+ ${curl_srcdir}/curlmulti.h
-+ ${curl_srcdir}/curlversion.h
-+ )
-+endif(MUST_BUILD_CURL_CLIENT)
-+
-+set(client_CFLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir} ${client_wininet_CFLAGS} ${client_libwww_CFLAGS} ${client_curl_CFLAGS}")
-+set(client_LIBS ${client_wininet_LIBS} ${client_libwww_LIBS} ${client_curl_LIBS})
-+
-+
-+add_subdirectory(cpp)
-+
-+
-+
-+### libxmlrpc.so
-+add_library(xmlrpc SHARED
-+ base_global.c double.c parse_datetime.c parse_value.c resource.c trace.c version.c
-+ json.c
-+ ${xmlrpc_xml_parser}
-+ xmlrpc_data.c xmlrpc_datetime.c xmlrpc_string.c
-+ xmlrpc_array.c xmlrpc_struct.c
-+ xmlrpc_build.c xmlrpc_decompose.c xmlrpc_parse.c xmlrpc_serialize.c
-+ xmlrpc_authcookie.c)
-+
-+target_compile_options(xmlrpc
-+ PRIVATE
-+ ${libxml_INCLUDES})
-+
-+ensc_pkgconfig(xmlrpc)
-+target_link_libraries(xmlrpc ${libxml_LIBS} xmlrpc_util)
-+list(APPEND lib_TARGETS xmlrpc)
-+
-+### libxmlrpc_client.so
-+add_library(xmlrpc_client SHARED
-+ xmlrpc_client.c xmlrpc_client_global.c xmlrpc_server_info.c ${transport_SOURCES})
-+
-+target_link_libraries(xmlrpc_client xmlrpc ${client_LIBS})
-+set_target_properties(xmlrpc_client
-+ PROPERTIES
-+ COMPILE_FLAGS "${client_CFLAGS}")
-+list(APPEND lib_TARGETS xmlrpc_client)
-+ensc_pkgconfig(xmlrpc_client)
-+
-+### libxmlrpc_server.so
-+add_library(xmlrpc_server SHARED
-+ registry.c method.c system_method.c)
-+target_link_libraries(xmlrpc_server xmlrpc)
-+list(APPEND lib_TARGETS xmlrpc_server)
-+ensc_pkgconfig(xmlrpc_server)
-+
-+
-+### libxmlrpc_server_abyss.so
-+if(ENABLE_ABYSS_SERVER)
-+ add_library(xmlrpc_server_abyss SHARED
-+ xmlrpc_server_abyss.c abyss_handler.c)
-+ target_link_libraries(xmlrpc_server_abyss xmlrpc_abyss xmlrpc_server)
-+ list(APPEND lib_TARGETS xmlrpc_server_abyss)
-+ ensc_pkgconfig(xmlrpc_server_abyss)
-+endif(ENABLE_ABYSS_SERVER)
-+
-+
-+
-+### libxmlrpc_server_cgi.so
-+if(ENABLE_CGI_SERVER)
-+ add_library(xmlrpc_server_cgi SHARED
-+ xmlrpc_server_cgi)
-+ target_link_libraries(xmlrpc_server_cgi xmlrpc_server)
-+ list(APPEND lib_TARGETS xmlrpc_server_cgi)
-+ ensc_pkgconfig(xmlrpc_server_cgi)
-+endif(ENABLE_CGI_SERVER)
-+
-+install(TARGETS ${lib_TARGETS}
-+ RUNTIME DESTINATION ${_bin}
-+ LIBRARY DESTINATION ${_lib})
-+
-+set_target_properties(${lib_TARGETS}
-+ PROPERTIES
-+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS}
-+ VERSION ${XMLRPC_C_LIBVERSION}
-+ SOVERSION ${XMLRPC_C_SOVERSION})
-+
-+
-+enable_testing()
-diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
-new file mode 100644
-index 0000000..3171156
---- /dev/null
-+++ b/src/cpp/CMakeLists.txt
-@@ -0,0 +1,70 @@
-+# -*- cmake -*-
-+
-+####### libxmlrpc++.so
-+add_library(xmlrpc++ SHARED
-+ fault.cpp global.cpp
-+ outcome.cpp param_list.cpp value.cpp xml.cpp)
-+target_link_libraries(xmlrpc++ xmlrpc_util++ xmlrpc pthread)
-+list(APPEND lib_TARGETS xmlrpc++)
-+ensc_pkgconfig(xmlrpc++)
-+
-+####### libxmlrpc_cpp.so
-+add_library(xmlrpc_cpp SHARED XmlRpcCpp)
-+target_link_libraries(xmlrpc_cpp xmlrpc xmlrpc_server)
-+list(APPEND lib_TARGETS xmlrpc_cpp)
-+ensc_pkgconfig(xmlrpc_cpp)
-+
-+####### libxmlrpc_server++.so
-+add_library(xmlrpc_server++ SHARED registry.cpp)
-+target_link_libraries(xmlrpc_server++ xmlrpc++ xmlrpc_server)
-+list(APPEND lib_TARGETS xmlrpc_server++)
-+ensc_pkgconfig(xmlrpc_server++)
-+
-+####### libxmlrpc_server_abyss++.so
-+if(ENABLE_ABYSS_SERVER)
-+ add_library(xmlrpc_server_abyss++ SHARED server_abyss.cpp)
-+ target_link_libraries(xmlrpc_server_abyss++ xmlrpc_abyss++ xmlrpc_server++ xmlrpc_server_abyss)
-+ list(APPEND lib_TARGETS xmlrpc_server_abyss++)
-+ ensc_pkgconfig(xmlrpc_server_abyss++)
-+endif(ENABLE_ABYSS_SERVER)
-+
-+####### libxmlrpc_server_cgi++.so
-+if(ENABLE_CGI_SERVER)
-+ add_library(xmlrpc_server_cgi++ SHARED server_cgi.cpp)
-+ target_link_libraries(xmlrpc_server_cgi++ xmlrpc_server++)
-+ list(APPEND lib_TARGETS xmlrpc_server_cgi++)
-+ ensc_pkgconfig(xmlrpc_server_cgi++)
-+endif(ENABLE_CGI_SERVER)
-+
-+####### libxmlrpc_server_pstream++.so
-+add_library(xmlrpc_server_pstream++ SHARED server_pstream.cpp server_pstream_conn)
-+target_link_libraries(xmlrpc_server_pstream++ xmlrpc_server++ xmlrpc_packetsocket)
-+list(APPEND lib_TARGETS xmlrpc_server_pstream++)
-+ensc_pkgconfig(xmlrpc_server_pstream++)
-+
-+####### libxmlrpc_packetsocket.so
-+add_library(xmlrpc_packetsocket SHARED packetsocket.cpp)
-+target_link_libraries(xmlrpc_packetsocket xmlrpc++)
-+list(APPEND lib_TARGETS xmlrpc_packetsocket)
-+ensc_pkgconfig(xmlrpc_packetsocket)
-+
-+####### libxmlrpc_client++.so
-+add_library(xmlrpc_client++ SHARED
-+ client.cpp client_simple.cpp curl.cpp libwww.cpp wininet.cpp pstream.cpp)
-+set_target_properties(xmlrpc_client++
-+ PROPERTIES
-+ COMPILE_FLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir}")
-+target_link_libraries(xmlrpc_client++ xmlrpc++ xmlrpc_client xmlrpc_packetsocket)
-+list(APPEND lib_TARGETS xmlrpc_client++)
-+ensc_pkgconfig(xmlrpc_client++)
-+
-+
-+install(TARGETS ${lib_TARGETS}
-+ RUNTIME DESTINATION ${_bin}
-+ LIBRARY DESTINATION ${_lib})
-+
-+set_target_properties(${lib_TARGETS}
-+ PROPERTIES
-+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS}
-+ VERSION ${XMLRPC_CXX_LIBVERSION}
-+ SOVERSION ${XMLRPC_CXX_SOVERSION})
-diff --git a/src/cpp/test/CMakeLists.txt b/src/cpp/test/CMakeLists.txt
-new file mode 100644
-index 0000000..dffd36c
---- /dev/null
-+++ b/src/cpp/test/CMakeLists.txt
-@@ -0,0 +1,18 @@
-+# -*- cmake -*-
-+
-+set(test_SOURCES
-+ test.cpp base64.cpp registry.cpp server_abyss.cpp
-+ server_pstream.cpp tools.cpp value.cpp xml.cpp )
-+
-+if(MUST_BUILD_CLIENT)
-+ list(APPEND test_SOURCES testclient.cpp)
-+ list(APPEND test_LIBS xmlrpc_client++)
-+else(MUST_BUILD_CLIENT)
-+ list(APPEND test_SOURCES testclient_dummy.c)
-+endif(MUST_BUILD_CLIENT)
-+
-+add_executable(src-test ${test_SOURCES})
-+target_link_libraries(src-test xmlrpc_server_abyss++ util ${test_LIBS})
-+
-+enable_testing()
-+add_test(runtests src-test)
-diff --git a/src/cpp/xmlrpc++.pc.cmake b/src/cpp/xmlrpc++.pc.cmake
-new file mode 100644
-index 0000000..e99d81e
---- /dev/null
-+++ b/src/cpp/xmlrpc++.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc++
-+Description: XMLRPC C++ Base library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc++
-+Cflags: -I${includedir}
-diff --git a/src/cpp/xmlrpc_client++.pc.cmake b/src/cpp/xmlrpc_client++.pc.cmake
-new file mode 100644
-index 0000000..fe1f835
---- /dev/null
-+++ b/src/cpp/xmlrpc_client++.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_client++
-+Description: XMLRPC C++ Client library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc++ xmlrpc_client xmlrpc_packetsocket xmlrpc xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_client++
-+Cflags: -I${includedir}
-diff --git a/src/cpp/xmlrpc_cpp.pc.cmake b/src/cpp/xmlrpc_cpp.pc.cmake
-new file mode 100644
-index 0000000..9f94252
---- /dev/null
-+++ b/src/cpp/xmlrpc_cpp.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_cpp
-+Description: XMLRPC CPP library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc xmlrpc_server xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_cpp
-+Cflags: -I${includedir}
-diff --git a/src/cpp/xmlrpc_packetsocket.pc.cmake b/src/cpp/xmlrpc_packetsocket.pc.cmake
-new file mode 100644
-index 0000000..e168da3
---- /dev/null
-+++ b/src/cpp/xmlrpc_packetsocket.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_packetsocket
-+Description: XMLRPC C++ packsetsocket library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc++
-+Libs: -L${libdir} -lxmlrpc_packetsocket
-+Cflags: -I${includedir}
-diff --git a/src/cpp/xmlrpc_server++.pc.cmake b/src/cpp/xmlrpc_server++.pc.cmake
-new file mode 100644
-index 0000000..5080b63
---- /dev/null
-+++ b/src/cpp/xmlrpc_server++.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_server++
-+Description: XMLRPC C++ Server library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc++ xmlrpc_server xmlrpc xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_server++
-+Cflags: -I${includedir}
-diff --git a/src/cpp/xmlrpc_server_abyss++.pc.cmake b/src/cpp/xmlrpc_server_abyss++.pc.cmake
-new file mode 100644
-index 0000000..f1d2198
---- /dev/null
-+++ b/src/cpp/xmlrpc_server_abyss++.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_server_abyss++
-+Description: XMLRPC C++ Abyss-Server library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc_server++ xmlrpc_server_abyss xmlrpc++ xmlrpc_abyss xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_server_abyss++
-+Cflags: -I${includedir}
-diff --git a/src/cpp/xmlrpc_server_cgi++.pc.cmake b/src/cpp/xmlrpc_server_cgi++.pc.cmake
-new file mode 100644
-index 0000000..9021564
---- /dev/null
-+++ b/src/cpp/xmlrpc_server_cgi++.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_server_cgi++
-+Description: XMLRPC C++ CGI-Server library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc_server++ xmlrpc++ xmlrpc
-+Libs: -L${libdir} -lxmlrpc_server_cgi++
-+Cflags: -I${includedir}
-diff --git a/src/cpp/xmlrpc_server_pstream++.pc.cmake b/src/cpp/xmlrpc_server_pstream++.pc.cmake
-new file mode 100644
-index 0000000..9b4819f
---- /dev/null
-+++ b/src/cpp/xmlrpc_server_pstream++.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_server_pstream++
-+Description: XMLRPC C++ pstream-Server library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc_server++ xmlrpc_packetsocket xmlrpc++
-+Libs: -L${libdir} -lxmlrpc_server_pstream++
-+Cflags: -I${includedir}
-diff --git a/src/xmlrpc.pc.cmake b/src/xmlrpc.pc.cmake
-new file mode 100644
-index 0000000..7c098b8
---- /dev/null
-+++ b/src/xmlrpc.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc
-+Description: XMLRPC base library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: @xmlrpc_pkgconfig_req@ xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc @xmlrpc_pkgconfig_libs@
-+Cflags: -I${includedir}
-diff --git a/src/xmlrpc_client.pc.cmake b/src/xmlrpc_client.pc.cmake
-new file mode 100644
-index 0000000..61543d4
---- /dev/null
-+++ b/src/xmlrpc_client.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_client
-+Description: XMLRPC client library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc @xmlrpc_client_pkgconfig_req@ xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_client @client_libwww_LIBS@ @client_wininet_LIBS@
-+Cflags: -I${includedir}
-diff --git a/src/xmlrpc_server.pc.cmake b/src/xmlrpc_server.pc.cmake
-new file mode 100644
-index 0000000..cade53d
---- /dev/null
-+++ b/src/xmlrpc_server.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_server
-+Description: XMLRPC Server library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_server
-+Cflags: -I${includedir}
-diff --git a/src/xmlrpc_server_abyss.pc.cmake b/src/xmlrpc_server_abyss.pc.cmake
-new file mode 100644
-index 0000000..198c780
---- /dev/null
-+++ b/src/xmlrpc_server_abyss.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_server_abyss
-+Description: XMLRPC Server Abyss library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc_server xmlrpc_abyss xmlrpc xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_server_abyss
-+Cflags: -I${includedir}
-diff --git a/src/xmlrpc_server_cgi.pc.cmake b/src/xmlrpc_server_cgi.pc.cmake
-new file mode 100644
-index 0000000..748b550
---- /dev/null
-+++ b/src/xmlrpc_server_cgi.pc.cmake
-@@ -0,0 +1,12 @@
-+bindir=@bindir@
-+prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: xmlrpc_server_cgi
-+Description: XMLRPC CGI-Server library
-+Version: @XMLRPC_C_VERSION@
-+
-+Requires.private: xmlrpc_server xmlrpc xmlrpc_util
-+Libs: -L${libdir} -lxmlrpc_server_cgi
-+Cflags: -I${includedir}
-diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
-new file mode 100644
-index 0000000..e712382
---- /dev/null
-+++ b/test/CMakeLists.txt
-@@ -0,0 +1,42 @@
-+# -*- cmake -*-
-+
-+set(test_SOURCES
-+ abyss.c
-+ abyss.h
-+ test.c
-+ cgi.c
-+ memblock.c
-+ method_registry.c
-+ parse_xml.c
-+ serialize.c
-+ serialize_value.c
-+ server_abyss.c
-+ testtool.c
-+ testtool.h
-+ value.c
-+ value_datetime.c
-+ xml_data.c)
-+
-+if(MUST_BUILD_CLIENT)
-+ list(APPEND test_SOURCES client.c)
-+ list(APPEND test_LIBS xmlrpc_client)
-+else(MUST_BUILD_CLIENT)
-+ list(APPEND test_SOURCES client_dummy.c)
-+endif(MUST_BUILD_CLIENT)
-+
-+
-+add_executable(src-test ${test_SOURCES})
-+target_link_libraries(src-test xmlrpc_server_abyss util ${test_LIBS})
-+
-+add_executable(src-cgitest1 cgitest1.c testtool.c testtool.h)
-+target_link_libraries(src-cgitest1 xmlrpc_server_cgi)
-+
-+add_custom_command(TARGET src-test
-+ POST_BUILD
-+ COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/data
-+ COMMAND ln -s ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR})
-+
-+enable_testing()
-+add_test(runtests src-test)
-+
-+add_subdirectory(cpp)
-diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt
-new file mode 100644
-index 0000000..15a7c3a
---- /dev/null
-+++ b/test/cpp/CMakeLists.txt
-@@ -0,0 +1,36 @@
-+# -*- cmake -*-
-+
-+set(testcpp_SOURCES
-+ test.cpp
-+ abyss.cpp
-+ base64.cpp
-+ registry.cpp
-+ server_abyss.cpp
-+ server_pstream.cpp
-+ tools.cpp
-+ value.cpp
-+ xml.cpp)
-+
-+if(MUST_BUILD_CLIENT)
-+ list(APPEND testcpp_SOURCES testclient.cpp)
-+ list(APPEND testcpp_LIBS xmlrpc_client++)
-+else(MUST_BUILD_CLIENT)
-+ list(APPEND testcpp_SOURCES testclient_dummy.c)
-+endif(MUST_BUILD_CLIENT)
-+
-+if(DEFINED MSVCRT)
-+ list(APPEND testcpp_SOURCES ${CMAKE_SOURCE_DIR}/Windows/socketpair.cpp)
-+endif(DEFINED MSVCRT)
-+
-+add_executable(src-testcpp ${testcpp_SOURCES})
-+target_link_libraries(src-testcpp
-+ xmlrpc++
-+ xmlrpc_abyss++
-+ xmlrpc_server++
-+ xmlrpc_server_abyss++
-+ xmlrpc_server_pstream++
-+ xmlrpc_cpp
-+ util ${testcpp_LIBS})
-+
-+enable_testing()
-+add_test(runtests src-testcpp)
-diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
-new file mode 100644
-index 0000000..cd2a6d7
---- /dev/null
-+++ b/tools/CMakeLists.txt
-@@ -0,0 +1,22 @@
-+# -*- cmake -*-
-+
-+add_subdirectory(lib)
-+add_subdirectory(binmode-rpc-kit)
-+add_subdirectory(turbocharger)
-+add_subdirectory(xml)
-+
-+if (MUST_BUILD_CLIENT)
-+ add_subdirectory(xmlrpc)
-+ add_subdirectory(xmlrpc_transport)
-+
-+
-+ if (ENABLE_CPLUSPLUS)
-+ add_subdirectory(xml-rpc-api2cpp)
-+ add_subdirectory(xml-rpc-api2txt)
-+ add_subdirectory(xmlrpc_cpp_proxy)
-+
-+ if (BUILD_XMLRPC_PSTREAM AND ENABLE_CGI_SERVER)
-+ add_subdirectory(xmlrpc_pstream)
-+ endif()
-+ endif()
-+endif()
-diff --git a/tools/binmode-rpc-kit/CMakeLists.txt b/tools/binmode-rpc-kit/CMakeLists.txt
-new file mode 100644
-index 0000000..342423d
---- /dev/null
-+++ b/tools/binmode-rpc-kit/CMakeLists.txt
-@@ -0,0 +1 @@
-+# -*- cmake -*-
-diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt
-new file mode 100644
-index 0000000..342423d
---- /dev/null
-+++ b/tools/lib/CMakeLists.txt
-@@ -0,0 +1 @@
-+# -*- cmake -*-
-diff --git a/tools/turbocharger/CMakeLists.txt b/tools/turbocharger/CMakeLists.txt
-new file mode 100644
-index 0000000..342423d
---- /dev/null
-+++ b/tools/turbocharger/CMakeLists.txt
-@@ -0,0 +1 @@
-+# -*- cmake -*-
-diff --git a/tools/xml-rpc-api2cpp/CMakeLists.txt b/tools/xml-rpc-api2cpp/CMakeLists.txt
-new file mode 100644
-index 0000000..1e9134a
---- /dev/null
-+++ b/tools/xml-rpc-api2cpp/CMakeLists.txt
-@@ -0,0 +1,15 @@
-+# -*- cmake -*-
-+
-+add_executable(xml-rpc-api2cpp
-+ xml-rpc-api2cpp.cpp
-+ DataType.cpp
-+ XmlRpcFunction.cpp
-+ XmlRpcClass.cpp
-+ SystemProxy.cpp)
-+target_link_libraries(xml-rpc-api2cpp xmlrpc_cpp xmlrpc_client)
-+
-+install(TARGETS xml-rpc-api2cpp
-+ RUNTIME DESTINATION bin)
-+
-+install(FILES xml-rpc-api2cpp.1
-+ DESTINATION ${mandir}/man1)
-diff --git a/tools/xml-rpc-api2txt/CMakeLists.txt b/tools/xml-rpc-api2txt/CMakeLists.txt
-new file mode 100644
-index 0000000..5b01824
---- /dev/null
-+++ b/tools/xml-rpc-api2txt/CMakeLists.txt
-@@ -0,0 +1,7 @@
-+# -*- cmake -*-
-+
-+install(PROGRAMS xml-rpc-api2txt
-+ DESTINATION ${bindir})
-+
-+install(FILES xml-rpc-api2txt.1
-+ DESTINATION ${mandir}/man1)
-diff --git a/tools/xml/CMakeLists.txt b/tools/xml/CMakeLists.txt
-new file mode 100644
-index 0000000..0bab80c
---- /dev/null
-+++ b/tools/xml/CMakeLists.txt
-@@ -0,0 +1,16 @@
-+# -*- cmake -*-
-+
-+add_executable(xmlrpc_parsecall
-+ xmlrpc_parsecall.c
-+ ../lib/dumpvalue.c)
-+
-+target_link_libraries(xmlrpc_parsecall
-+ xmlrpc
-+ util)
-+
-+install(TARGETS xmlrpc_parsecall
-+ DESTINATION ${_bin})
-+
-+include_directories(../lib/include)
-+
-+ensc_set_link_exe_flags(xmlrpc_parsecall)
-diff --git a/tools/xmlrpc/CMakeLists.txt b/tools/xmlrpc/CMakeLists.txt
-new file mode 100644
-index 0000000..da01ec3
---- /dev/null
-+++ b/tools/xmlrpc/CMakeLists.txt
-@@ -0,0 +1,17 @@
-+# -*- cmake -*-
-+
-+#set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ../lib/include)
-+
-+include_directories(../lib/include)
-+add_executable(tool-xmlrpc
-+ xmlrpc.c
-+ ../lib/dumpvalue.c)
-+target_link_libraries(tool-xmlrpc xmlrpc_client util)
-+
-+set_target_properties(tool-xmlrpc
-+ PROPERTIES OUTPUT_NAME xmlrpc)
-+
-+install(TARGETS tool-xmlrpc
-+ DESTINATION ${_bin})
-+
-+ensc_set_link_exe_flags(tool-xmlrpc)
-diff --git a/tools/xmlrpc/config.h b/tools/xmlrpc/config.h
-new file mode 100644
-index 0000000..7409aed
---- /dev/null
-+++ b/tools/xmlrpc/config.h
-@@ -0,0 +1 @@
-+#include <xmlrpc_config.h>
-diff --git a/tools/xmlrpc_cpp_proxy/CMakeLists.txt b/tools/xmlrpc_cpp_proxy/CMakeLists.txt
-new file mode 100644
-index 0000000..4166023
---- /dev/null
-+++ b/tools/xmlrpc_cpp_proxy/CMakeLists.txt
-@@ -0,0 +1,17 @@
-+# -*- cmake -*-
-+
-+add_executable(xmlrpc_cpp_proxy
-+ proxyClass.cpp
-+ proxyClass.hpp
-+ systemProxy.cpp
-+ systemProxy.hpp
-+ xmlrpcMethod.cpp
-+ xmlrpcMethod.hpp
-+ xmlrpcType.cpp
-+ xmlrpcType.hpp
-+ xmlrpc_cpp_proxy.cpp
-+)
-+target_link_libraries(xmlrpc_cpp_proxy xmlrpc_client++)
-+
-+install(TARGETS xmlrpc_cpp_proxy
-+ RUNTIME DESTINATION bin)
-diff --git a/tools/xmlrpc_pstream/CMakeLists.txt b/tools/xmlrpc_pstream/CMakeLists.txt
-new file mode 100644
-index 0000000..b277bc8
---- /dev/null
-+++ b/tools/xmlrpc_pstream/CMakeLists.txt
-@@ -0,0 +1,16 @@
-+# -*- cmake -*-
-+
-+add_executable(xmlrpc_pstream
-+ xmlrpc_pstream.cpp
-+ ../lib/dumpvalue.c)
-+
-+target_link_libraries(xmlrpc_pstream
-+ ${READLINE}
-+ ${NCURSES_LIBRARIES}
-+ xmlrpc_client++
-+ util)
-+
-+include_directories(../lib/include)
-+
-+install(TARGETS xmlrpc_pstream
-+ RUNTIME DESTINATION bin)
-diff --git a/tools/xmlrpc_transport/CMakeLists.txt b/tools/xmlrpc_transport/CMakeLists.txt
-new file mode 100644
-index 0000000..b73d7c0
---- /dev/null
-+++ b/tools/xmlrpc_transport/CMakeLists.txt
-@@ -0,0 +1,9 @@
-+# -*- cmake -*-
-+
-+add_executable(xmlrpc_transport xmlrpc_transport.c)
-+target_link_libraries(xmlrpc_transport xmlrpc_client util)
-+
-+install(TARGETS xmlrpc_transport
-+ DESTINATION ${_bin})
-+
-+ensc_set_link_exe_flags(xmlrpc_transport)
-diff --git a/tools/xmlrpc_transport/config.h b/tools/xmlrpc_transport/config.h
-new file mode 100644
-index 0000000..7409aed
---- /dev/null
-+++ b/tools/xmlrpc_transport/config.h
-@@ -0,0 +1 @@
-+#include <xmlrpc_config.h>
-diff --git a/transport_config.h.cmake b/transport_config.h.cmake
-new file mode 100644
-index 0000000..1ec3cf6
---- /dev/null
-+++ b/transport_config.h.cmake
-@@ -0,0 +1,16 @@
-+/* -*- c -*- */
-+#define MUST_BUILD_WININET_CLIENT @_MUST_BUILD_WININET_CLIENT@
-+#define MUST_BUILD_LIBWWW_CLIENT @_MUST_BUILD_LIBWWW_CLIENT@
-+#define MUST_BUILD_CURL_CLIENT @_MUST_BUILD_CURL_CLIENT@
-+
-+static char const * const XMLRPC_DEFAULT_TRANSPORT =
-+#if MUST_BUILD_LIBWWW_CLIENT
-+ "libwww"
-+#elif MUST_BUILD_CURL_CLIENT
-+ "curl"
-+#elif MUST_BUILD_WININET_CLIENT
-+ "wininet"
-+#else
-+# error "no client XML transport configured"
-+#endif
-+ ;
-diff --git a/version.h.cmake b/version.h.cmake
-new file mode 100644
-index 0000000..0c964a3
---- /dev/null
-+++ b/version.h.cmake
-@@ -0,0 +1,5 @@
-+/* This file was generated by a make rule */
-+#define XMLRPC_C_VERSION "@XMLRPC_C_VERSION@"
-+#define XMLRPC_VERSION_MAJOR @XMLRPC_C_VERSION_MAJOR_NUM@
-+#define XMLRPC_VERSION_MINOR @XMLRPC_C_VERSION_MINOR_NUM@
-+#define XMLRPC_VERSION_POINT @XMLRPC_C_VERSION_POINT_NUM@
-diff --git a/xmlrpc-c-config b/xmlrpc-c-config
-new file mode 100755
-index 0000000..50577fd
---- /dev/null
-+++ b/xmlrpc-c-config
-@@ -0,0 +1,110 @@
-+#! /bin/sh
-+
-+comp=
-+
-+need_cxx=
-+need_client=
-+need_server=
-+need_abyss=
-+need_abysssrv=
-+need_pstream=
-+need_packetsocket=
-+need_cgi=
-+
-+show_help() {
-+ cat <<EOF
-+Usage: xmlrpc-c-config <feature> ... <option> ...
-+
-+The features are:
-+ c++ legacy C++ wrapper API
-+ c++2 modern C++ API
-+ client client functions
-+ cgi-server CGI-based server functions
-+ abyss-server ABYSS-based server functions
-+ pstream-server pstream-based server functions
-+ server-util basic server functions (implied by *-server)
-+ abyss Abyss HTTP server (not necessary with abyss-server)
-+
-+Options are:
-+ --version The version number of the package
-+ --features List all features (aka modules) currently installed
-+ --cflags C compiler flags to use when '#include'ing package headers
-+ --libs Libraries and flags to use when linking programs normally
-+ --ldadd Libraries to use with automake
-+ --ldflags Flags to use with automake & libtool
-+ --prefix The prefix under which the package was installed
-+EOF
-+ exit $1
-+}
-+
-+test $# -ne 0 || show_help 1 >&2
-+
-+while test $# -gt 0; do
-+ case $1 in
-+ (c++) comp="$comp xmlrpc_cpp";;
-+ (server-util) need_server=1;;
-+ (cgi-server) need_cgi=1;;
-+ (c++2) need_cxx=1;;
-+ (abyss-server) need_abysssrv=1;;
-+ (pstream-server) need_pstream=1;;
-+ (packetsocket) need_packetsocket=1;;
-+ (client|libwww-client) need_client=1;;
-+ (abyss) need_abyss=1;;
-+ (--help) show_help 0;;
-+ (--) shift; break;;
-+ (--*) break;;
-+ (*)
-+ echo "Unrecognized token '$1'"
-+ exit 1
-+ ;;
-+ esac
-+ shift
-+done
-+
-+if test -z "$need_cxx"; then
-+ test -z "$need_client" || comp="$comp xmlrpc_client"
-+ test -z "$need_abysssrv" || comp="$comp xmlrpc_server_abyss"
-+ test -z "$need_abyss" || comp="$comp xmlrpc_server"
-+ test -z "$need_server" || comp="$comp xmlrpc_server"
-+ test -z "$need_cgi" || comp="$comp xmlrpc_server_cgi"
-+else
-+ test -z "$need_client" || comp="$comp xmlrpc_client++"
-+ test -z "$need_abysssrv" || comp="$comp xmlrpc_server_abyss++"
-+ test -z "$need_abyss" || comp="$comp xmlrpc_abyss++"
-+ test -z "$need_server" || comp="$comp xmlrpc_server++"
-+ test -z "$need_cgi" || comp="$comp xmlrpc_server_cgi++"
-+fi
-+
-+test -z "$need_pstream" || comp="$comp xmlrpc_server_pstream++"
-+test -z "$need_packetsocket" || comp="$comp xmlrpc_packetsocket"
-+test -n "$comp" || comp="xmlrpc xmlrpc_util"
-+
-+case $1 in
-+ (--features|--modules)
-+ echo "c++ abyss-server curl-client"
-+ exit 0
-+ ;;
-+ (--version)
-+ comp=xmlrpc
-+ set -- --modversion
-+ ;;
-+ (--exec-prefix)
-+ comp=xmlrpc
-+ set -- --variable=prefix
-+ ;;
-+ (--*dir|--prefix)
-+ comp=xmlrpc
-+ set -- --variable=${1##--}
-+ ;;
-+ (--ldflags)
-+ set -- --libs-only-L
-+ ;;
-+ (--ldadd)
-+ set -- --libs-only-l
-+ ;;
-+ (--cflags)
-+ set -- "$1"
-+ ;;
-+esac
-+
-+exec pkg-config "$@" $comp
-diff --git a/xmlrpc_config.h.cmake b/xmlrpc_config.h.cmake
-new file mode 100644
-index 0000000..9eff724
---- /dev/null
-+++ b/xmlrpc_config.h.cmake
-@@ -0,0 +1,198 @@
-+/* -*- c -*- */
-+
-+#ifndef H_XMLRPC_C_CONFIG_H
-+
-+#define HAVE_SYS_IOCTL_H 0 at HAVE_SYS_IOCTL_H@
-+#define HAVE_SYS_SELECT_H_DEFINE 0 at HAVE_SYS_IOCTL_H@
-+
-+#define VA_LIST_IS_ARRAY @VA_LIST_IS_ARRAY@
-+#define XMLRPC_HAVE_WCHAR @XMLRPC_HAVE_WCHAR@
-+#define ATTR_UNUSED @ATTR_UNUSED@
-+#define DIRECTORY_SEPARATOR "@DIRECTORY_SEPARATOR@"
-+
-+#cmakedefine HAVE_SYS_SELECT_H 1
-+#cmakedefine HAVE_WCHAR_H 1
-+#cmakedefine HAVE_SETENV 1
-+#cmakedefine HAVE_STRCASECMP 1
-+#cmakedefine HAVE__STRICMP 1
-+#cmakedefine HAVE_STRICMP 1
-+#cmakedefine HAVE_GETTIMEOFDAY 1
-+#cmakedefine HAVE_SETGROUPS 1
-+#cmakedefine HAVE_ASPRINTF 1
-+#cmakedefine HAVE_PSELECT 1
-+#cmakedefine HAVE_WCSNCMP 1
-+#cmakedefine HAVE_LOCALTIME_R 1
-+#cmakedefine HAVE_GMTIME_R 1
-+#cmakedefine HAVE_STRTOLL 1
-+#cmakedefine HAVE___STRTOLL 1
-+#cmakedefine HAVE_STRTOULL 1
-+#cmakedefine HAVE___STRTOULL 1
-+#cmakedefine HAVE_STRTOQ 1
-+#cmakedefine HAVE_STRTOUQ 1
-+
-+#define HAVE_UNICODE_WCHAR HAVE_WCHAR_H
-+
-+/* Xmlrpc-c code uses __inline__ to declare functions that should
-+ be compiled as inline code. GNU C recognizes the __inline__ keyword.
-+ Others recognize 'inline' or '__inline' or nothing at all to say
-+ a function should be inlined.
-+
-+ We could make 'configure' simply do a trial compile to figure out
-+ which one, but for now, this approximation is easier:
-+*/
-+#if (!defined(__GNUC__))
-+ #if (!defined(__inline__))
-+ #if (defined(__sgi) || defined(_AIX) || defined(_MSC_VER))
-+ #define __inline__ __inline
-+ #else
-+ #define __inline__
-+ #endif
-+ #endif
-+#endif
-+
-+/* MSVCRT means we're using the Microsoft Visual C++ runtime library */
-+
-+#if defined(_MSC_VER)
-+ /* The compiler is Microsoft Visual C++ */
-+ #define MSVCRT _MSC_VER
-+#elif defined(__MINGW32__)
-+ /* The compiler is Mingw, which is the Windows version of the GNU
-+ compiler. Programs built with this normally use the Microsoft Visual
-+ C++ runtime library.
-+ */
-+ #define MSVCRT 1
-+#else
-+ #define MSVCRT 0
-+#endif
-+
-+#if MSVCRT
-+ /* The MSVC runtime library _does_ have a 'struct timeval', but it is
-+ part of the Winsock interface (along with select(), which is probably
-+ its intended use), so isn't intended for use for general timekeeping.
-+ */
-+ #define HAVE_TIMEVAL 0
-+ #define HAVE_TIMESPEC 0
-+#else
-+ #define HAVE_TIMEVAL 1
-+ /* timespec is Posix.1b. If we need to work on a non-Posix.1b non-Windows
-+ system, we'll have to figure out how to make Configure determine this.
-+ */
-+ #define HAVE_TIMESPEC 1
-+#endif
-+
-+#if MSVCRT
-+ #define HAVE_WINDOWS_THREAD 1
-+#else
-+ #define HAVE_WINDOWS_THREAD 0
-+#endif
-+
-+#define HAVE_PTHREAD 1
-+
-+/* Note that the return value of XMLRPC_VSNPRINTF is int on Windows,
-+ ssize_t on POSIX.
-+*/
-+#if MSVCRT
-+ #define XMLRPC_SNPRINTF _snprintf
-+ #define XMLRPC_VSNPRINTF _vsnprintf
-+#else
-+ #define XMLRPC_SNPRINTF snprintf
-+ #define XMLRPC_VSNPRINTF vsnprintf
-+#endif
-+
-+#if MSVCRT
-+ #define HAVE_REGEX 0
-+#else
-+ #define HAVE_REGEX 1
-+#endif
-+
-+#if MSVCRT
-+ #define XMLRPC_SOCKETPAIR xmlrpc_win32_socketpair
-+ #define XMLRPC_CLOSESOCKET closesocket
-+#else
-+ #define XMLRPC_SOCKETPAIR socketpair
-+ #define XMLRPC_CLOSESOCKET close
-+#endif
-+
-+#if defined(_MSC_VER) && (_MSC_VER >= 1400)
-+/* Starting with MSVC 8, the runtime library defines various POSIX functions
-+ such as strdup() whose names violate the ISO C standard (the standard
-+ says the strXXX names are reserved for the standard), but warns you of
-+ the standards violation. That warning is 4996, along with other warnings
-+ that tell you you're using a function that Microsoft thinks you
-+ shouldn't.
-+
-+ Well, POSIX is more important than that element of ISO C, so we disable
-+ that warning.
-+
-+ FYI, msvcrt also defines _strdup(), etc, which doesn't violate the
-+ naming standard. But since other environments don't define _strdup(),
-+ we can't use it in portable code.
-+*/
-+#pragma warning(disable:4996)
-+#endif
-+
-+#if HAVE_STRTOLL
-+ # define XMLRPC_STRTOLL strtoll
-+#elif HAVE_STRTOQ
-+ # define XMLRPC_STRTOLL strtoq /* Interix */
-+#elif HAVE___STRTOLL
-+ # define XMLRPC_STRTOLL __strtoll /* HP-UX <= 11.11 */
-+#elif HAVE__STRTOUI64
-+ #define XMLRPC_STRTOLL _strtoui64 /* Windows MSVC */
-+#endif
-+
-+#if HAVE_STRTOULL
-+ # define XMLRPC_STRTOULL strtoull
-+#elif HAVE_STRTOUQ
-+ # define XMLRPC_STRTOULL strtouq /* Interix */
-+#elif HAVE___STRTOULL
-+ # define XMLRPC_STRTOULL __strtoull /* HP-UX <= 11.11 */
-+#elif HAVE__STRTOUI64
-+ #define XMLRPC_STRTOULL _strtoui64 /* Windows MSVC */
-+#endif
-+
-+#if MSVCRT
-+ #define popen _popen
-+#endif
-+
-+#define XMLRPC_INT64 int64_t
-+#define XMLRPC_PRId64 PRId64
-+
-+/* S_IRUSR is POSIX, defined in <sys/stat.h> Some old BSD systems and Windows
-+ systems have S_IREAD instead. Most Unix today (2011) has both. In 2011,
-+ Android has S_IRUSR and not S_IREAD.
-+
-+ Some Windows has _S_IREAD.
-+
-+ We're ignoring S_IREAD now to see if anyone misses it. If there are still
-+ users that need it, we can handle it here.
-+*/
-+#if MSVCRT
-+ #define XMLRPC_S_IWUSR _S_IWRITE
-+ #define XMLRPC_S_IRUSR _S_IREAD
-+#else
-+ #define XMLRPC_S_IWUSR S_IWUSR
-+ #define XMLRPC_S_IRUSR S_IRUSR
-+#endif
-+
-+#if MSVCRT
-+ #define XMLRPC_CHDIR _chdir
-+#else
-+ #define XMLRPC_CHDIR chdir
-+#endif
-+
-+#if MSVCRT
-+ #define XMLRPC_GETPID _getpid
-+#else
-+ #define XMLRPC_GETPID getpid
-+#endif
-+
-+#define HAVE_ABYSS_OPENSSL 1
-+
-+#if MSVCRT
-+ #define XMLRPC_FINITE _finite
-+#else
-+ #define XMLRPC_FINITE finite
-+#endif
-+
-+#endif
---
-1.7.10.4
-
diff --git a/xmlrpc-c-pc.patch b/xmlrpc-c-pc.patch
new file mode 100644
index 0000000..988352d
--- /dev/null
+++ b/xmlrpc-c-pc.patch
@@ -0,0 +1,65 @@
+Add missing .pc files (they existed in non-upstream cmake files)
+--- xmlrpc-c-1.60.05/src/cpp/Makefile.orig 2026-06-20 13:31:16.305000384 +0200
++++ xmlrpc-c-1.60.05/src/cpp/Makefile 2026-06-20 13:35:05.503758708 +0200
+@@ -76,6 +76,10 @@ PKGCONFIG_FILES_TO_INSTALL := \
+ xmlrpc_client++.pc \
+ xmlrpc_server++.pc \
+ xmlrpc_server_pstream++.pc \
++ xmlrpc_cpp.pc \
++ xmlrpc_packetsocket.pc \
++ xmlrpc_server_abyss++.pc \
++ xmlrpc_server_cgi++.pc \
+
+ OMIT_CPP_LIB_RULES = Y
+ MAJ = 9
+@@ -407,6 +411,50 @@ xmlrpc_server_pstream++.pc:
+ @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_server_pstream++ -lxmlrpc_packetsocket" >>$@
+ @echo "Cflags: -I$(HEADERDESTDIR)" >>$@
+
++xmlrpc_cpp.pc:
++ rm -f $@
++ @echo "Echoes to '$@' suppressed here ..."
++ @echo "Name: xmlrpc_cpp" >>$@
++ @echo "Description: Xmlrpc-c CPP library" >>$@
++ @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@
++ @echo >>$@
++ @echo "Requires: xmlrpc xmlrpc_server xmlrpc_util" >>$@
++ @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_cpp" >>$@
++ @echo "Cflags: -I$(HEADERDESTDIR)" >>$@
++
++xmlrpc_packetsocket.pc:
++ rm -f $@
++ @echo "Echoes to '$@' suppressed here ..."
++ @echo "Name: xmlrpc_packetsocket" >>$@
++ @echo "Description: Xmlrpc-c packet socket library" >>$@
++ @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@
++ @echo >>$@
++ @echo "Requires: xmlrpc++" >>$@
++ @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_packetsocket" >>$@
++ @echo "Cflags: -I$(HEADERDESTDIR)" >>$@
++
++xmlrpc_server_abyss++.pc:
++ rm -f $@
++ @echo "Echoes to '$@' suppressed here ..."
++ @echo "Name: xmlrpc_server_abyss++" >>$@
++ @echo "Description: Xmlrpc-c C++ Abyss-Server library" >>$@
++ @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@
++ @echo >>$@
++ @echo "Requires: xmlrpc_server++ xmlrpc_server_abyss xmlrpc++ xmlrpc_abyss xmlrpc_util" >>$@
++ @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_server_abyss++" >>$@
++ @echo "Cflags: -I$(HEADERDESTDIR)" >>$@
++
++xmlrpc_server_cgi++.pc:
++ rm -f $@
++ @echo "Echoes to '$@' suppressed here ..."
++ @echo "Name: xmlrpc_server_cgi++" >>$@
++ @echo "Description: Xmlrpc-c C++ CGI-Server library" >>$@
++ @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@
++ @echo >>$@
++ @echo "Requires: xmlrpc_server++ xmlrpc++ xmlrpc" >>$@
++ @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_server_cgi++" >>$@
++ @echo "Cflags: -I$(HEADERDESTDIR)" >>$@
++
+ #-----------------------------------------------------------------------------
+ # MISCELLANEOUS RULES
+ #-----------------------------------------------------------------------------
diff --git a/xmlrpc-c-soname.patch b/xmlrpc-c-soname.patch
index 1b06a14..7350599 100644
--- a/xmlrpc-c-soname.patch
+++ b/xmlrpc-c-soname.patch
@@ -194,98 +194,3 @@
$(XML_PARSER_LIBDEP) \
-L$(LIBXMLRPC_UTILPP_DIR) -lxmlrpc_util++ \
-L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util \
---- xmlrpc-c/src/xmlrpc.pc.cmake.orig 2013-03-03 17:06:35.285532023 +0100
-+++ xmlrpc-c/src/xmlrpc.pc.cmake 2013-03-03 17:46:37.542097875 +0100
-@@ -8,5 +8,5 @@
- Version: @XMLRPC_C_VERSION@
-
- Requires.private: @xmlrpc_pkgconfig_req@ xmlrpc_util
--Libs: -L${libdir} -lxmlrpc @xmlrpc_pkgconfig_libs@
-+Libs: -L${libdir} -lxmlrpc-c @xmlrpc_pkgconfig_libs@
- Cflags: -I${includedir}
---- xmlrpc-c-1.43.08/src/CMakeLists.txt.orig 2024-10-27 08:48:07.694762324 +0100
-+++ xmlrpc-c-1.43.08/src/CMakeLists.txt 2024-10-27 08:49:39.967595773 +0100
-@@ -47,8 +47,8 @@ add_subdirectory(cpp)
-
-
-
--### libxmlrpc.so
--add_library(xmlrpc SHARED
-+### libxmlrpc-c.so
-+add_library(xmlrpc-c SHARED
- base_global.c double.c parse_datetime.c parse_value.c resource.c trace.c version.c
- json.c
- ${xmlrpc_xml_parser}
-@@ -57,19 +57,19 @@ add_library(xmlrpc SHARED
- xmlrpc_build.c xmlrpc_decompose.c xmlrpc_parse.c xmlrpc_serialize.c
- xmlrpc_authcookie.c)
-
--target_compile_options(xmlrpc
-+target_compile_options(xmlrpc-c
- PRIVATE
- ${libxml_INCLUDES})
-
- ensc_pkgconfig(xmlrpc)
--target_link_libraries(xmlrpc ${libxml_LIBS} xmlrpc_util)
--list(APPEND lib_TARGETS xmlrpc)
-+target_link_libraries(xmlrpc-c ${libxml_LIBS} xmlrpc_util)
-+list(APPEND lib_TARGETS xmlrpc-c)
-
- ### libxmlrpc_client.so
- add_library(xmlrpc_client SHARED
- xmlrpc_client.c xmlrpc_client_global.c xmlrpc_server_info.c ${transport_SOURCES})
-
--target_link_libraries(xmlrpc_client xmlrpc ${client_LIBS})
-+target_link_libraries(xmlrpc_client xmlrpc-c ${client_LIBS})
- set_target_properties(xmlrpc_client
- PROPERTIES
- COMPILE_FLAGS "${client_CFLAGS}")
-@@ -79,7 +79,7 @@ ensc_pkgconfig(xmlrpc_client)
- ### libxmlrpc_server.so
- add_library(xmlrpc_server SHARED
- registry.c method.c system_method.c)
--target_link_libraries(xmlrpc_server xmlrpc)
-+target_link_libraries(xmlrpc_server xmlrpc-c)
- list(APPEND lib_TARGETS xmlrpc_server)
- ensc_pkgconfig(xmlrpc_server)
-
---- xmlrpc-c-1.39.12/src/cpp/CMakeLists.txt.orig 2018-02-25 15:31:16.956791945 +0100
-+++ xmlrpc-c-1.39.12/src/cpp/CMakeLists.txt 2018-02-25 15:37:15.140121190 +0100
-@@ -4,13 +4,13 @@
- add_library(xmlrpc++ SHARED
- fault.cpp global.cpp
- outcome.cpp param_list.cpp value.cpp xml.cpp)
--target_link_libraries(xmlrpc++ xmlrpc_util++ xmlrpc pthread)
-+target_link_libraries(xmlrpc++ xmlrpc_util++ xmlrpc-c pthread)
- list(APPEND lib_TARGETS xmlrpc++)
- ensc_pkgconfig(xmlrpc++)
-
- ####### libxmlrpc_cpp.so
- add_library(xmlrpc_cpp SHARED XmlRpcCpp)
--target_link_libraries(xmlrpc_cpp xmlrpc xmlrpc_server)
-+target_link_libraries(xmlrpc_cpp xmlrpc-c xmlrpc_server)
- list(APPEND lib_TARGETS xmlrpc_cpp)
- ensc_pkgconfig(xmlrpc_cpp)
-
---- xmlrpc-c/examples/CMakeLists.txt.orig 2011-03-20 17:08:15.832709568 +0100
-+++ xmlrpc-c/examples/CMakeLists.txt 2011-03-20 17:12:17.396709568 +0100
-@@ -21,7 +21,7 @@
- endif(ENABLE_CPLUSPLUS)
-
-
--set(base_LIBS xmlrpc)
-+set(base_LIBS xmlrpc-c)
- ensc_add_example(json c base)
- ensc_add_example(gen_sample_add_xml c base)
-
---- xmlrpc-c/tools/xml/CMakeLists.txt.orig 2013-03-03 17:51:15.572086205 +0100
-+++ xmlrpc-c/tools/xml/CMakeLists.txt 2013-03-03 17:56:38.495405989 +0100
-@@ -5,7 +5,7 @@
- ../lib/dumpvalue.c)
-
- target_link_libraries(xmlrpc_parsecall
-- xmlrpc
-+ xmlrpc-c
- util)
-
- install(TARGETS xmlrpc_parsecall
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/xmlrpc-c.git/commitdiff/3546340efa056080b5b6e27532f83830de3f6f90
More information about the pld-cvs-commit
mailing list