summaryrefslogtreecommitdiff
path: root/cpp/BuildInstructionsWindows.md
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2015-05-13 12:52:45 -0700
committerMark Spruiell <mes@zeroc.com>2015-05-13 12:52:45 -0700
commit1f1c3d7e0df98ed453a2a69e316cb930b857028d (patch)
tree5e32ec4db3a8e334a9ef347e88c2fb71e07edfd0 /cpp/BuildInstructionsWindows.md
parentICE-6508 Fixed PHP linux build (diff)
downloadice-1f1c3d7e0df98ed453a2a69e316cb930b857028d.tar.bz2
ice-1f1c3d7e0df98ed453a2a69e316cb930b857028d.tar.xz
ice-1f1c3d7e0df98ed453a2a69e316cb930b857028d.zip
ICE-6494 - build instructions
Diffstat (limited to 'cpp/BuildInstructionsWindows.md')
-rw-r--r--cpp/BuildInstructionsWindows.md74
1 files changed, 74 insertions, 0 deletions
diff --git a/cpp/BuildInstructionsWindows.md b/cpp/BuildInstructionsWindows.md
new file mode 100644
index 00000000000..137e91178d0
--- /dev/null
+++ b/cpp/BuildInstructionsWindows.md
@@ -0,0 +1,74 @@
+# Building Ice for C++ for Windows Applications
+
+This page describes the Ice source distribution, including information about compiler requirements, third-party dependencies, and instructions for building and testing the distribution. If you prefer, you can download a [Windows installer](https://doc.zeroc.com/display/Ice36/Using+the+Windows+Binary+Distribution) that contains pre-compiled debug and release libraries, executables, and everything else necessary to build Ice applications on Windows.
+
+## Build Requirements for Windows
+
+### Operating Systems and Compilers
+
+Ice was extensively tested using the operating systems and compiler versions listed for our [supported platforms](https://zeroc.com/platforms_3_6_0.html).
+
+### Third-Party Libraries
+
+Ice has dependencies on a number of third-party libraries:
+
+ - [expat](http://expat.sourceforge.net/) 2.0
+ - [bzip](http://bzip.org) 1.0
+ - [Berkeley DB](http://www.oracle.com/us/products/database/berkeley-db/overview/index.htm) 5.3
+ - [mcpp](https://github.com/zeroc-ice/mcpp) 2.7.2 (with patches)
+
+You do not need to build these packages yourself, as ZeroC supplies a separate [Windows installer](https://zeroc.com/download.html) that contains release and debug libraries for all of the third-party dependencies.
+
+### Monotonic Clock
+
+Ice uses the ```QueryPerformanceCounter``` Windows API function to measure time with a monotonic clock. If you are experiencing timing or performance issues, there are two knowledgebase articles that may be relevant for your system:
+
+ - [KB 896256](http://support.microsoft.com/?id=896256)
+ - [KB 895980](http://support.microsoft.com/?id=895980)
+
+## Compiling and Testing Ice for C++ on Windows
+
+### Building Ice
+
+Open a command prompt that is configured for your target architecture. For example, when using Visual Studio 2013, you have several alternatives:
+
+- Developer Command Prompt
+- VS2013 x86 Native Tools Command Prompt
+- VS2013 x64 Native Tools Command Prompt
+- VS2013 x64 Cross Tools Command Prompt
+
+Using the first two configurations produces 32-bit binaries, while the third and fourth configurations produce 64-bit binaries.
+
+> *You must be using a Windows x64 platform when compiling a 64-bit version of Ice.*
+
+In the command window, change to the ```cpp``` subdirectory:
+
+ $ cd cpp
+
+Edit ```config\Make.rules.mak``` to establish your build configuration. The comments in the file provide more information.
+
+Now you're ready to build Ice:
+
+ > nmake /f Makefile.mak
+
+This will build the Ice core libraries, services, and tests.
+
+### Running the Test Suite
+
+Python is required to run the test suite. After a successful build, you can run the tests as follows:
+
+ > python allTests.py
+
+If everything worked out, you should see lots of ```ok``` messages. In case of a failure, the tests abort with ```failed```.
+
+### x64 Platform
+
+Building Ice on x64 with the Visual Studio C++ compiler is like building Ice on x86. You just need to perform the build in an "x64 Command Prompt", and not in a regular "Developer Command Prompt".
+
+> *You must be using a Windows x64 platform when compiling a 64-bit version of Ice.*
+
+## Installing a C++ Source Build on Windows
+
+Simply run ```nmake /f Makefile.mak install```. This will install Ice in the directory specified by the ```prefix``` variable in ```config\Make.rules.mak```.
+
+If you built a 64-bit version of Ice, the binaries are installed in the ```bin\x64``` directory and the libraries are installed in the ```lib\x64``` directory.