diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/BuildInstructionsLinux.md | 75 | ||||
-rw-r--r-- | cpp/BuildInstructionsMinGW.md | 66 | ||||
-rw-r--r-- | cpp/BuildInstructionsOSX.md | 68 | ||||
-rw-r--r-- | cpp/BuildInstructionsWinRT.md | 76 | ||||
-rw-r--r-- | cpp/BuildInstructionsWindows.md | 66 |
5 files changed, 246 insertions, 105 deletions
diff --git a/cpp/BuildInstructionsLinux.md b/cpp/BuildInstructionsLinux.md index b9e50803d6f..bb91d67e767 100644 --- a/cpp/BuildInstructionsLinux.md +++ b/cpp/BuildInstructionsLinux.md @@ -1,35 +1,46 @@ # Building Ice for C++ on Linux -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 install [binary packages](https://doc.zeroc.com/display/Ice36/Using+the+Linux+Binary+Distributions) for supported platforms that contain pre-compiled libraries, executables, and everything else necessary to build Ice applications on Linux. +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 install [binary packages][1] +for supported platforms that contain pre-compiled libraries, executables, and +everything else necessary to build Ice applications on Linux. -## C++ Build Requirements for Linux +## C++ Build Requirements ### Operating Systems and Compilers -Ice is expected to build and run properly on any recent Linux distribution for x86 and x86_64, and was extensively tested using the operating systems and compiler versions listed for our [supported platforms](https://zeroc.com/platforms_3_6_0.html). +Ice is expected to build and run properly on any recent Linux distribution for +x86 and x86_64, and was extensively tested using the operating systems and compiler +versions listed for our [supported platforms][2]. ### Third-Party Libraries Ice has dependencies on a number of third-party libraries: - - [expat](http://expat.sourceforge.net/) 2.0 - - [OpenSSL](http://openssl.org) 0.9.8 or later - - [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) + - [expat][3] 2.0 + - [OpenSSL][4] 0.9.8 or later + - [bzip][5] 1.0 + - [Berkeley DB][6] 5.3 + - [mcpp][7] 2.7.2 (with patches) -Expat, OpenSSL and bzip are included with most Linux distributions. ZeroC supplies binary packages for Berkeley DB and mcpp on supported Linux distributions that do not include them: +Expat, OpenSSL and bzip are included with most Linux distributions. ZeroC supplies +binary packages for Berkeley DB and mcpp on supported Linux distributions that do +not include them: -- Berkeley DB 5.3.28 on RHEL 6, SLES12, SLES 11 and AMZN 2015.03 -- mcpp 2.7.2 with patches (```mcpp-devel```) on RHEL 7, RHEL 6, SLES 12, SLES 11 and AMZN 2015.03 +- Berkeley DB 5.3.28 on RHEL 6, SLES12, SLES 11 and Amzn 2015.03 +- mcpp 2.7.2 with patches (`mcpp-devel`) on RHEL 7, RHEL 6, SLES 12, SLES 11 +and Amzn 2015.03 ## Compiling and Testing Ice for C++ on Linux -In a command window, change to the ```cpp``` subdirectory: +In a command window, change to the `cpp` subdirectory: $ cd cpp -Edit ```config/Make.rules``` to establish your build configuration. The comments in the file provide more information. Pay particular attention to the variables that define the locations of the third-party libraries. +Edit `config/Make.rules` to establish your build configuration. The comments in +the file provide more information. Pay particular attention to the variables +that define the locations of the third-party libraries. Now you're ready to build Ice: @@ -37,7 +48,8 @@ Now you're ready to build Ice: This will build the Ice core libraries, services, and tests. -Python is required to run the test suite. After a successful build, you can run the tests as follows: +Python is required to run the test suite. After a successful build, you can run +the tests as follows: $ make test @@ -45,28 +57,36 @@ This command is equivalent to: $ python allTests.py -If everything worked out, you should see lots of ```ok``` messages. In case of a failure, the tests abort with ```failed```. +If everything worked out, you should see lots of `ok` messages. In case of a +failure, the tests abort with `failed`. ### 64-bit Source Builds on Linux x86_64 To build Ice in 64-bit mode, you need to do the following: -- Obtain or build all the third-party dependencies, and put the 64-bit libraries in the lib64 directories. For example, put Berkeley DB 64-bit libraries in ```$DB_HOME/lib64```. +- Obtain or build all the third-party dependencies, and put the 64-bit libraries +in the lib64 directories. For example, put Berkeley DB 64-bit libraries in +`$DB_HOME/lib64`. - Build and test as described above. ### 32-bit Source Builds on Linux x86_64 -By default, builds on x86_64 are 64-bit. To perform a 32-bit build on an x86_64 Linux system, set the environment variable ```LP64``` to no, as shown below: +By default, builds on x86_64 are 64-bit. To perform a 32-bit build on an x86_64 +Linux system, set the environment variable `LP64` to no, as shown below: $ export LP64=no -## Installing a C++ Source Build on Linux +## Installing a C++ Source Build -Simply run ```make install```. This will install Ice in the directory specified by the ```prefix``` variable in ```config/Make.rules```. +Simply run `make install`. This will install Ice in the directory specified by +the `prefix` variable in `config/Make.rules`. -After installation, make sure that the ```prefix/bin``` directory is in your ```PATH```. +After installation, make sure that the `prefix/bin` directory is in your `PATH`. -If you choose to not embed a ```runpath``` into executables at build time (see your build settings in ```config/Make.rules```) or did not create a symbolic link from the ```runpath``` directory to the installation directory, you also need to add the library directory to your ```LD_LIBRARY_PATH```. +If you choose to not embed a `runpath` into executables at build time (see your +build settings in `config/Make.rules`) or did not create a symbolic link from +the `runpath` directory to the installation directory, you also need to add the +library directory to your `LD_LIBRARY_PATH`. On an x86 system, the library directory is: @@ -78,4 +98,15 @@ On an x86_64 system: prefix/lib64 (RHEL, SLES, Amazon) prefix/lib/x86_64-linux-gnu (Ubuntu) -When compiling Ice programs, you must pass the location of the ```prefix/include``` directory to the compiler with the ```-I``` option, and the location of the library directory with the ```-L``` option. If building a C++11 program, you must add the ```/c++11``` suffix to the library directory (such as ```prefix/lib/c++11```). +When compiling Ice programs, you must pass the location of the `prefix/include` +directory to the compiler with the `-I` option, and the location of the library +directory with the `-L` option. If building a C++11 program, you must add the +`/c++11` suffix to the library directory (such as `prefix/lib/c++11`). + +[1]: https://doc.zeroc.com/display/Ice36/Using+the+Linux+Binary+Distributions +[2]: https://zeroc.com/platforms_3_6_0.html +[3]: http://expat.sourceforge.net +[4]: http://openssl.org +[5]: http://bzip.org +[6]: http://www.oracle.com/us/products/database/berkeley-db/overview/index.htm +[7]: https://github.com/zeroc-ice/mcpp diff --git a/cpp/BuildInstructionsMinGW.md b/cpp/BuildInstructionsMinGW.md index 38d371fbc17..e0e3778c17e 100644 --- a/cpp/BuildInstructionsMinGW.md +++ b/cpp/BuildInstructionsMinGW.md @@ -1,53 +1,67 @@ # Building Ice for C++ with MinGW -> *MinGW is only supported for building the Ice extension for Ruby. It is not supported for general application development. If you prefer, you can install a [Ruby gem](https://doc.zeroc.com/display/Ice36/Using+the+Ruby+Distribution) that contains a complete Ice for Ruby run-time.* +> *MinGW is only supported for building the Ice extension for Ruby. It is not +supported for general application development. If you prefer, you can install +a [Ruby gem][1] that contains a complete Ice for Ruby run-time.* -## Build Requirements for MinGW +## Build Requirements ### Compiler Ice for C++ was tested with the following MinGW compilers: -- [mingw 4.7.3 32-bit](http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.3/32-bit/threads-win32/sjlj/x32-4.7.3-release-win32-sjlj-rev1.7z/download) -- mingw 4.7.2 64-bit, included in the [Ruby Development Kit](http://rubyinstaller.org/downloads/) version 4.7.2 +- [mingw 4.7.3 32-bit][2] +- mingw 4.7.2 64-bit, included in the [Ruby Development Kit][3] version 4.7.2 -> *mingw 4.7.2 32-bit, included in the 32-bit Ruby Development Kit version 4.7.2, contains a very severe bug that makes it unsuitable to build Ice.* +> *mingw 4.7.2 32-bit, included in the 32-bit Ruby Development Kit version 4.7.2, +contains a very severe bug that makes it unsuitable to build Ice.* ### Third-Party Libraries Ice has dependencies on the following third-party libraries: - - [bzip](http://bzip.org) 1.0 - - [mcpp](https://github.com/zeroc-ice/mcpp) 2.7.2 (with patches) + - [bzip][4] 1.0 + - [mcpp][5] 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. +You do not need to build these packages yourself, as ZeroC supplies a separate +[Windows installer][6] that contains release and debug libraries for all of the +third-party dependencies. -## Compiling and Testing Ice with MinGW +## Compiling and Testing Ice -The Ice build system for MinGW builds only a small subset of Ice for C++, namely the core run time libraries (Ice, IceUtil, IceDiscovery, IceSSL), slice2cpp, slice2rb and the corresponding tests. +The Ice build system for MinGW builds only a small subset of Ice for C++, namely +the core run time libraries (Ice, IceUtil, IceDiscovery, IceSSL), slice2cpp, +slice2rb and the corresponding tests. ### Building Ice -In a command window, change to the ```cpp``` subdirectory: +In a command window, change to the `cpp` subdirectory: > cd cpp -Run the ```devkitvars.bat``` batch file from the Ruby development kit to set up your environment. For example, if you installed the development kit in ```C:\RubyDevKit-4.7.2```, run the following: +Run the `devkitvars.bat` batch file from the Ruby development kit to set up your +environment. For example, if you installed the development kit in +`C:\RubyDevKit-4.7.2`, run the following: > C:\RubyDevKit-4.7.2\devkitvars.bat If you are building for Windows 32-bit: -- Add mingw 4.7.3 to your PATH, before the mingw 4.7.2 included in the Ruby development kit. For example, if you installed mingw 4.7.3 in ```C:\mingw-4.7.3```, run the following: +- Add mingw 4.7.3 to your PATH, before the mingw 4.7.2 included in the Ruby +development kit. For example, if you installed mingw 4.7.3 in `C:\mingw-4.7.3`, +run the following: - ```> set PATH=C:\mingw-4.7.3\bin;%PATH%``` + > set PATH=C:\mingw-4.7.3\bin;%PATH% - Then double-check the desired version of g++ is in your PATH: - ```> g++ -dumpversion - 4.7.3``` + > g++ -dumpversion + 4.7.3 -Edit ```config\Make.rules``` to establish your build configuration. The comments in the file provide more information. In particular, if Ice third-party packages are not installed in the default location, set ```THIRDPARTY_HOME``` to the Ice third-party installation directory. +Edit `config\Make.rules` to establish your build configuration. The comments +in the file provide more information. In particular, if Ice third-party +packages are not installed in the default location, set `THIRDPARTY_HOME` to +the Ice third-party installation directory. Now you are ready to build Ice: @@ -55,12 +69,22 @@ Now you are ready to build Ice: ### Running the Test Suite -Python is required to run the test suite. After a successful build, you can run the tests as follows: +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```. +If everything worked out, you should see lots of `ok` messages. In case of a +failure, the tests abort with `failed`. -## Installing a C++ Source Build for MinGW +## Installing a C++ Source Build -Simply run ```make install``` from a command prompt. This will install Ice in the directory specified by the prefix variable in ```config\Make.rules```. +Simply run `make install` from a command prompt. This will install Ice in the +directory specified by the `prefix` variable in `config\Make.rules`. + +[1]: https://doc.zeroc.com/display/Ice36/Using+the+Ruby+Distribution +[2]: http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.3/32-bit/threads-win32/sjlj/x32-4.7.3-release-win32-sjlj-rev1.7z/download +[3]: http://rubyinstaller.org/downloads +[4]: http://bzip.org +[5]: https://github.com/zeroc-ice/mcpp +[6]: https://zeroc.com/download.html diff --git a/cpp/BuildInstructionsOSX.md b/cpp/BuildInstructionsOSX.md index c112e4bb2e9..702c4edabc9 100644 --- a/cpp/BuildInstructionsOSX.md +++ b/cpp/BuildInstructionsOSX.md @@ -1,41 +1,50 @@ # Building Ice for C++ on OS X -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 install a [Homebrew](https://doc.zeroc.com/display/Ice36/Using+the+OS+X+Binary+Distribution) package instead. +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 install a [Homebrew][1] +package instead. -## C++ Build Requirements for OS X +## C++ Build Requirements ### 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). +Ice was extensively tested using the operating systems and compiler versions +listed for our [supported platforms][2]. ### Third-Party Libraries Ice has dependencies on a number of third-party libraries: - - [expat](http://expat.sourceforge.net/) 2.0 - - [OpenSSL](http://openssl.org) 0.9.8 or later - - [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) + - [expat][3] 2.0 + - [OpenSSL][4] 0.9.8 or later + - [bzip][5] 1.0 + - [Berkeley DB][6] 5.3 + - [mcpp][7] 2.7.2 (with patches) -Expat, OpenSSL and bzip are included with your system. For Berkeley DB and mcpp, you have a couple of options: +Expat, OpenSSL and bzip are included with your system. For Berkeley DB and mcpp, +you have a couple of options: -- Using [Homebrew](http://brew.sh), install Berkeley DB and mcpp with these commands: +- Using [Homebrew][8], install Berkeley DB and mcpp with these commands: $ brew tap zeroc-ice/tap $ brew install berkeley-db53 [--without-java] $ brew install mcpp - The ```berkeley-db53``` package is a pre-compiled bottle that includes Java support by default; you can exclude Java support using the ```--without-java``` option. + The `berkeley-db53` package is a pre-compiled bottle that includes Java support + by default; you can exclude Java support using the `--without-java` option. + - Download the Berkeley DB and mcpp source distributions and build them yourself. -## Compiling and Testing Ice for C++ on OS X +## Compiling and Testing Ice -In a command window, change to the ```cpp``` subdirectory: +In a command window, change to the `cpp` subdirectory: $ cd cpp -Edit ```config/Make.rules``` to establish your build configuration. The comments in the file provide more information. Pay particular attention to the variables that define the locations of the third-party libraries. +Edit `config/Make.rules` to establish your build configuration. The comments in +the file provide more information. Pay particular attention to the variables that +define the locations of the third-party libraries. Now you're ready to build Ice: @@ -43,7 +52,8 @@ Now you're ready to build Ice: This will build the Ice core libraries, services, and tests. -Python is required to run the test suite. After a successful build, you can run the tests as follows: +Python is required to run the test suite. After a successful build, you can run the +tests as follows: $ make test @@ -51,14 +61,30 @@ This command is equivalent to: $ python allTests.py -If everything worked out, you should see lots of ```ok``` messages. In case of a failure, the tests abort with ```failed```. +If everything worked out, you should see lots of `ok` messages. In case of a +failure, the tests abort with `failed`. + +## Installing a C++ Source Build -## Installing a C++ Source Build on OS X +Simply run `make install`. This will install Ice in the directory specified by +the `prefix` variable in `config/Make.rules`. -Simply run ```make install```. This will install Ice in the directory specified by the ```prefix``` variable in ```config/Make.rules```. +After installation, make sure that the `<prefix>/bin` directory is in your `PATH`. -After installation, make sure that the ```prefix/bin``` directory is in your ```PATH```. +If you choose to not embed a `runpath` into executables at build time (see your +build settings in `config/Make.rules`) or did not create a symbolic link from the +`runpath` directory to the installation directory, you also need to add the +library directory to your `DYLD_LIBRARY_PATH`. -If you choose to not embed a ```runpath``` into executables at build time (see your build settings in ```config/Make.rules```) or did not create a symbolic link from the ```runpath``` directory to the installation directory, you also need to add the library directory to your ```DYLD_LIBRARY_PATH```. +When compiling Ice programs, you must pass the location of the `<prefix>/include` +directory to the compiler with the `-I` option, and the location of the library +directory with the `-L` option. -When compiling Ice programs, you must pass the location of the ```prefix/include``` directory to the compiler with the ```-I``` option, and the location of the library directory with the ```-L``` option. +[1]: https://doc.zeroc.com/display/Ice36/Using+the+OS+X+Binary+Distribution +[2]: https://zeroc.com/platforms_3_6_0.html +[3]: http://expat.sourceforge.net +[4]: http://openssl.org +[5]: http://bzip.org +[6]: http://www.oracle.com/us/products/database/berkeley-db/overview/index.htm +[7]: https://github.com/zeroc-ice/mcpp +[8]: http://brew.sh diff --git a/cpp/BuildInstructionsWinRT.md b/cpp/BuildInstructionsWinRT.md index f847594e715..3ff56795024 100644 --- a/cpp/BuildInstructionsWinRT.md +++ b/cpp/BuildInstructionsWinRT.md @@ -1,31 +1,42 @@ # Building Ice for C++ for WinRT 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. +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][1] +that contains pre-compiled debug and release libraries, executables, and everything +else necessary to build Ice applications for WinRT. ## Build Requirements for WinRT -Ice was extensively tested using the operating systems and compiler versions listed for our [supported platforms](https://zeroc.com/platforms_3_6_0.html). +Ice was extensively tested using the operating systems and compiler versions listed +for our [supported platforms][2]. -## Compiling and Testing Ice for WinRT +## Compiling and Testing Ice ### Building Ice -> *To build Ice for WinRT you first need to build Ice for Windows. The build of Ice for Windows is necessary to create the Slice translators that we need to build Ice for WinRT.* +> *To build Ice for WinRT you first need to build Ice for Windows. The build of Ice +for Windows is necessary to create the Slice translators that we need to build Ice +for WinRT.* -Open a command prompt that is configured for your target architecture. For example, Visual Studio gives you several alternatives: +Open a command prompt that is configured for your target architecture. For example, +Visual Studio gives you several alternatives: - Visual Studio Command Prompt - Visual Studio x64 Win64 Command Prompt - Visual Studio x64 Cross Tools Command Prompt - Visual Studio ARM Cross Tools Command Prompt -Using the first configuration produces 32-bit binaries, while the second and third produce 64-bit binaries and the fourth produces ARM binaries. +Using the first configuration produces 32-bit binaries, while the second and third +produce 64-bit binaries and the fourth produces ARM binaries. -In the command window, change to the ```cpp``` subdirectory: +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. In particular, you must set ```WINRT``` to yes in ```Make.rules.mak``` or in your environment: +Edit `config\Make.rules.mak` to establish your build configuration. The comments +in the file provide more information. In particular, you must set `WINRT` to yes +in `Make.rules.mak` or in your environment: > set WINRT=yes @@ -37,11 +48,14 @@ After the build has completed, you must register the Ice SDK in the Windows regi > nmake /f Makefile.mak register-sdk -> *This command must be executed in a command prompt that has administrative privileges because it requires write access to the registry.* +> *This command must be executed in a command prompt that has administrative privileges +because it requires write access to the registry.* ### Running the Test Suite -The WinRT test suite is composed of a set of dynamic libraries (one for each client/server test) and a GUI application that loads and runs the tests in the dynamic libraries. +The WinRT test suite is composed of a set of dynamic libraries (one for each +client/server test) and a GUI application that loads and runs the tests in the +dynamic libraries. You need to build the dynamic libraries first. Change the working directory: @@ -55,26 +69,46 @@ In Visual Studio, open this solution file: cpp/test/WinRT/TestSuite.sln -Now select the configuration that matches the settings in ```config\Make.rules.mak``` that you used to build the dynamic libraries. For example, if you built the test libraries for x86 and debug, you must select Win32 Debug. +Now select the configuration that matches the settings in `config\Make.rules.mak` +that you used to build the dynamic libraries. For example, if you built the test +libraries for x86 and debug, you must select Win32 Debug. -After selecting the appropriate configuration, build the solution by choosing "Build Solution" in the "Build" menu. +After selecting the appropriate configuration, build the solution by choosing +"Build Solution" in the "Build" menu. -After the build completes, you can deploy the application using "Deploy Solution" in the "Build" menu. Once deployed, you can start the application from the WinRT Desktop by clicking the "Ice Test Suite" icon. +After the build completes, you can deploy the application using "Deploy Solution" +in the "Build" menu. Once deployed, you can start the application from the WinRT +Desktop by clicking the "Ice Test Suite" icon. -If you want to run the tests with SSL enabled, you must use servers from another language mapping as WinRT does not support server-side SSL. +If you want to run the tests with SSL enabled, you must use servers from another +language mapping as WinRT does not support server-side SSL. -To run a test with SSL, open a command window and change to the test directory. At the command prompt, execute: +To run a test with SSL, open a command window and change to the test directory. +At the command prompt, execute: > python run.py --winrt --protocol=ssl -Then open the "Ice Test Suite" Windows Store application, check "Enable SSL", and click the "Run" button. +Then open the "Ice Test Suite" Windows Store application, check "Enable SSL", +and click the "Run" button. -To run the tests on a remote device such as the Surface, you will need to install the Remote Debugger Tools. +To run the tests on a remote device such as the Surface, you will need to install +the Remote Debugger Tools. -> *Some tests might fail if you run the tests with the debugger attached. You should choose "Start without Debugging" from the Debug menu to run the tests.* +> *Some tests might fail if you run the tests with the debugger attached. You +should choose "Start without Debugging" from the Debug menu to run the tests.* -## Installing a C++ Source Build for WinRT +## Installing a C++ Source Build -Simply run ```nmake /f Makefile.mak install```. This will install the Ice SDK in the directory specified by the ```prefix``` variable in ```config\Make.rules.mak```. +Simply run `nmake /f Makefile.mak install`. This will install the Ice SDK in the +directory specified by the `prefix` variable in `config\Make.rules.mak`. -> *This command must be executed in a command prompt that has administrative privileges because it requires write access to the registry.* +> *This command must be executed in a command prompt that has administrative +privileges because it requires write access to the registry.* + +[1]: https://doc.zeroc.com/display/Ice36/Using+the+Windows+Binary+Distribution +[2]: https://zeroc.com/platforms_3_6_0.html +[3]: http://expat.sourceforge.net +[4]: http://bzip.org +[5]: http://www.oracle.com/us/products/database/berkeley-db/overview/index.htm +[6]: https://github.com/zeroc-ice/mcpp +[7]: https://zeroc.com/download.html diff --git a/cpp/BuildInstructionsWindows.md b/cpp/BuildInstructionsWindows.md index 137e91178d0..e483648419f 100644 --- a/cpp/BuildInstructionsWindows.md +++ b/cpp/BuildInstructionsWindows.md @@ -1,51 +1,63 @@ # 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. +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][1] +that contains pre-compiled debug and release libraries, executables, and everything +else necessary to build Ice applications on Windows. -## Build Requirements for Windows +## Build Requirements ### 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). +Ice was extensively tested using the operating systems and compiler versions listed +for our [supported platforms][2]. ### 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) + - [expat][3] 2.0 + - [bzip][4] 1.0 + - [Berkeley DB][5] 5.3 + - [mcpp][6] 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. +You do not need to build these packages yourself, as ZeroC supplies a separate +[Windows installer][7] 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: +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 +## Compiling and Testing Ice ### Building Ice -Open a command prompt that is configured for your target architecture. For example, when using Visual Studio 2013, you have several alternatives: +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. +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: +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. +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: @@ -55,20 +67,34 @@ 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 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```. +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". +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 +## Installing a C++ Source Build -Simply run ```nmake /f Makefile.mak install```. This will install Ice in the directory specified by the ```prefix``` variable in ```config\Make.rules.mak```. +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. +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. + +[1]: https://doc.zeroc.com/display/Ice36/Using+the+Windows+Binary+Distribution +[2]: https://zeroc.com/platforms_3_6_0.html +[3]: http://expat.sourceforge.net +[4]: http://bzip.org +[5]: http://www.oracle.com/us/products/database/berkeley-db/overview/index.htm +[6]: https://github.com/zeroc-ice/mcpp +[7]: https://zeroc.com/download.html |