forked from Mirrors/freeswitch
116 lines
6.0 KiB
Plaintext
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.
|