git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8545 d0543943-73ff-0310-b7d9-9358b9ac24b2
v1.2.stable
Michael Jerris 2008-05-23 20:56:24 +00:00
parent d2290cfa3a
commit 00654d880e
338 changed files with 55725 additions and 19400 deletions

View File

@ -1,80 +1,151 @@
ifeq ($(SRCDIR)x,x)
SRCDIR = $(CURDIR)
endif
SUBDIR = .
BUILDDIR = $(SRCDIR)
VPATH = .:$(SRCDIR)
include Makefile.srcdir
include $(SRCDIR)/Makefile.config
BLDDIR = $(CURDIR)
SUBDIR =
SUBDIRS = include src lib tools
export SRCDIR
export BLDDIR
include $(BLDDIR)/Makefile.version
include $(BLDDIR)/config.mk
SUBDIRS = include lib src tools examples
# The reason we don't build tools and examples by default is that they
# contain executables, which require significantly more from the
# environment to build than libraries. Ergo, they are signficantly
# more likely to fail to build. Indeed, when 'tools' was built by
# default, the majority of the reported build problems were with that.
# Since they are ancillary to the package, building them by default is
# not worth causing the whole build to fail.
# As with any subdirectory, to build 'tools' or 'examples', cd to the
# subdirectory and make there.
DEFAULT_SUBDIRS = include lib src
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
default: xmlrpc-c-config xmlrpc-c-config.test $(DEFAULT_SUBDIRS:%=%/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
# The examples subdirectory is special, because even the make file in there
# is designed to be an example. So it has to be simple and as close as
# possible to something a person could use outside of the Xmlrpc-c source
# tree. One ramification of that is that it does not specify dependencies
# on other parts of the Xmlrpc-c build. That means we must separately
# ensure that the Xmlrpc-c libraries are built before making the example
# programs.
#
# It also means that you have to manually clean the examples directory
# in order to get the examples rebuilt after you modify the Xmlrpc-c
# libraries.
examples/all: xmlrpc-c-config.test lib/all src/all include/all
# Parallel make (make --jobs) is not smart enough to coordinate builds
# between submakes, so a naive parallel make would cause certain
# targets to get built multiple times simultaneously. That is usually
# unacceptable. So we introduce extra dependencies here just to make
# sure such targets are already up to date before the submake starts,
# for the benefit of parallel make. Note that we ensure that parallel
# make works for 'make all' in the top directory, but it may still fail
# for the aforementioned reason for other invocations.
tools/all: include/all lib/all src/all
src/all lib/all: include/all
src/all: lib/all
MAJOR := $(XMLRPC_MAJOR_RELEASE)
MINOR := $(XMLRPC_MINOR_RELEASE)
POINT := $(XMLRPC_POINT_RELEASE)
version.h: $(SRCDIR)/Makefile.version
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
echo "/* Generated by make file rule */" >>$@
echo "#define XMLRPC_C_VERSION" \
\"Xmlrpc-c $(MAJOR).$(MINOR).$(POINT)"\"" >>$@
echo "#define XMLRPC_VERSION_MAJOR $(MAJOR)" >>$@
echo "#define XMLRPC_VERSION_MINOR $(MINOR)" >>$@
echo "#define XMLRPC_VERSION_POINT $(POINT)" >>$@
# We don't want common.mk's rule for version.h
OMIT_VERSION_H = Y
# We don't want common.mk's rule for transport_config.h
OMIT_TRANSPORT_CONFIG_H = Y
include transport_config.make
# shell_config is a fragment to place inside a Bourne shell program that
# sets variables that tell how the build is configured.
shell_config: $(BLDDIR)/config.mk
rm -f $@
@echo "Lots of echoes to '$@' suppressed here ..."
@echo '#' >>$@
@echo '#######################################################' >>$@
@echo "# From '$@'" >>$@
@echo '#######################################################' >>$@
@echo 'ENABLE_ABYSS_THREADS="$(ENABLE_ABYSS_THREADS)"' >>$@
@echo 'ENABLE_LIBXML2_BACKEND="$(ENABLE_LIBXML2_BACKEND)"' >>$@
@echo 'MUST_BUILD_WININET_CLIENT="$(MUST_BUILD_WININET_CLIENT)"'>>$@
@echo 'MUST_BUILD_CURL_CLIENT="$(MUST_BUILD_CURL_CLIENT)"' >>$@
@echo 'MUST_BUILD_LIBWWW_CLIENT="$(MUST_BUILD_LIBWWW_CLIENT)"' >>$@
@echo 'NEED_RPATH="$(NEED_RPATH)"' >>$@
@echo 'NEED_WL_RPATH="$(NEED_WL)RPATH)"' >>$@
@echo 'LSOCKET="$(LSOCKET)"' >>$@
@echo 'WININET_LDADD="$(WININET_LDADD)"' >>$@
@echo 'WININET_RPATH="$(WININET_RPATH)"' >>$@
@echo 'WININET_WL_RPATH="$(WININET_WL_RPATH)"' >>$@
@echo 'CURL_LDADD="$(CURL_LDADD)"' >>$@
@echo 'CURL_RPATH="$(CURL_RPATH)"' >>$@
@echo 'CURL_WL_RPATH="$(CURL_WL_RPATH)"' >>$@
@echo 'LIBWWW_LDADD="$(LIBWWW_LDADD)"' >>$@
@echo 'LIBWWW_RPATH="$(LIBWWW_RPATH)"' >>$@
@echo 'LIBWWW_WL_RPATH="$(LIBWWW_WL_RPATH)"' >>$@
@echo 'XMLRPC_MAJOR_RELEASE="$(XMLRPC_MAJOR_RELEASE)"' >>$@
@echo 'XMLRPC_MINOR_RELEASE="$(XMLRPC_MINOR_RELEASE)"' >>$@
@echo 'XMLRPC_POINT_RELEASE="$(XMLRPC_POINT_RELEASE)"' >>$@
@echo 'FEATURE_LIST="$(FEATURE_LIST)"' >>$@
@echo 'PREFIX="$(PREFIX)"' >>$@
@echo 'HEADERINST_DIR="$(HEADERINST_DIR)"' >>$@
@echo 'LIBINST_DIR="$(LIBINST_DIR)"' >>$@
@echo 'BLDDIR="$(BLDDIR)"' >>$@
@echo 'ABS_SRCDIR="$(ABS_SRCDIR)"' >>$@
@echo '#######################################################' >>$@
# We don't want config.mk's xmlrpc-c-config.test rule:
OMIT_XMLRPC_C_CONFIG_TEST = Y
xmlrpc-c-config xmlrpc-c-config.test:%: %.main shell_config
rm -f $@
@echo "Echoes to '$@' suppressed here ..."
@echo '#! /bin/sh' >>$@
@echo '#' >>$@
@echo '# This file was generated by a make rule' >>$@
@echo '#' >>$@
cat shell_config >>$@
cat $< >>$@
chmod a+rx $@
.PHONY: clean clean-local
clean: $(SUBDIRS:%=%/clean) clean-common clean-local
clean-local:
rm -f transport_config.h
rm -f transport_config.h version.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
rm -f config.log config.status config.mk Makefile.srcdir
rm -f xmlrpc_config.h xmlrpc_amconfig.h stamp-h
rm -f shell_config xmlrpc-c-config xmlrpc-c-config.test
rm -f TAGS
.PHONY: tags
tags: $(SUBDIRS:%=%/tags) TAGS
check: $(SUBDIRS:%=%/check)
DISTFILES =
@ -82,29 +153,31 @@ DISTFILES =
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 ;\
install: $(DEFAULT_SUBDIRS:%=%/install) install-common
.PHONY: dep
dep: $(SUBDIRS:%=%/dep)
dep: version.h $(BLDDIR)/include/xmlrpc-c/config.h $(SUBDIRS:%=%/dep)
xmlrpc-c-config xmlrpc-c-config.test xmlrpc_config.h xmlrpc_amconfig.h \
xmlrpc_config.h xmlrpc_amconfig.h \
:%:%.in $(SRCDIR)/configure
$(SRCDIR)/configure
include $(SRCDIR)/Makefile.common
include $(SRCDIR)/common.mk
# A trick to catch a common user error. When you don't run 'configure',
# you don't have a Makefile.srcdir, which means $(SRCDIR) is null.
/common.mk:
@echo =======================================
@echo = You must run Configure before Make. =
@echo =======================================
false
# 'tags' generates/updates an Emacs tags file, anmed TAGS, in the current
# directory. Use with Emacs command 'find-tag'.
.PHONY: tags
tags:
find . -name "*.c" -o -name "*.h" -o -name "*.cpp" -o -name "*.hpp" | \
etags -

View File

@ -7,8 +7,11 @@
# GNU Make uses a make file named "GNUmakefile" in preference to "Makefile"
# if it exists. This package contains a "GNUmakefile".
default: all
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
false

View File

@ -0,0 +1 @@
SRCDIR=@abs_srcdir@

View File

@ -0,0 +1,11 @@
###############################################################################
# This is not only a make file inclusion, but a source file for the program
# 'mkvers' in the Windows build system. The latter is very particular about
# the format of this file. Do not change white space, add comment lines, or
# anything!
#
#
###############################################################################
XMLRPC_MAJOR_RELEASE = 1
XMLRPC_MINOR_RELEASE = 14
XMLRPC_POINT_RELEASE = 99

View File

@ -36,51 +36,17 @@ 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:
BUILDING, INSTALLING
--------------------
See the file doc/INSTALL.
In the simplest case, it's just a conventional
$ ./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
----------------------

View File

@ -0,0 +1,48 @@
@echo This batch file requires a powerful XDELETE program. One
@echo that will REMOVE whole directories recursively ...
@echo If you do NOT have such a program, then abort now, and
@echo adjust the line below ...
@set TEMPX=xdelete -dfrm
@echo set TEMPX=%TEMPX%
@pause
@echo #####################################################
@echo ARE YOU SURE YOU WANT TO DO THIS? Ctrl+C to abort ...
@echo #####################################################
@pause
@echo CleanAll: Last chance ... ctrl+c to abort ...
@pause
@echo CleanAll: Cleaning the headers ...
call CleanWin32
@echo CleanAll: and removing the SOLUTION files ...
call delsln
@echo CleanAll: Cleaning the gennmtab generated header ...
@if EXIST ..\lib\expat\xmltok\nametab.h del ..\lib\expat\xmltok\nametab.h > nul
@echo CleanAll: Cleaning all built binaries ...
@if EXIST ..\bin\*.exe del ..\bin\*.exe > nul
@if EXIST ..\bin\*.exp del ..\bin\*.exp > nul
@if EXIST ..\bin\*.ilk del ..\bin\*.ilk > nul
@if EXIST ..\bin\*.lib del ..\bin\*.lib > nul
@if EXIST ..\lib\*.lib del ..\lib\*.lib > nul
@if EXIST ..\lib\*.dll del ..\lib\*.dll > nul
@echo CleanAll: Cleaning test data files ...
@if EXIST ..\bin\data\*.xml del ..\bin\data\*.xml > nul
@if EXIST ..\bin\data\. rd ..\bin\data > nul
@if EXIST ..\bin\. rd ..\bin > nul
@echo CleanAll: Cleaning old residual built binaries ... but none should exist ...
@if EXIST ..\lib\expat\gennmtab\Debug\. %TEMPX% ..\lib\expat\gennmtab\Debug
@if EXIST ..\lib\expat\gennmtab\Release\. %TEMPX% ..\lib\expat\gennmtab\Release
@if EXIST ..\lib\expat\xmlparse\Debug\. %TEMPX% ..\lib\expat\xmlparse\Debug
@if EXIST ..\lib\expat\xmlparse\DebugDLL\. %TEMPX% ..\lib\expat\xmlparse\DebugDLL
@if EXIST ..\lib\expat\xmlparse\Release\. %TEMPX% ..\lib\expat\xmlparse\Release
@if EXIST ..\lib\expat\xmlparse\ReleaseDLL\. %TEMPX% ..\lib\expat\xmlparse\ReleaseDLL
@if EXIST ..\lib\expat\xmlparse\ReleaseMinSizeDLL\. %TEMPX% ..\lib\expat\xmlparse\ReleaseMinSizeDLL
@if EXIST ..\lib\expat\xmltok\Debug\. %TEMPX% ..\lib\expat\xmltok\Debug
@if EXIST ..\lib\expat\xmltok\DebugDLL\. %TEMPX% ..\lib\expat\xmltok\DebugDLL
@if EXIST ..\lib\expat\xmltok\Release\. %TEMPX% ..\lib\expat\xmltok\Release
@if EXIST ..\lib\expat\xmltok\ReleaseDLL\. %TEMPX% ..\lib\expat\xmltok\ReleaseDLL
@echo CleanAll: Finally, cleaning the main intermediate directories ...
@if EXIST Debug\. %TEMPX% Debug
@if EXIST Release\. %TEMPX% Release
@echo .
@echo CleanAll: Phew ... all done ...
@echo .

View File

@ -0,0 +1,43 @@
@echo Windows build
@echo This batch file deletes the copied header files,
@echo Deleting Win32 header files...
@echo #####################################################
@echo IF YOU HAVE MADE CHANGES IN ..\xmlrpc_config.h, ..\include\xmlrpc-c\config.h etc ...
@echo THESE CHANGES WILL BE LOST!
@echo You should run diffcfg.bat first to check for changes,
@echo and updcfg.bat if you have made changes ...
@echo #####################################################
@echo ARE YOU SURE YOU WANT TO DO THIS? Ctrl+C to abort ...
@echo #####################################################
@pause
@set TEMP1=
@if NOT EXIST ..\include\xmlrpc-c\config.h goto DN1
del ..\include\xmlrpc-c\config.h > nul
@set TEMP1=%TEMP1% ..\include\xmlrpc-c\config.h
:DN1
@if NOT EXIST ..\xmlrpc_config.h goto DN2
del ..\xmlrpc_config.h > nul
@set TEMP1=%TEMP1% ..\xmlrpc_config.h
:DN2
@if NOT EXIST ..\transport_config.h goto DN3
del ..\transport_config.h > nul
@set TEMP1=%TEMP1% ..\transport_config.h
:DN3
@if NOT EXIST ..\version.h goto DN4
del ..\version.h > nul
@set TEMP1=%TEMP1% ..\version.h
:DN4
@if NOT EXIST ..\examples\config.h goto DN5
del ..\examples\config.h > nul
@set TEMP1=%TEMP1% ..\examples\config.h
:DN5
@if "%TEMP1%." == "." goto ALLDN
@echo DELETED win32 header files.
@echo %TEMP1%
@goto END
:ALLDN
@echo NOne to DELETE ...
@goto END
:END

View File

@ -1,7 +1,35 @@
@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
@REM Windows build
@REM This must be RUN once to establish some header files,
@REM that are generated by the automake process
@echo creating Win32 header files...once only
@set TEMPV=
@if EXIST ..\include\xmlrpc-c\config.h goto DN1
copy .\win32_config.h ..\include\xmlrpc-c\config.h > nul
@set TEMPV=%TEMPV% ..\include\xmlrpc-c\config.h
:DN1
@if EXIST ..\xmlrpc_config.h goto DN2
copy .\xmlrpc_win32_config.h ..\xmlrpc_config.h > nul
@set TEMPV=%TEMPV% ..\xmlrpc_config.h
:DN2
@if EXIST ..\transport_config.h goto DN3
copy .\transport_config_win32.h ..\transport_config.h > nul
@set TEMPV=%TEMPV% ..\transport_config.h
:DN3
@if EXIST ..\version.h goto DN4
call mkvers
@set TEMPV=%TEMPV% ..\version.h
:DN4
@if EXIST ..\examples\config.h goto DN5
copy .\xmlrpc_win32_config.h ..\examples\config.h > nul
@set TEMPV=%TEMPV% ..\examples\config.h
:DN5
@if "%TEMPV%." == "." goto ALLDN
@echo Generated the following win32 header files ...
@echo %TEMPV%
@goto END
:ALLDN
@echo Using previous copies ... Use CleanWin32.bat to remove, and do again ...
@goto END
:END

View File

@ -0,0 +1,125 @@
Current information is in ReadMeWin32.txt.
What follows is previous contents of that file.
Markus Hoffrogge:
Compilation for WIN32 is possible now again for version 1.6.10 - non
CPP parts only. Project files have been tested under VicualStudio
6.0. Build project all - this will build all other projects. CPP
code is not compiled and adopted right now.
This release excludes the option to compile an "http.sys" version of
an XML-RPC server. If you do wish to build in the http.sys server, set
the MUST_BUILD_HTTP_SYS_SERVER to 1 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

@ -1,116 +1,64 @@
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.
Build Instructions For XML-RPC For C/C++ On Windows
---------------------------------------------------
Latest Windows work was done by
Geoff McLane
19 October, 2007
home: http://geoffair.net
1. Run the batch file ConfigureWin32.bat, found in the Windows
directory. This will copy four(4) headers to the appropriate folders.
2. Load xmlrpc.dsw in MSVC[7,8] or later, and build the Release or Debug
configurations. DLL configurations are not included, and may not compile.
This build requires that you have a Microsoft SDK, or Plaform SDK
installed, since among other things, it uses <http.h>, and
HTTPAPI.LIB, from the SDK.
Once built, the rpctest.exe, in the bin folder, should run with no errors,
and the xmlrpc_sample_add_server.exe, using port 8080, and
xmlrpc_sample_add_sync_client.exe should communicate ... proving 7+5 = 12 ;=))
Have fun.
PS: Several other batch files are included in the Windows folder ...
delsln.bat - to delete all the MSVC7 and 8 solution file.
diffcfg.bat - compare the headers in windows with the version used in
the compile. Requires diff.exe to be in the path.
updcfg.bat - copy the 3 manually maintained configuration files back
to the Windows folder (for distribution).
cleawin32.bat - deletes the headers used in the compile. That is does the
opposite of ConfigureWin32.bat.
cleanall.bat - to remove ALL the binary files created. Requires an xdelete
program which will recursively delete an entire folder.
There is some historical information in ReadMeOld.txt, which used to be
the contents of this file. Some of it is still valid.
Developing XML-RPC For C/C++ for Windows
----------------------------------------
If you fix or enhance something in the Windows build system, please send
your updates to the Xmlrpc-c maintainer to be included in future releases
so others don't have to repeat your work.
Output of a Subversion 'diff' is usually the best way to send updates,
but you can also send complete files or just a description of the
change if that is easier.
For the project files, we distribute only MSVC6-compatible DSP and DSW
files (which are, of course, usable as input to later versions of MSVC
as well). That means if you need to modify something in the project
files and you are not using MSVC6, you must edit the project files
manually as text files. Modifying them via the IDE would simply
generate new files in a format that cannot be used with older MSVC.

View File

@ -1,64 +1,128 @@
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.
Background:
Lets say you need to have 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 client XML transport mechanism.
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 xmlrpc-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.
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 compression capability. In the command prompt, navigate to the
curl\lib directory and execute the following commands:
nmake -f Makefile.vc6 CFG=debug RTLIBCFG=static
nmake -f Makefile.vc6 CFG=release RTLIBCFG=static
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.
USING MSVC8 - 2007/11/25
========================
This is for MSVC8, but most will apply to all version of Microsoft
Visual Studio.
Download the CURL source. Run the buildconf.bat to generate some
additional files. This builds a 'dummy' hugehelp.c, but it can also
be built using the src\mkhelp.pl Perl script. You may have to build
you own VCPROJ file for CURL, if you want to use MSVC. It does
provide a Makefile.vc6 as mentioned above.
To build all the CURL library variations, use
> nmake /nologo vc-all
but note this will use the /MD[d] DLL runtime. Only by adding
RTCFGLIB=static to each of the makefile commands will /MT[d] be
used.
Essentially, for building the static Debug or Release CURL libraries,
it is all the sources in the curl\lib folder. Make sure you choose /MT
and /MTd for the runtime, and build both using say the name libcurl.lib.
When you have Debug\libcurl.lib and Release\libcurl.lib built, you
are ready to build and link them with Xmlrpc-c.
After running xmlrpc-c\Windows\configurewin32.bat, loading xmlrpc.dsw
will convert all the projects to VCPROJ files. In the File View, in
the xmlrpc project, in the properties of xmlrpc_curl_transport.c,
change 'Exclude file from build' from 'yes' to 'no', for Debug
and Release.
In the 'Header Files' section, open the "transport_config.h" file,
and change MUST_BUILD_CURL_CLIENT to 1, and the XMLRPC_DEFAULT_TRANSPORT
to "curl", if desired.
As usual, for each of the 'client' projects, and rpctest, in the properties,
Linker section, you can add the library libcurl.lib on the Input tab, and
the relative path to the library in the General tab to something like -
..\..\curl\Debug and ..\..\curl\Release, or where ever you built or
copied these static libraries too.
Or you can adjust the Windows/curlink.h, to directly point to your
respective Debug and Release static CURL libraries, either where you
built them, or where you copied them too.
Now, Xmlrpc-c should build using the CURL transport.
Note, for the final linking, all RUNTIME libraries MUST be the SAME.
A mixture of /MD and /MT will give big linkage problems. Any one project
built with the alterate RUNTIME will show many items defined more than
once. And of course, you can also NOT mix Debug with Release. That is
/MDd with /MD, nor /MTd with /MT, or else there will be unresolved
debug items.
EOF

View File

@ -0,0 +1,51 @@
Using xmlrpc_cpp_proxy.dsp
While not included in the main xmlrpc.dsw file, this
xmlrpc_cpp_proxy.dsp, if added as a project to the xmlrpc solution,
will build bin\xmlrpc_cpp_proxy.exe and xmlrpc_cpp_proxyD.exe, for
testing using the default WinINET transport.
After you have loaded the xmlrpc_cpp_proxy.dsp, which adds an
xmlrpc_cpp_proxy project, it is necessary to ADD a dependance on
the xmlrpc library, to complete the link.
To do this in say MSVC8, select the xmlrpc_cpp_proxy project, and right
mouse click, and in the context menu, select 'Project Dependancies...'.
And in the Project Dependancies dialog, check the xmlrpc proejct,
then [Ok] ...
To test your xmlrpc_cpp_proxy[D].exe -
1. In a console start the server, like -
bin/xmlrpc_sample_add_serverD 8080
Note, since this server opens a socket, you may have to enable it on some
anti-virus software that detects the socket being established, and
'Unblock' it in the Windows Security Alert system dialog that appears.
You can later remove this program from the Firewall exceptions, through
Control Panel -> Windows Firewall, selecting the 'Exceptions' tab, where
you can also disable this 'blocking' notification, but not recommended.
The server should start, and report -
Running XML-RPC server...
2. In another console run the cpp proxy client, with say -
bin>xmlrpc_cpp_proxyD http://localhost:8080/RPC2 null null
The client should connect to the server, and output a 'null' header,
and implementation file. If this functions, for a bigger example, try -
bin>xmlrpc_cpp_proxyD http://localhost:8080/RPC2 system systemProxy
and you should see a better example of a class header, and the
implementation code ...
20 December, 2007
EOF

View File

@ -0,0 +1,252 @@
# Microsoft Developer Studio Project File - Name="abyss" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=abyss - 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 "abyss.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 "abyss.mak" CFG="abyss - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "abyss - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "abyss - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "abyss - 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\Abyss"
# PROP Intermediate_Dir "Release\Abyss"
# 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 "..\\" /I "..\include" /I "..\lib\util\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "_THREAD" /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\abyss.lib"
!ELSEIF "$(CFG)" == "abyss - 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\abyss"
# PROP Intermediate_Dir "Debug\abyss"
# 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 /MTd /W3 /Gm /GX /ZI /Od /I "..\\" /I "..\include" /I "..\lib\util\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "_THREAD" /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\abyssD.lib"
!ENDIF
# Begin Target
# Name "abyss - Win32 Release"
# Name "abyss - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\lib\abyss\src\channel.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\chanswitch.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\date.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\file.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\handler.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\http.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\init.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\response.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\server.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\session.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\socket.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\socket_openssl.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\socket_unix.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\socket_win.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\thread_fork.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\thread_pthread.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\thread_windows.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\token.c
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\trace.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\lib\abyss\src\abyss_info.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\channel.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\chanswitch.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\conn.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\data.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\date.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\file.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\handler.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\http.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\server.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\session.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\socket.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\socket_win.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\thread.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\token.h
# End Source File
# Begin Source File
SOURCE=..\lib\abyss\src\trace.h
# End Source File
# End Group
# End Target
# End Project

View File

@ -0,0 +1,97 @@
# Microsoft Developer Studio Project File - Name="configwin32" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) External Target" 0x0106
CFG=configwin32 - 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 "configwin32.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 "configwin32.mak" CFG="configwin32 - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "configwin32 - Win32 Release" (based on "Win32 (x86) External Target")
!MESSAGE "configwin32 - Win32 Debug" (based on "Win32 (x86) External Target")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
!IF "$(CFG)" == "configwin32 - 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 Cmd_Line "ConfigureWin32.bat"
# PROP BASE Rebuild_Opt ""
# PROP BASE Target_File "../config.h"
# PROP BASE Bsc_Name ""
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Cmd_Line "ConfigureWin32.bat"
# PROP Rebuild_Opt ""
# PROP Target_File "../config.h"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "configwin32 - 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 Cmd_Line "ConfigureWin32.bat"
# PROP BASE Rebuild_Opt ""
# PROP BASE Target_File "../config.h"
# PROP BASE Bsc_Name ""
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir ""
# PROP Intermediate_Dir ""
# PROP Cmd_Line "ConfigureWin32.bat"
# PROP Rebuild_Opt ""
# PROP Target_File "../config.h"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ENDIF
# Begin Target
# Name "configwin32 - Win32 Release"
# Name "configwin32 - Win32 Debug"
!IF "$(CFG)" == "configwin32 - Win32 Release"
!ELSEIF "$(CFG)" == "configwin32 - Win32 Debug"
!ENDIF
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# 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

@ -1,102 +1,121 @@
# 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
# 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
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 "../include" /I "../lib/util/include" /I "../.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /D "_CRT_SECURE_NO_WARNINGS" /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\xmlrpccpp.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\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 /MTd /W3 /Gm /GX /ZI /Od /I "../.." /I ".." /I "../include" /I "../lib/util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /D "_CRT_SECURE_NO_WARNINGS" /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\xmlrpccppD.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\cpptestD.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\cpp\test\registry.cpp
# End Source File
# Begin Source File
SOURCE=..\src\cpp\test\server_abyss.cpp
# End Source File
# Begin Source File
SOURCE=..\src\cpp\test\server_pstream.cpp
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\src\cpp\test\test.cpp
# End Source File
# Begin Source File
SOURCE=..\src\cpp\test\testclient_dummy.cpp
# End Source File
# Begin Source File
SOURCE=..\src\cpp\test\tools.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,18 @@
/* 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, we include this file into the Curl transport source code
to tell the linker to add these libs.
Alternatively, the USER can add the libraries to LINK with as
NEEDED!
*/
#ifdef _DEBUG
#pragma comment( lib, "C:\\FG\\FGCOMXML\\curl\\build\\Debug\\Lib_curl.lib" )
#else
#pragma comment( lib, "C:\\FG\\FGCOMXML\\curl\\build\\Release\\Lib_curl.lib" )
#endif
#pragma comment( lib, "Winmm.lib" )
#pragma comment( lib, "Ws2_32.lib" )
#pragma comment( lib, "Wldap32.lib" )

View File

@ -0,0 +1,56 @@
@echo Delete the MSVC7 or MSVC8 soultion files ...
@echo *****************************************************
@echo ARE YOU SURE YOU WANT TO DO THIS? Ctrl+C to ABORT ...
@echo *****************************************************
@pause
@echo Deleting SOLUTION files ...
@if EXIST *.sln del *.sln > nul
@if EXIST *.vcproj del *.vcproj > nul
@if EXIST *.old echo Deleting *.old ...
@if EXIST *.old Del *.old > nul
@if EXIST *.bak echo Deleting *.bak ...
@if EXIST *.bak Del *.bak > nul
@if NOT EXIST temp*.* goto dntmp
@echo Delete temp*.* ...
@del temp*.* > nul
:dntmp
@if NOT EXIST *.obj goto dnobj
@echo Delete *.obj ...
@del *.obj > nul
:dnobj
@if NOT EXIST *.err goto dnerr
@echo Delete *.err ...
@del *.err > nul
:dnerr
@if NOT EXIST *.pdb goto dnpdb
@echo Delete *.pdb ...
@del *.pdb > nul
:dnpdb
@if NOT EXIST *.lst goto dnlst
@echo Delete *.lst ...
@del *.lst > nul
:dnlst
@if EXIST *.pch echo Deleting *.pch ...
@if EXIST *.pch Del *.pch > nul
@if EXIST *.ilk echo Deleting *.ilk ...
@if EXIST *.ilk Del *.ilk > nul
@if EXIST *.NCB echo Deleting *.NCB ...