This directory contains special make/project files for Win32
environments.  There is files included from Common C++ that help
make this happen, and you can include these files locally or attach
symlinks as needed to make the Visual C++ project build work correctly
from cvs.  The distribution tarball will include these files already 
in their proper places, but a pure cvs checkout will not without copying 
or symlinking the additional Common C++ files.

	* msvcpp/: contains Visual C++ workspace and project files for
ccRTP. The library will be compiled as dll under the Release and Debug
directories.

	* mingw32/: Mingw32 makefile.

The principle symlinks are:

	ccrtp/w32/common/cc++ -> commoncpp2/w32/cc++
	ccrtp/w32/include/cc++ -> commoncpp2/w32/include/cc++
	ccrtp/w32/template/cc++ -> commoncpp2/w32/template
	ccrtp/w32/src -> commoncpp2/w32/src

CCRTP can automatically create these symlinks for you during configure.  
To do this, you would specify the --with-commoncpp=dir option to 
configure.  The dir you use is the full path to the "base" directory 
where Common C++ sources were unpacked.  The configure script will then
add the extra sym links needed to support a w32 build, and these extra
w32 support files will be added to your distribution tarball for you.
--without-commoncpp may also be used to clear all symlinks.

In addition, a special ccgnu2 and ccext2 .dsp file is included here that
locally builds GNU Common C++, which is then used as a dependency in the
ccrtp1 package build.

