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
v1.2.stable
Michael Jerris 2006-12-21 03:57:49 +00:00
parent 6d9679b164
commit 3abb7730b2
338 changed files with 98032 additions and 2 deletions

View File

@ -78,9 +78,11 @@
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* Define as `__inline' if that's what the C compiler calls it, or to nothing
if it is not supported. */
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#undef inline
#endif
/* Define to `unsigned' if <sys/types.h> does not define. */
#undef size_t

18
libs/xmlrpc-c/.cvsignore Normal file
View File

@ -0,0 +1,18 @@
Makefile.config
autogen.sh
autom4te.cache
configure
config.log
stamp-h
stamp-h1
config.cache
libtool
config.status
xmlrpc_config.h
xmlrpc_amconfig.h
xmlrpc-c-config
xmlrpc-c-config.test
xmlrpc-c-*.tar.gz
xmlrpc-c.spec
transport_config.h

110
libs/xmlrpc-c/GNUmakefile Normal file
View File

@ -0,0 +1,110 @@
ifeq ($(SRCDIR)x,x)
SRCDIR = $(CURDIR)
endif
SUBDIR = .
BUILDDIR = $(SRCDIR)
VPATH = .:$(SRCDIR)
include $(SRCDIR)/Makefile.config
SUBDIRS = include src lib tools examples
PROGRAMS_TO_INSTALL = xmlrpc-c-config
# We're in a transition between the bloated, complex GNU
# Autoconf/Automake style of build, in which 'configure' creates all
# the make files, to simpler static make files. Some directories have
# been converted; some haven't. So we have the hack of putting
# 'xmlrpc_config.h' as the first dependency of 'all' to make sure
# 'configure runs before anything in the case that the user neglects
# to run 'configure' before doing 'make'.
default: xmlrpc_config.h all
.PHONY: all
all: xmlrpc-c-config xmlrpc-c-config.test $(SUBDIRS:%=%/all)
# We don't want the transport_config.h rule in Makefile.common:
OMIT_TRANSPORT_CONFIG_H = Y
transport_config.h: $(BUILDDIR)/Makefile.config
rm -f $@
echo '/* This file was generated by a make rule */' >>$@
ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
echo '#define MUST_BUILD_WININET_CLIENT 1' >>$@
else
echo '#define MUST_BUILD_WININET_CLIENT 0' >>$@
endif
ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
echo '#define MUST_BUILD_CURL_CLIENT 1' >>$@
else
echo '#define MUST_BUILD_CURL_CLIENT 0' >>$@
endif
ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
echo '#define MUST_BUILD_LIBWWW_CLIENT 1' >>$@
else
echo '#define MUST_BUILD_LIBWWW_CLIENT 0' >>$@
endif
echo "static const char * const XMLRPC_DEFAULT_TRANSPORT =" >>$@
ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
echo '"libwww";' >>$@
else
ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
echo '"curl";' >>$@
else
ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
echo '"wininet";' >>$@
else
@echo 'ERROR: no client XML transport configured'; rm $@; false
endif
endif
endif
.PHONY: clean clean-local
clean: $(SUBDIRS:%=%/clean) clean-common clean-local
clean-local:
rm -f transport_config.h
.PHONY: distclean distclean-local
distclean: $(SUBDIRS:%=%/distclean) distclean-common distclean-local
distclean-local: clean-local
rm -f config.log config.status Makefile.config libtool
rm -f xmlrpc_config.h xmlrpc_amconfig.h stamp-h xmlrpc-c.spec
rm -f xmlrpc-c-config xmlrpc-c-config.test
.PHONY: tags
tags: $(SUBDIRS:%=%/tags) TAGS
DISTFILES =
.PHONY: distdir
distdir: distdir-common
.PHONY: install
install: $(SUBDIRS:%=%/install) install-common install-compat-hdr
.PHONY: install-compat-hdr
install-compat-hdr:
# Install old names of header files for backward compatibility
cd $(DESTDIR)$(HEADERINST_DIR); \
rm -f xmlrpc.h xmlrpc_client.h xmlrpc_server.h xmlrpc_cgi.h \
xmlrpc_server_abyss.h xmlrpc_server_w32httpsys.h \
XmlRpcCpp.h; \
$(LN_S) xmlrpc-c/oldxmlrpc.h xmlrpc.h; \
$(LN_S) xmlrpc-c/client.h xmlrpc_client.h; \
$(LN_S) xmlrpc-c/server.h xmlrpc_server.h; \
$(LN_S) xmlrpc-c/server_cgi.h xmlrpc_cgi.h; \
$(LN_S) xmlrpc-c/server_abyss.h xmlrpc_server_abyss.h; \
$(LN_S) xmlrpc-c/server_w32httpsys.h xmlrpc_server_w32httpsys.h; \
$(LN_S) xmlrpc-c/oldcppwrapper.hpp XmlRpcCpp.h ;\
.PHONY: dep
dep: $(SUBDIRS:%=%/dep)
xmlrpc-c-config xmlrpc-c-config.test xmlrpc_config.h xmlrpc_amconfig.h \
:%:%.in $(SRCDIR)/configure
$(SRCDIR)/configure
include $(SRCDIR)/Makefile.common

14
libs/xmlrpc-c/Makefile Normal file
View File

@ -0,0 +1,14 @@
# The make files for this package exploit features of GNU Make that
# other Makes do not have. Because it is a common mistake for users
# to try to build with a different Make, we have this make file that
# does nothing but tell the user to use GNU Make.
# If the user were using GNU Make now, this file would not get used because
# GNU Make uses a make file named "GNUmakefile" in preference to "Makefile"
# if it exists. This package contains a "GNUmakefile".
all install clean dep depend:
@echo "You must use GNU Make to build this. You are running some "
@echo "other Make. GNU Make may be installed on your system with "
@echo "the name 'gmake'. If not, see http://www.gnu.org/software ."
@echo

View File

@ -0,0 +1,268 @@
# -*-makefile-*- <-- an Emacs control
# This file contains rules and variable settings for the convenience
# of every other make file in the package.
# No make file is required to use this file, but it usually saves a lot
# of duplication.
# The following make variables are meaningful as input to this file:
#
# SRCDIR: Name of directory which is the top of the Xmlrpc-c source tree.
# BUILDDIR: Name of directory which is the top of the Xmlrpc-c build tree.
LIBTOOL = $(SRCDIR)/libtool
LINK = $(LIBTOOL) --mode=link $(CCLD)
GCC_WARNINGS = -Wall -Wundef -Wimplicit -W -Winline
# We need -Wwrite-strings after we fix all the missing consts
GCC_C_WARNINGS = $(GCC_WARNINGS) \
-Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes
GCC_CXX_WARNINGS = $(GCC_WARNINGS) -Woverloaded-virtual -Wsynth
ifeq ($(C_COMPILER_GNU),yes)
CFLAGS_COMMON = $(GCC_C_WARNINGS) -fno-common -g
endif
ifeq ($(CXX_COMPILER_GNU),yes)
CXXFLAGS_COMMON = $(GCC_CXX_WARNINGS)
endif
DISTDIR = $(BUILDDIR)/$(PACKAGE)-$(VERSION)/$(SUBDIR)
LDFLAGS_VERSINFO = -version-info 7:0:4
# CURDIR was introduced in GNU Make 3.77.
ifeq ($(CURDIR)x,x)
CURDIR := $(shell /bin/pwd)
endif
##############################################################################
# RULES #
##############################################################################
$(SUBDIRS:%=%/all): %/all: $(CURDIR)/%
$(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
$(notdir $@)
$(SUBDIRS:%=%/install): %/install: $(CURDIR)/%
$(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
$(notdir $@)
$(SUBDIRS:%=%/clean): %/clean: $(CURDIR)/%
$(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
$(notdir $@)
$(SUBDIRS:%=%/distclean): %/distclean: $(CURDIR)/%
$(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
$(notdir $@)
$(SUBDIRS:%=%/distdir): %/distdir: $(CURDIR)/%
$(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
$(notdir $@)
$(SUBDIRS:%=%/dep): %/dep: $(CURDIR)/%
$(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
$(notdir $@)
$(BUILDDIR)/lib/util/casprintf.lo: FORCE
$(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/util/Makefile $(notdir $@)
$(BUILDDIR)/lib/expat/xmlparse/libxmlrpc_xmlparse.la: FORCE
$(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/expat/xmlparse/Makefile \
$(notdir $@)
$(BUILDDIR)/lib/expat/xmltok/libxmlrpc_xmltok.la: FORCE
$(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/expat/xmltok/Makefile \
$(notdir $@)
$(BUILDDIR)/lib/wininet_transport/xmlrpc_wininet_transport.lo: FORCE
$(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/wininet_transport/Makefile \
$(notdir $@)
$(BUILDDIR)/lib/curl_transport/xmlrpc_curl_transport.lo: FORCE
$(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/curl_transport/Makefile \
$(notdir $@)
$(BUILDDIR)/lib/libwww_transport/xmlrpc_libwww_transport.lo: FORCE
$(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/libwww_transport/Makefile \
$(notdir $@)
$(BUILDDIR)/src/libxmlrpc.la: FORCE
$(MAKE) -C $(dir $@) -f $(SRCDIR)/src/Makefile \
$(notdir $@)
$(BUILDDIR)/src/libxmlrpc_client.la: FORCE
$(MAKE) -C $(dir $@) -f $(SRCDIR)/src/Makefile \
$(notdir $@)
$(BUILDDIR)/src/libxmlrpc_server.la: FORCE
$(MAKE) -C $(dir $@) -f $(SRCDIR)/src/Makefile \
$(notdir $@)
ifneq ($(OMIT_TRANSPORT_CONFIG_H),Y)
$(BUILDDIR)/transport_config.h:
$(MAKE) -C $(dir $@) $(notdir $@)
endif
MKINSTALLDIRS = $(SHELL) $(SRCDIR)/mkinstalldirs
.PHONY: install-common install-libraries install-headers install-bin
install-common: \
install-ltlibraries install-libraries install-headers install-bin
INSTALL_LIB_CMD = $(INSTALL_DATA) $$p $(DESTDIR)$(LIBINST_DIR)/$$p
RANLIB_CMD = $(RANLIB) $(DESTDIR)$(LIBINST_DIR)/$$p
install-libraries: $(LIBRARIES_TO_INSTALL)
$(MKINSTALLDIRS) $(DESTDIR)$(LIBINST_DIR)
@list='$(LIBRARIES_TO_INSTALL)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_LIB_CMD)"; \
$(INSTALL_LIB_CMD); \
else :; fi; \
done
@$(POST_INSTALL)
@list='$(LIBRARIES_TO_INSTALL)'; for p in $$list; do \
if test -f $$p; then \
echo " $(RANLIB_CMD)"; \
$(RANLIB_CMD); \
else :; fi; \
done
LIBTOOL_INSTALL_CMD = $(LIBTOOL) --mode=install \
$(INSTALL) $$p $(DESTDIR)$(LIBINST_DIR)/$$p
install-ltlibraries: $(LTLIBRARIES_TO_INSTALL)
$(MKINSTALLDIRS) $(DESTDIR)$(LIBINST_DIR)
@list='$(LTLIBRARIES_TO_INSTALL)'; for p in $$list; do \
if test -f $$p; then \
echo " $(LIBTOOL_INSTALL_CMD)"; \
$(LIBTOOL_INSTALL_CMD); \
else :; fi; \
done
HEADERDESTDIR = $(DESTDIR)$(HEADERINST_DIR)
INSTALL_HDR_CMD = $(INSTALL_DATA) $$d$$p $(HEADERDESTDIR)/$$p
install-headers: $(HEADERS_TO_INSTALL)
$(MKINSTALLDIRS) $(HEADERDESTDIR)
$(MKINSTALLDIRS) $(HEADERDESTDIR)/xmlrpc-c
@list='$(HEADERS_TO_INSTALL)'; for p in $$list; do \
if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
echo " $(INSTALL_HDR_CMD)"; \
$(INSTALL_HDR_CMD); \
done
INSTALL_PROGRAM_CMD = $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p \
$(DESTDIR)$(PROGRAMINST_DIR)/$$p
install-bin: $(PROGRAMS_TO_INSTALL) $(DESTDIR)$(PROGRAMINST_DIR)
@list='$(PROGRAMS_TO_INSTALL)'; \
for p in $$list; do \
echo "$(INSTALL_PROGRAM_CMD)"; \
$(INSTALL_PROGRAM_CMD); \
done
$(DESTDIR)$(PROGRAMINST_DIR):
$(MKINSTALLDIRS) $@
.PHONY: clean-common
clean-common:
rm -f *.o *.a *.s *.i *.la *.lo
rm -rf .libs
.PHONY: distclean-common
distclean-common:
# Makefile.depend is generated by 'make dep' and contains only dependencies
# that make parts get _rebuilt_ when parts upon which they depend change.
# It does not contain dependencies that are necessary to cause a part to
# get built in the first place. E.g. if foo.c uses bar.h and bar.h gets built
# by a make rule, you must put the dependency of foo.c on bar.h somewhere
# besides Makefile.depend.
#
# Because of this, a user doesn't need Makefile.depend, because he
# doesn't modify source files. A developer, on the other hand, must make his
# own Makefile.depend, because 'make dep' creates Makefile.depend with
# absolute pathnames, specific to the developer's system.
#
# So we empty out Makefile.depend here. The developer must do 'make dep' if
# he wants to edit and rebuild.
#
# Other projects have 'make distclean' _remove_ Makefile.depend and then
# have 'make' automatically build Makefile.depend. We have
# found that to be an utter disaster -- it's way too complicated and prone
# to failure, especially with built .h files. Better not to burden the user,
# who gains nothing from it, with that.
#
cat /dev/null >Makefile.depend
rm -f TAGS
.PHONY: distdir-common
distdir-common:
@for file in $(DISTFILES); do \
d=$(SRCDIR); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(DISTDIR)/$$file; \
else \
test -f $(DISTDIR)/$$file \
|| ln $$d/$$file $(DISTDIR)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(DISTDIR)/$$file || :; \
fi; \
done
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
DEP_SOURCES = $(wildcard *.c *.cpp)
# This is a filter to turn "foo.o:" rules into "foo.o foo.lo:" because Libtool
# uses .lo for object files. I'd like to purge the build of Libtool some day
# and eliminate this complication.
LIBTOOL_DEPEND_MASSAGER = perl -walnpe's{^(.*)\.o:}{$$1.o $$1.lo:}'
.PHONY: dep-common
dep-common: FORCE
ifneq ($(DEP_SOURCES)x,x)
-$(CC) -MM -MG -I. $(INCLUDES) $(DEP_SOURCES) | \
$(LIBTOOL_DEPEND_MASSAGER) \
>Makefile.depend
endif
Makefile.depend:
cat /dev/null >$@
# The automatic dependency generation is a pain in the butt and
# totally unnecessary for people just installing the distributed code,
# so to avoid needless failures in the field and a complex build, the
# 'distclean' target simply makes Makefile.depend an empty file. A
# developer may do 'make dep' to create a Makefile.depend full of real
# dependencies.
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
# Use the FORCE target as a dependency to force a target to get remade
FORCE:

View File

@ -0,0 +1,77 @@
# Makefile.config is generated by 'configure' using Makefile.config.in
# as a template and information that 'configure' gathers from the build
# system and from user options.
# Makefile.config should someday replace most of the other files that
# 'configure' generates, thus simplifying development and customization.
# Makefile.config is intended to contain information specific to the
# particular build environment or user build choices.
# Furthermore, most of the logic in 'configure', and thus 'configure.in',
# should go into the make files to simplify the build. Makefile.config
# should just pass raw configure variables through to the make file.
# Tokens of the form @TOKEN@ in the template file get replaced by
# 'configure' with the values of variables of the same name within
# 'configure', because of a AC_SUBST(TOKEN) statement in the
# 'configure.in' from which 'configure' was built.
# Here are the options the user chose on 'configure':
ENABLE_ABYSS_SERVER = @ENABLE_ABYSS_SERVER@
ENABLE_ABYSS_THREADS = @ENABLE_ABYSS_THREADS@
ENABLE_CPLUSPLUS = @ENABLE_CPLUSPLUS@
ENABLE_CGI_SERVER = @ENABLE_CGI_SERVER@
ENABLE_LIBXML2_BACKEND = @ENABLE_LIBXML2_BACKEND@
ENABLE_EFENCE = @ENABLE_EFENCE@
MUST_BUILD_WININET_CLIENT = @MUST_BUILD_WININET_CLIENT@
MUST_BUILD_CURL_CLIENT = @MUST_BUILD_CURL_CLIENT@
MUST_BUILD_LIBWWW_CLIENT = @MUST_BUILD_LIBWWW_CLIENT@
LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
LIBXML2_LIBS = @LIBXML2_LIBS@
MUST_BUILD_CLIENT = no
ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
MUST_BUILD_CLIENT = yes
endif
ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
MUST_BUILD_CLIENT = yes
endif
ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
MUST_BUILD_CLIENT = yes
endif
# Stuff 'configure' figured out about our build platform:
SHELL = @SHELL@
CC = @CC@
CXX = @CXX@
CCLD = $(CC)
CXXLD = $(CXX)
AR = ar
RANLIB = @RANLIB@
LN_S = @LN_S@
INSTALL = @INSTALL@
C_COMPILER_GNU = @C_COMPILER_GNU@
CXX_COMPILER_GNU = @CXX_COMPILER_GNU@
# Here are the commands 'make install' uses to install various kinds of files:
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
# Here are the locations at which 'make install' puts files:
# DESTDIR is designed to be overriden at make time in order to relocate
# the entire install into a subdirectory.
DESTDIR =
exec_prefix = @exec_prefix@
prefix = @prefix@
LIBINST_DIR = @libdir@
HEADERINST_DIR = @includedir@
PROGRAMINST_DIR = @bindir@

View File

89
libs/xmlrpc-c/README Normal file
View File

@ -0,0 +1,89 @@
This is the source code for XML-RPC for C/C++, called Xmlrpc-c for short.
XML-RPC for C/C++ is programming libraries and related tools to help you
write an XML-RPC server or client in C or C++.
Documentation for the package is at
http://xmlrpc-c.sourceforge.net/doc
See the Xmlrpc-c website at:
http://xmlrpc-c.sourceforge.net/
PREREQUISITES
-------------
To build a useful Xmlrpc-c client library, you'll need to have at
least one HTTP library. Xmlrpc-c knows how to use W3C Libwww (Version
5.3.2 or newer), Curl, and Wininet. The configurator gives you the
option of building libraries that use any or all of these, and
defaults to every one you appear to have installed. If you don't
appear to have any installed, the configurator causes the build to
omit client facilities altogether.
Information about W3C Libwww, including how to get it are at
<http://www.w3.org/Library>.
For Curl, see <http://curl.haxx.se>.
Wininet comes with Windows, and isn't available for any other platform.
You also need an XML parser/builder library. An old version of Expat
is included in the package and used by default, so there's no actual
prerequisite here. But if you separately obtain Libxml2, you can
configure the build to use that instead. There's no really pressing
reason to do that, though.
Once you have the prerequisite libraries installed, you can issue
these commands:
$ ./configure
$ make
$ make install
(There's supposed to be a 'make check' step in there too, to validate
that everything built OK, but it's broken right now - 2005.01.07).
To see it work, run a simple server like this:
$ examples/xmlrpc_sample_add_server 8080
Then run a client that does an RPC to this server:
$ examples/xmlrpc_sample_add_client
(I don't mean to imply that the above are consecutive shell commands;
They can't be, because the server program runs indefinitely).
Also try other sample servers and clients, described in examples/README.
You may want to pass a '--prefix' argument to 'configure'. See
'./configure --help' for details.
You may also want to disable client XML transports that you won't be
using. In particular, the Libwww transport can be inconvenient, because
it typically uses about 20 shared libraries. Any XML-RPC client
program that uses Xmlrpc-c, whether or not the program uses any of the
libwww facilities, must attach all those libraries, and that can take
a significant amount of time.
See './configure --help' for the options that disable certain transports.
WINDOWS
-------
All of the above is essentially for Unix-type operating systems. To
build and use Xmlrpc-c on Windows, see the file
Windows/ReadMeWin32.txt.
ADDITIONAL INFORMATION
----------------------
See the doc/ directory of the source tree for information about the
source code. User documentation is on the web, as described above.

View File

@ -0,0 +1,7 @@
@echo off
echo creating Win32 header files...
copy .\xmlrpc_win32_config.h ..\config.h
copy .\xmlrpc_win32_config.h ..\xmlrpc_config.h
copy .\transport_config_win32.h ..\transport_config.h
echo completed creating win32 header files.
pause

View File

@ -0,0 +1,116 @@
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.

View File

@ -0,0 +1,64 @@
Background:
Lets say you need to support a xmlrpc-c client running as a service. In this
situation you cannot use WinInet. Details of the restriction can be found on
the libcurl website or various Microsoft KB articles. The alternative is to use
libcurl. This document describes the steps required to use libcurl as your
transport mechanism as supported by the latest files and projects provided in
the xmlrpc-c distribution. The assumption is that you can successfully compile
the distribution of xmlrpc-c.
Overview:
The default projects in xmlrpc-c create standalone executables that do not
require other DLLs (release mode). While the case can be made for this
behavior pro and con, it is beyond this document to justify it. Therefore, we
need to create static link libraries for libcurl that mimics this behavior.
Once the link libraries are created, we can then add them (plus the requisite
curl headers) into the xmlrpc-c project. Finally, we enable the compilation of
the curl transport file and tell xmlrpc-c that we will be using curl. Lastly,
we build and test the project.
Steps to use CURL with Win32 xmlrpc-c:
1. Download the CURL source. In the “include” folder of the CURL distribution,
copy the curl directory to the “lib” directory of xmlbpc-c. When you are done
with this step, you should have a curl.h file located in the directory
xmlrpc-c\lib\curl\. The xmlrpc project looks in this relative path for the
necessary headers.
2. In the CURL distribution, lib directory, is a file called Makefile.vc6. Edit
this file. The line starting with CCNODBG should be changed to:
CCNODBG = cl.exe /MT /O2 /DNDEBUG
The /MT option links with the Multithreaded non-dll version of the c runtime.
If this change is not made, the project will not link, as this is the default
setting for the xmlrpc-c projects. In debug mode, we use the dll version of the
c runtime as it makes memory leak checking tools work better.
3. Open a command prompt window and run the vcvars32.bat file in your Visual C++
distribution. If you are using Studio 2002 or 2003, use the “Visual Studio
Command Prompt” from the Start menu to open the console.
4. Compile release and debug mode libraries. For the purposes of this tutorial,
we are going to build only the curl library without ssl or zlib support. In the
command prompt, navigate to the curl\lib directory and execute the following
commands:
nmake -f Makefile.vc6 CFG=debug
nmake -f Makefile.vc6 CFG=release
5. The above step should have generated two static link libraries in the
curl\lib directory: libcurl.lib and libcurld.lib. Copy these files into the
root of the xmlrpc-c\lib\ directory. This step ends our involvement with the
actual CURL distribution. The remainder of the steps are for XMLRPC-C.
6. Open the xmlrpc-c Visual Studio workspace (Instructions for VC++ 6, other
versions are slightly different). In File View, expand the xmlrpc project.
Under “Source Files” there is an entry for xmlrpc_curl_transport.c This is not
included in any build paths by default. To enable it for compilation, right
click the file to change the settings. In the dropdown, select “All
Configurations.” Pick the General tab and uncheck the “Exclude File From Build”
setting. Press OK to save your changes to the project.
7. In the “Header Files” section of the xmlrpc project is a file called
“transport_config.h”. Edit this file to set the MUST_BUILD_CURL_CLIENT to 1,
and if you wish to change the default transport to curl, change the
XMLRPC_DEFAULT_TRANSPORT to “curl”.
8. Compile and test one or more of the sample client projects.

View File

@ -0,0 +1,102 @@
# Microsoft Developer Studio Project File - Name="cpptest" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=cpptest - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "cpptest.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "cpptest.mak" CFG="cpptest - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "cpptest - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "cpptest - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "cpptest"
# PROP Scc_LocalPath ".."
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "cpptest - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release\cpptest"
# PROP Intermediate_Dir "Release\cpptest"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\\" /I "..\src" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\lib\xmlrpc.lib /nologo /subsystem:console /machine:I386 /out:"..\bin\cpptest.exe"
!ELSEIF "$(CFG)" == "cpptest - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug\cpptest"
# PROP Intermediate_Dir "Debug\cpptest"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\\" /I "..\src" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\lib\xmlrpcD.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\bin\cpptest.exe" /pdbtype:sept
!ENDIF
# Begin Target
# Name "cpptest - Win32 Release"
# Name "cpptest - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\src\cpptest.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -0,0 +1,100 @@
# Microsoft Developer Studio Project File - Name="query_meerkat" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=query_meerkat - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "query_meerkat.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "query_meerkat.mak" CFG="query_meerkat - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "query_meerkat - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "query_meerkat - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "query_meerkat"
# PROP Scc_LocalPath ".."
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "query_meerkat - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release\query_meerkat"
# PROP Intermediate_Dir "Release\query_meerkat"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\\" /I "..\include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 ..\lib\xmlrpc.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib WinInet.lib /nologo /subsystem:console /machine:I386 /out:"..\bin\query_meerkat.exe"
!ELSEIF "$(CFG)" == "query_meerkat - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug\query_meerkat"
# PROP Intermediate_Dir "Debug\query_meerkat"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\\" /I "..\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ..\lib\xmlrpcD.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib WinInet.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\bin\query_meerkatD.exe" /pdbtype:sept
!ENDIF
# Begin Target
# Name "query_meerkat - Win32 Release"
# Name "query_meerkat - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE="..\examples\query-meerkat.c"
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -0,0 +1,236 @@
# Microsoft Developer Studio Project File - Name="rpctest" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=rpctest - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "rpctest.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "rpctest.mak" CFG="rpctest - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "rpctest - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "rpctest - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "rpctest"
# PROP Scc_LocalPath ".."
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "rpctest - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release\rpctest"
# PROP Intermediate_Dir "Release\rpctest"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\\" /I "..\include" /I "../lib/util/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 ..\lib\xmlrpc.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib Wininet.lib /nologo /subsystem:console /machine:I386 /out:"..\bin\rpctest.exe"
# Begin Special Build Tool
SOURCE="$(InputPath)"
PostBuild_Desc=Copy test files
PostBuild_Cmds=copy ..\src\testdata\*.* .
# End Special Build Tool
!ELSEIF "$(CFG)" == "rpctest - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug\rpctest"
# PROP Intermediate_Dir "Debug\rpctest"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\\" /I "..\include" /I "../lib/util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ..\lib\xmlrpcD.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib Wininet.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\bin\rpctestD.exe" /pdbtype:sept
# Begin Special Build Tool
SOURCE="$(InputPath)"
PostBuild_Desc=Copy test files
PostBuild_Cmds=copy ..\src\testdata\*.* .
# End Special Build Tool
!ENDIF
# Begin Target
# Name "rpctest - Win32 Release"
# Name "rpctest - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\src\test\cgi.c
# End Source File
# Begin Source File
SOURCE=..\src\test\client.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\conf.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\conn.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\data.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\file.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\http.c
# End Source File
# Begin Source File
SOURCE=..\src\test\parse_xml.c
# End Source File
# Begin Source File
SOURCE=..\src\test\serialize.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\server.c
# End Source File
# Begin Source File
SOURCE=..\src\test\server_abyss.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\socket.c
# End Source File
# Begin Source File
SOURCE=..\src\test\test.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\thread.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\token.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\token.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\trace.c
# End Source File
# Begin Source File
SOURCE=..\src\test\value.c
# End Source File
# Begin Source File
SOURCE=..\src\test\xml_data.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_server_abyss.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\src\test\client.h
# End Source File
# Begin Source File
SOURCE=..\src\test\parse_xml.h
# End Source File
# Begin Source File
SOURCE=..\src\test\serialize.h
# End Source File
# Begin Source File
SOURCE=..\src\test\server_abyss.h
# End Source File
# Begin Source File
SOURCE=..\src\test\test.h
# End Source File
# Begin Source File
SOURCE=..\src\test\value.h
# End Source File
# Begin Source File
SOURCE=..\src\test\xml_data.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# Begin Group "TestFiles"
# PROP Default_Filter ""
# Begin Source File
SOURCE="..\src\testdata\http-req-simple.txt"
# End Source File
# Begin Source File
SOURCE=..\src\testdata\req_no_params.xml
# End Source File
# Begin Source File
SOURCE=..\src\testdata\req_out_of_order.xml
# End Source File
# Begin Source File
SOURCE=..\src\testdata\req_value_name.xml
# End Source File
# End Group
# End Target
# End Project

View File

@ -0,0 +1,26 @@
#define MUST_BUILD_WININET_CLIENT 1
#define MUST_BUILD_CURL_CLIENT 0
#define MUST_BUILD_LIBWWW_CLIENT 0
static const char * const XMLRPC_DEFAULT_TRANSPORT = "wininet";
/*
Set to zero if you do not wish to build the http.sys
based XMLRPC-C Server
*/
#define MUST_BUILD_HTTP_SYS_SERVER 1
/*
We use pragma statements to tell the linker what we need to link with.
Since Curl requires Winsock, Winmm, and libcurl, and no other
project does, if we are building curl support we tell the linker
what libs we need to add.
*/
#if MUST_BUILD_CURL_CLIENT > 0
#ifdef _DEBUG
#pragma comment( lib, "../lib/libcurld.lib" )
#else
#pragma comment( lib, "../lib/libcurl.lib" )
#endif
#pragma comment( lib, "Winmm.lib" )
#pragma comment( lib, "Ws2_32.lib" )
#endif

View File

@ -0,0 +1,258 @@
# Microsoft Developer Studio Project File - Name="xmlrpc" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=xmlrpc - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "xmlrpc.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "xmlrpc.mak" CFG="xmlrpc - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "xmlrpc - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "xmlrpc - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "xmlrpc"
# PROP Scc_LocalPath ".."
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "xmlrpc - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release\xmlrpc"
# PROP Intermediate_Dir "Release\xmlrpc"
# PROP Target_Dir ""
MTL=midl.exe
LINK32=link.exe -lib
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../lib/" /I "../lib/curl_transport" /I "../lib/util/include" /I "../include" /I "../" /I "../lib/expat/xmlparse" /I "../lib/w3c-libwww-5.3.2/Library/src" /I "../lib/abyss/src" /I "../lib/wininet_transport" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /FR /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"..\lib\xmlrpc.lib"
!ELSEIF "$(CFG)" == "xmlrpc - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug\xmlrpc"
# PROP Intermediate_Dir "Debug\xmlrpc"
# PROP Target_Dir ""
MTL=midl.exe
LINK32=link.exe -lib
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../lib/" /I "../lib/curl_transport" /I "../lib/util/include" /I "../include" /I "../" /I "../lib/expat/xmlparse" /I "../lib/w3c-libwww-5.3.2/Library/src" /I "../lib/abyss/src" /I "../lib/wininet_transport" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"..\lib\xmlrpcD.lib"
!ENDIF
# Begin Target
# Name "xmlrpc - Win32 Release"
# Name "xmlrpc - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;cc"
# Begin Source File
SOURCE=..\lib\util\casprintf.c
# End Source File
# Begin Source File
SOURCE=..\lib\util\pthreadx_win32.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_array.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_authcookie.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_base64.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_builddecomp.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_client.c
# End Source File
# Begin Source File
SOURCE=..\lib\curl_transport\xmlrpc_curl_transport.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_data.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_datetime.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_expat.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_libxml2.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_parse.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_registry.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_serialize.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_server_abyss.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_server_w32httpsys.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_struct.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_strutil.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_support.c
# End Source File
# Begin Source File
SOURCE=..\src\xmlrpc_utf8.c
# End Source File
# Begin Source File
SOURCE=..\lib\wininet_transport\xmlrpc_wininet_transport.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE="..\include\xmlrpc-c\abyss.h"
# End Source File
# Begin Source File
SOURCE="..\include\xmlrpc-c\base.h"
# End Source File
# Begin Source File
SOURCE=..\lib\util\include\bool.h
# End Source File
# Begin Source File
SOURCE="..\include\xmlrpc-c\client.h"
# End Source File
# Begin Source File
SOURCE="..\include\xmlrpc-c\client_int.h"
# End Source File
# Begin Source File
SOURCE=..\lib\util\include\mallocvar.h
# End Source File
# Begin Source File
SOURCE=..\lib\util\include\pthreadx.h
# End Source File
# Begin Source File
SOURCE="..\include\xmlrpc-c\server.h"
# End Source File
# Begin Source File
SOURCE="..\include\xmlrpc-c\server_abyss.h"
# End Source File
# Begin Source File
SOURCE="..\include\xmlrpc-c\server_cgi.h"
# End Source File
# Begin Source File
SOURCE="..\include\xmlrpc-c\server_w32httpsys.h"
# End Source File
# Begin Source File
SOURCE="..\include\xmlrpc-c\transport.h"
# End Source File
# Begin Source File
SOURCE=..\transport_config.h
# End Source File
# Begin Source File
SOURCE="..\include\xmlrpc-c\transport_int.h"
# End Source File
# Begin Source File
SOURCE="..\include\xmlrpc-c\xmlparser.h"
# End Source File
# Begin Source File
SOURCE=..\xmlrpc_config.h
# End Source File
# Begin Source File
SOURCE=..\lib\curl_transport\xmlrpc_curl_transport.h
# End Source File
# Begin Source File
SOURCE=..\lib\wininet_transport\xmlrpc_wininet_transport.h
# End Source File
# End Group
# End Target
# End Project

View File

@ -0,0 +1,194 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "cpptest"=".\cpptest.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name xmlrpc
End Project Dependency
}}}
###############################################################################
Project: "gennmtab"="..\lib\expat\gennmtab\gennmtab.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "query_meerkat"=".\query_meerkat.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name xmlrpc
End Project Dependency
}}}
###############################################################################
Project: "rpctest"=".\rpctest.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name xmlrpc
End Project Dependency
}}}
###############################################################################
Project: "xmlparse"="..\lib\expat\xmlparse\xmlparse.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name xmltok
End Project Dependency
}}}
###############################################################################
Project: "xmlrpc"=".\xmlrpc.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name xmlparse
End Project Dependency
}}}
###############################################################################
Project: "xmlrpc_sample_add_asynch_client"=".\xmlrpc_sample_add_asynch_client.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name xmlrpc
End Project Dependency
}}}
###############################################################################
Project: "xmlrpc_sample_add_server"=".\xmlrpc_sample_add_server.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name xmlrpc
End Project Dependency
}}}
###############################################################################
Project: "xmlrpc_sample_add_server_w32httpsys"=".\xmlrpc_sample_add_server_w32httpsys.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name xmlrpc
End Project Dependency
}}}
###############################################################################
Project: "xmlrpc_sample_add_sync_client"=".\xmlrpc_sample_add_sync_client.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name xmlrpc
End Project Dependency
}}}
###############################################################################
Project: "xmlrpc_sample_auth_client"=".\xmlrpc_sample_auth_client.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name xmlrpc
End Project Dependency
}}}
###############################################################################
Project: "xmltok"="..\lib\expat\xmltok\xmltok.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name gennmtab
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>