====================================================================== Requirements ====================================================================== Windows version --------------- Ice has been extensively tested with Windows XP, Windows 2000 and Windows 98 SE. Ice is also expected to work on Windows 98, Windows ME, Windows NT 3.51, Windows NT 4.0 and Windows Server 2003. Ice binary distributions for Visual C++ .NET 2002 and 2003 are also available from http://www.zeroc.com/download.html. These binary distributions require Windows NT 4.0, Windows 2000, Windows XP or Windows Server 2003. C++ compiler ------------ The following Microsoft Visual C++ compilers are supported: - Visual C++ 6.0 SP5 with STLport 4.5 (or later) - Visual C++ .NET 2002 (aka VC 7.0) - Visual C++ .NET 2003 (aka VC 7.1) The STL (Standard Template Library) that is included with Visual C++ 6.0 is not supported! You must use STLport 4.5 (or later) with Visual C++ 6.0. You can download STLport from: http://www.stlport.org/download.html For STLport installation instructions, please see: http://www.stlport.org/doc/install.html For Visual C++ .NET 2002 and 2003, you can use the included STL library. Downloading and installing STLport is not required for these compiler versions. Third-party libraries --------------------- - Berkeley DB 4.2.52 - expat 1.9x - OpenSSL 0.96 or 0.97 - bzip2 1.0 You must install all these packages before proceeding with the installation of Ice. If you are using Visual C++ .NET 2002 or 2003 you can download an installer for all these Ice dependencies from http://www.zeroc.com/download.html. You can download Berkeley DB from: http://www.sleepycat.com/download And expat from: http://sourceforge.net/projects/expat/ And OpenSSL from: http://www.openssl.org And bzip2 from: http://sources.redhat.com/bzip2 Note: For a regular build of bzip2, both the debug and the release library are named "libbz2.lib". In order to be able to have both a debug and a release version on your system, please rename the debug library to "libbz2d.lib". This is also what the Ice project files expect if you build a debug version of Ice. We recommend that you use the same Visual C++ version to build all of the third party libraries. If you are using STLPort, you must configure Visual Studio 6.0 to use STLPort before building Berkeley DB: - In the Visual C++ 6.0 IDE, choose Tools->Options->Directories - Select "Include files". - Add the include directory for STLport first in the list. (Note that you must add the include\stlport directory, not just "include".) - Select "Library files". - Add the lib directory for STLport. Python 2.3 ---------- To run the automated test suite, you will need Python 2.3. If you have no interest in running the test scripts, Python is not required. You can download a Python distribution for Windows from: http://www.activestate.com Important note for Windows 98, Windows 98 SE and Windows ME: unfortunately the Windows 9x shell is too limited to run the Ice test suite. For these versions of Windows, you need Cygwin and the python interpreter that comes with Cygwin in order to run the test suite. Cygwin can be downloaded from: http://www.cygwin.com ====================================================================== Compilation and Testing ====================================================================== Using your favorite Zip tool, unzip the Ice archive anywhere you like. Then start the Microsoft Visual C++ IDE. First, you must make sure that your compiler finds all the required third-party packages (include files, libraries, and DLLs): - In the IDE, choose: * Visual C++ 6.0: Tools->Options->Directories * Visual C++ .NET: Tools->Options->Projects->VC++ Directories - Select "Include files". - Add the include directories for Berkeley DB, expat, OpenSSL, and bzip2. If you used the binary installer for expat, then the proper include directory is C:\Expat-1.95.6\Source\lib. - Select "Library files". - Add the library directories for Berkeley DB, expat, OpenSSL, bzip2. If you used the binary installer for expat, then the proper library directory is C:\Expat-1.95.6\Libs. - Select "Executable files". - Add the directories which contain DLLs for Berkeley DB, expat, OpenSSL and bzip2, and STLport (if required). Now you're ready to compile Ice. Open the "all.dsw" workspace. If you are using Visual C++ .NET, then the project files will first be converted from Visual C++ 6.0 to .NET format. Set your active project to either "all" or "minimal". "all" will compile everything including tests and demos. "minimal" will not compile tests and demos. To set your active project with Visual C++ 6.0, use Project->Set Active Project. For Visual C++ .NET, click on "all" or "minimal" in the class view, then use Project->Set as StartUp Project. To start the compilation, use Build->Build for Visual C++ 6.0, or Build->Build all/minimal for Visual C++ .NET, respectively. If you built the tests with "all", you can run the test suite, provided that you have installed Python. Open a command prompt, and change to the directory Ice-. At the command prompt, execute: python allTests.py If everything worked out, you should see lots of "ok". In case of a failure, the tests abort with "failed". If you want to try out any of the demos, make sure to add the "bin" directory, which contains DLLs and executables, to your PATH. ====================================================================== Windows 98, Windows 98 SE, Windows ME, Windows NT 3.51 ====================================================================== By default, IceUtil::Mutex and related classes are implemented using Windows' CriticalSection, and in particular they use the function TryEnterCriticalSection. This function is either not present or implemented as a "no-op" call on Windows 98, Windows 98 SE, Windows ME and Windows NT 3.51, so default Ice builds cannot be used on these versions of Windows. IceUtil::Mutex and related classes can also use "heavier" mutex objects that allow Ice to work on all Windows versions (>= 98). If you wish to build Ice in this configuration, you must first edit the file %ICE_HOME%\include\IceUtil\Config.h and remove the following lines: # ifndef _WIN32_WINNT // // Necessary for TryEnterCriticalSection. // # define _WIN32_WINNT 0x0400 # endif On Windows 98, Windows 98 SE and Windows ME, we also recommend to increase the number of connections supported by TCP/IP (to 500 for example). See MaxConnections at http://support.microsoft.com/default.aspx?scid=kb;EN-US;158474 ====================================================================== Installation ====================================================================== Installation instructions for Visual Studio .NET 2002 and 2003 are provided in Ice-\install\vc70\README and Ice-\vc71\README. No automatic installation support is provided for Visual C++ 6.0: you need to copy the contents of the bin, include, and lib directories by hand. The include directory contains all Ice include files, the lib directory all Ice libraries, and the bin directory all Ice executables and DLLs. After installation, make sure to add the include directory to the Visual C++ "Include files", the lib directory to the "Library files", and the bin directory to the "Executable files". (Visual C++ 6.0: Choose Tools->Options->Directories. Visual C++ .NET: Choose Tools->Options->Projects->VC++ Directories.)