freeswitch/libs/xmlrpc-c/Windows/ReadMeWin32.txt
Michael Jerris 3abb7730b2 add xmlrpc-c 1.03.14 to in tree libs
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3772 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-12-21 03:57:49 +00:00

116 lines
6.0 KiB
Plaintext

Build Instructions For XML-RPC For C/C++ On Windows
---------------------------------------------------
The following instructions do not fully work in this release. There
is no trivial way to build this release for Windows. The last release
that was known to build without special effort on the part of the user
is 1.02.
Since then, nobody has maintained the code for Windows, and changes that
were made for other platforms broke some things for Windows. Most likely,
anyone with a passing knowledge of building C code on Windows could
update this code to work on Windows without any in-depth study of it. If
you do so, please contribute your work to save other users the trouble.
The majority of the work that needs to be done to make the code build on
Windows is simply adjusting project files to reflect the fact that files
have been created, deleted, and moved since they were written.
This release includes the option to compile the "http.sys" version of the
XMLRPC-C server. If you do not wish to build in the http.sys server,
set the MUST_BUILD_HTTP_SYS_SERVER to 0 in the transport_config_win32.h and/or
the transport_config.h file. Successful conpilation requires installation
of the Microsoft Platform SDK for Windows XP SP2 (or later) to get the latest
header and link libraries required to support this functionality. After
installation, be sure to properly register the directories as documented
in the Platform SDK help file topic "Installing the Platform SDK with
Visual Studio". Download the Platform SDK from:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
To create the three headers required for Win32 WinInet compilation, run the
ConfigureWin32.bat found in the Windows directory. If you wish to alter the
transports that are built to include curl or libwww, adjust the preprocessor
definitions at the top of the transport_config_win32.h and/or
the transport_config.h files. See the file UsingCURLinWin32.txt for
more information on using the curl transport.
To compile, open the xmlrpc.dsw file in Visual Studio 6 or greater. The
project will convert and work fine in Visual Studio 2003 as well -
other versions of Visual Studio were not tested.
NOTE: If you get an error while opening or converting the project files,
it is likely due to using WinRar or similar to decompress the distribution
tarball. You can use WinZip or another utility to correctly decompress the
.tgz file.
Suggested testing for evaluation of the library involves a few projects.
Here is a quick getting started guide:
1) Set the Active Project to query_meerkat and build it in release or debug
modes. The dependent projects will be built automatically. In the
project settings dialog, add the argument for what you wish to query
meerkat for - "Windows" is a good query. Run the project. This will
query the meerkat server for articles related to windows and output the
results to the console.
2) Set the Active Project to xmlrpc_sample_add_server and build it in
release or debug modes. The dependent projects will be built
automatically. In the project settings dialog, add the argument for
the port to 8080. This will run the server sample which adds two
numbers and returns a result. You should run this from a command
prompt instead of through Visual Studio so you may run the sample
client as well.
3) Set the Active Project to xmlrpc_sample_add_sync_client or
xmlrpc_sample_add_async_client and build it in release or debug modes.
The dependent projects will be built automatically. This will run
the client sample which submits two numbers to be added to the server
application as described above and displays the result. Note that the
client example comes in the sync and async varieties.
Steven Bone
July 27, 2005
sbone@pobox.com
WIN32 CHANGES
Changes from the 1.02 release for Win32:
1) Option to easily disable the http.sys server for those who do not need
it or wish to download the Platform SDK.
Changes from the 1.01 -> 1.02 release for Win32:
1) Project files for gennmtab, xmlparse, and xmltok updated to include the
path to the xmlrpc_config.h file.
2) Bugfix for WinInet authentication.
3) Supports xmlrpc_xportparms, xmlrpc_wininet_xportparms added
*potential breaking change* - now by default we fail on invalid
SSL certs, use the xmlrpc_wininet_xportparms option to enable old
behavior.
4) Added project file for xmlrpc_sample_auth_client
5) Added project and src for a http.sys based xmlrpc-c server. See comments
in the source files. This supports Windows XP SP2 and Windows Server
2003 and allows other http.sys based applications to bind to the same
port. In Server 2003, IIS uses http.sys and thus the XML-RPC server
can be run on the standard port 80 along with IIS. The sample also
supports https and basic authentication. It tested OK with
http://validator.xmlrpc.com/ Note that the Platform SDK headers and
link libraries for Windows XP SP2 or newer are required to compile
xmlrpc-c for this module. If you are not using this server, it is
safe to exclude the xmlrpc_server_w32httpsys.c file from the xmlrpc
project and these dependencies will not be required. You can get the
latest platform SDK at
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
Be sure after installation to choose the program to "register the PSDK
directories with Visual Studio" so the newer headers are found.
6) Better support for libcurl. Updated project files, transport_config_win32.h,
added documentation UsingCURLinWin32.txt.
Changes from the 1.00 -> 1.01 release for Win32:
1) Project files now reflect static linking for the expat XML library.
2) Example projects were created/updated to keep them in sync with the
distribution. The project files were moved into the .\Windows
directory
3) Projects for the rpc and cpp tests were created. The
xmlrpc_win32_config.h defines the directory for the test files relative
to the output directory
4) Major refactoring of the Wininet Transport.