BUILDING ALLMYDATA.ORG TAHOE ON WINDOWS

There are three ways to do it:

OPTION 1: ALL CYGWIN ALL THE TIME 

If you are building on Windows, then the easy way is to install cygwin
and use the cygwin version of Python and the cygwin versions of all
dependencies (which will happen naturally if you follow the main
README file -- note that you cannot use Windows-native versions of any
of the dependencies -- they all have to be the cygwin versions).  So
if you are taking this approach then you don't need to read the rest
of this README.win32 file at all.

OPTION 2: CYGWIN TOOLS TO BUILD WINDOWS-NATIVE LIBRARIES

The second-easiest way is to install cygwin and use cygwin development
tools such as bash, GNU make, gcc, etc., but install the
Windows-native version of Python and the Windows-native versions of
all of the dependencies.  If you create a distutils config file (as
per http://docs.python.org/inst/config-syntax.html ) and put "[build]"
then "compiler=mingw32" in it, then you can follow the rest of the
main README file and the dependencies will all be automatically built
(by the cygwin gcc compiler) as Windows-native libraries.  This
README.win32 file contains some extra notes about how to take this
approach.

Note that in this case, any library dependencies you install must be
built without linking against the cygwin.dll library.  You can cause
cygwin to build native libraries without linking against cygwin.dll
by passing the '-mno-cygwin' flag to the compiler.  For example, to
build cryptopp this way you can use the command
    CXX='g++ -mno-cygwin' make

Note that cryptopp's cryptest.exe tool may fail to build.  To build
that you might need to add the ISMINGW option to cryptopp's make e.g.
    CXX='g++ -mno-cygwin' make ISMINGW=1

OPTION 3: OTHER BUILD TOOLS

The third-easiest way is to use a Microsoft compiler or some other
compiler.  Our README files do not currently explain how to do that.
You are on your own for now, but please feel free to contribute a
document which explains how to build all these dependencies using your
favorite compiler.XXX MikeB: the previous paragraph is false -- please
fix it!  --Zooko


Okay, here are some notes about following "OPTION 2: CYGWIN TOOLS TO BUILD
WINDOWS-NATIVE LIBRARIES" approach:


EXTRA MANUAL DEPENDENCIES

In addition to the dependencies listed in the main README file, you
also need the following:

 + the pywin32 package (210 or later)

   http://sourceforge.net/projects/pywin32/


NOTES ABOUT BUILDING OPENSSL

In order to compile the tahoe source you need to have libeay32.dll version
0.9.8.5 and ssleay32.dll version 0.9.8.5 or newer installed. If you find that 
you have the wrong version of either of these dlls, you can download and 
compile openssl from http://openssl.org. 

You will need to have perl installed to compile openssl. One place where you 
can find a version of perl is http://www.activestate.com/products/activeperl.

If you want to compile openssl using Visual Studio, you may find adding your 
Visual Studio bin, include and lib directories to your %PATH% environment 
variable helpful. For example, if you're compiling with VS2005:

   "C:\Program Files\Microsoft Visual Studio\VC98\Bin;C:\Program Files\
   Microsoft Visual Studio 8\VC\include;C:\Program Files\Microsoft Visual 
   Studio 8\VC\PlatformSDK\Include;C:\Program Files\Microsoft Visual Studio 
   8\VC\lib;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib"
 

NOTES ABOUT INSTALLING PYOPENSSL

To install PyOpenSSL on Windows-native, download this:

http://allmydata.org/source/pyOpenSSL-0.6.win32-py2.5.exe

or for Python 2.4, this:

http://allmydata.org/source/pyOpenSSL-0.6.win32-py2.4.exe
