<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Developer documentation</title><link>https://sourceforge.net/p/calcpi/wiki/Developer%2520documentation/</link><description>Recent changes to Developer documentation</description><atom:link href="https://sourceforge.net/p/calcpi/wiki/Developer%20documentation/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 18 Jun 2013 12:55:56 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/calcpi/wiki/Developer%20documentation/feed" rel="self" type="application/rss+xml"/><item><title>Developer documentation modified by RomanH</title><link>https://sourceforge.net/p/calcpi/wiki/Developer%2520documentation/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -151,7 +151,7 @@
     mkdir build
     cd build

-    cmake -D CMAKE_BUILD_TYPE="Debug" -DIS_64BITS=1 -DBOOST_ROOT=$BOOST_ROOT -DBOOST_LIBRARYDIR=$BOOST_LIBRARYDIR -DBOOST_LIBRARYDIR=$BOOST_LIBRARYDIR -DMPIR_PATH=$MPIR_PATH -DMPFR_PATH=$MPFR_PATH -DwxWidgets_ROOT_DIR=$wxWidgets_ROOT_DIR -DwxWidgets_LIB_DIR=$wxWidgets_LIB_DIR -DwxWidgets_CONFIG_EXECUTABLE=$wxWidgets_CONFIG_EXECUTABLE -DCP_USE_STATIC_LIBGCC=1 -DEIGEN3_INCLUDE_DIR=$EIGEN3_INCLUDE_DIR ../src
+    cmake -D CMAKE_BUILD_TYPE="Release" -DIS_64BITS=1 -DBOOST_ROOT=$BOOST_ROOT -DBOOST_LIBRARYDIR=$BOOST_LIBRARYDIR -DBOOST_LIBRARYDIR=$BOOST_LIBRARYDIR -DMPIR_PATH=$MPIR_PATH -DMPFR_PATH=$MPFR_PATH -DwxWidgets_ROOT_DIR=$wxWidgets_ROOT_DIR -DwxWidgets_LIB_DIR=$wxWidgets_LIB_DIR -DwxWidgets_CONFIG_EXECUTABLE=$wxWidgets_CONFIG_EXECUTABLE -DCP_USE_STATIC_LIBGCC=1 -DEIGEN3_INCLUDE_DIR=$EIGEN3_INCLUDE_DIR ../src
     make

@@ -166,6 +166,15 @@

 Boost compilation is straight-forward, and wxWidgets compilation is similar to OS X:

-    ../configure --with-macosx-version-min=10.5 --with-opengl --enable-unicode --disable-shared --disable-compat28
+    ../configure --with-opengl --enable-unicode --disable-shared --disable-compat28

 The build script is the same as for OS X, except that the paths to MPIR and MPFR do not have to be set.
+
+
+CMakeLists.txt parameters
+-------------------------
+
+The following parameters can be given to CMakeLists.txt (additionally to the library paths described above):
+
+ - CP_DISABLE_OPENMP: Some compilers have a defective OpenMP implementation (I had crashes with MinGW32 in OpenMP code, for example). With this flag set (add -DCP_DISABLE_OPENMP=1 to the cmake command line) OpenMP is disabled even though the compiler would support OpenMP.
+ - CP_USE_STATIC_LIBGCC: Some GCC distributions on Windows link the C and C++ libraries dynamically (shared). With this flag, they are linked statically, by adding the link flags "-static-libgcc -static-libstdc++".
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">RomanH</dc:creator><pubDate>Tue, 18 Jun 2013 12:55:56 -0000</pubDate><guid>https://sourceforge.net90476baf590edb1ae2750bec1b1de2ea483b8694</guid></item><item><title>Developer documentation modified by RomanH</title><link>https://sourceforge.net/p/calcpi/wiki/Developer%2520documentation/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -107,3 +107,65 @@
     REM Run cmake twice to override the found wxWidgets library directory (the first one is the wrong one)
     cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE="Release" -DMPIR_PATH="path_to_mpir/build_mingw64tdm/install" -DMPFR_PATH="path_to_mpfr/build_mingw64tdm/install" -DIS_64BITS=1 -DwxWidgets_ROOT_DIR="path_to_wxWidgets-2.9.4" -DEIGEN3_INCLUDE_DIR="path_to_eigen-3.1.3" ..\src
     cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE="Release" -DMPIR_PATH="path_to_mpir/build_mingw64tdm/install" -DMPFR_PATH="path_to_mpfr/build_mingw64tdm/install" -DIS_64BITS=1 -DwxWidgets_ROOT_DIR="path_to_wxWidgets-2.9.4" -DEIGEN3_INCLUDE_DIR="path_to_eigen-3.1.3" ..\src
+
+    path_to_mingw32\bin\mingw32-make.exe -j4
+    cd ..
+
+Mingw-make seems to be missing from Mingw64, so I used the one from a Mingw32 installation. A bit strange, but it seems to work fine.
+
+
+OS X
+----
+
+Since I'm not a OS X expert, and I don't even own a Mac, there may be better ways to do this than the ones I've found.
+
+Compilation of MPIR (I omitted here the cd/mkdir/cd build_dir/make, find it above):
+
+    ../configure --build=core2-apple-darwin11.1.0 --enable-static --disable-shared --enable-cxx --enable-gmpcompat --prefix=path_to_mpir/build_rel64/install
+
+MPFR:
+
+    ../configure --disable-thread-safe --with-gmp=path_to_mpir/build_rel64/install --prefix=path_to_mpfr/build_rel64/install
+
+Compilation of wxWidgets (important: download the .tar.bz2 version, the zip version has Windows line endings which will fail!):
+
+    ../configure --with-macosx-version-min=10.5 --with-opengl --enable-unicode --disable-shared --disable-compat28 --with-libjpeg=builtin --with-libpng=builtin --with-regex=builtin --with-libtiff=builtin --with-zlib=builtin --with-expat=builtin --with-osx_cocoa
+    make -j4
+
+The batch file for building CalcPi looks similar to this:
+
+    #!/bin/bash
+    #
+
+    export BOOST_ROOT=path_to_boost_1_53_0
+    export BOOST_LIBRARYDIR=path_to_boost_1_53_0/stage/lib
+    export BOOST_LIBRARYDIR="1.53.0"
+
+    export MPIR_PATH=path_to_mpir-2.6.0/build_rel64/install
+    export MPFR_PATH=path_to_mpfr-3.1.2/build_rel64/install
+    export wxWidgets_ROOT_DIR=path_to_wxWidgets-2.9.4
+    export wxWidgets_LIB_DIR=path_to_wxWidgets-2.9.4/build_release64/lib
+    export wxWidgets_CONFIG_EXECUTABLE=$wxWidgets_ROOT_DIR/build_release64/wx-config
+    export EIGEN3_INCLUDE_DIR=path_to_eigen-3.1.3
+
+    mkdir build
+    cd build
+
+    cmake -D CMAKE_BUILD_TYPE="Debug" -DIS_64BITS=1 -DBOOST_ROOT=$BOOST_ROOT -DBOOST_LIBRARYDIR=$BOOST_LIBRARYDIR -DBOOST_LIBRARYDIR=$BOOST_LIBRARYDIR -DMPIR_PATH=$MPIR_PATH -DMPFR_PATH=$MPFR_PATH -DwxWidgets_ROOT_DIR=$wxWidgets_ROOT_DIR -DwxWidgets_LIB_DIR=$wxWidgets_LIB_DIR -DwxWidgets_CONFIG_EXECUTABLE=$wxWidgets_CONFIG_EXECUTABLE -DCP_USE_STATIC_LIBGCC=1 -DEIGEN3_INCLUDE_DIR=$EIGEN3_INCLUDE_DIR ../src
+    make
+
+
+Linux
+-----
+
+In most Linux distributions, GMP, MPFR and CMake are in the package repository, so you can do something similar to:
+
+    apt-get install gmp mpfr cmake
+
+We need the newest versions of wxWidgets and boost, so we can't use package versions of those libraries.
+
+Boost compilation is straight-forward, and wxWidgets compilation is similar to OS X:
+
+    ../configure --with-macosx-version-min=10.5 --with-opengl --enable-unicode --disable-shared --disable-compat28
+
+The build script is the same as for OS X, except that the paths to MPIR and MPFR do not have to be set.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">RomanH</dc:creator><pubDate>Tue, 18 Jun 2013 12:45:26 -0000</pubDate><guid>https://sourceforge.netcd257eb7ab300128b10280df9c95f90eae07ea39</guid></item><item><title>Developer documentation modified by RomanH</title><link>https://sourceforge.net/p/calcpi/wiki/Developer%2520documentation/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -64,6 +64,7 @@
     b2.exe --build-dir=some_dir/boost_build toolset=gcc variant=debug,release link=shared runtime-link=shared architecture=x86 address-model=32 --stagedir=lib/win32gcc --without-mpi -j4 stage

 For the compilation of MPIR, MPFR and wxWidgets I recommend a separate build directory. Commands for compiling MPIR:
+
     cd path_to_mpir
     mkdir build_mingw64tdm
     cd build_mingw64tdm
@@ -75,6 +76,7 @@
 If you prefer a "native" build (optimized to your PC), omit --build=...

 Compiling MPFR is very similar:
+
     cd path_to_mpfr
     mkdir build_mingw64tdm
     cd build_mingw64tdm
@@ -84,6 +86,7 @@
     make install

 Commands for compiling wxWidgets:
+
     cd path_to_wxwidgets
     mkdir build_mingw64tdm
     cd build_mingw64tdm
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">RomanH</dc:creator><pubDate>Tue, 18 Jun 2013 12:28:55 -0000</pubDate><guid>https://sourceforge.netebd07ea9ada31dd3b02fa7147f0127c9c4aa71f0</guid></item><item><title>Developer documentation modified by RomanH</title><link>https://sourceforge.net/p/calcpi/wiki/Developer%2520documentation/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -46,3 +46,61 @@
     cmake -G "Visual Studio 10 Win64" -DCMAKE_CONFIGURATION_TYPES=Release;RelWithDebInfo;Debug -DMPIR_PATH="path_to_mpir/lib/x64/Release" -DMPFR_PATH="path_to_mpfr/lib/x64/Release" -DwxWidgets_ROOT_DIR="path_to_wxWidgets-2.9.4" -DEIGEN3_INCLUDE_DIR="path_to_eigen" ..\src

     cd ..
+
+Adjust the paths as needed. Then execute the batch file. If everything went smoothly, you now have a directory build_x64 with a Visual Studio solution file. Open it, compile, done!
+It is also possible to use CMake-GUI, but I haven't tried that.
+
+
+Windows - MinGW64
+-----------------
+
+There are many ways how to use the MinGW64 compiler. I am using the TDM distribution, found [here](http://tdm-gcc.tdragon.net/), along with MSYS, see installation description [here](https://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS).
+Boost compilation:
+
+    b2.exe --build-dir=some_dir/boost_build toolset=gcc variant=debug,release link=static runtime-link=static --stagedir=lib/win64gcc --without-mpi -j4 stage
+    b2.exe --build-dir=some_dir/boost_build toolset=gcc variant=debug,release link=shared runtime-link=shared --stagedir=lib/win64gcc --without-mpi -j4 stage
+
+    b2.exe --build-dir=some_dir/boost_build toolset=gcc variant=debug,release link=static runtime-link=static architecture=x86 address-model=32 --stagedir=lib/win32gcc --without-mpi -j4 stage
+    b2.exe --build-dir=some_dir/boost_build toolset=gcc variant=debug,release link=shared runtime-link=shared architecture=x86 address-model=32 --stagedir=lib/win32gcc --without-mpi -j4 stage
+
+For the compilation of MPIR, MPFR and wxWidgets I recommend a separate build directory. Commands for compiling MPIR:
+    cd path_to_mpir
+    mkdir build_mingw64tdm
+    cd build_mingw64tdm
+    mkdir install
+    ../configure ABI=64 --build=core2-w64-mingw32 --enable-static --disable-shared --enable-cxx --enable-gmpcompat --prefix=path_to_mpir/build_mingw64tdm/install
+    make -j4
+    make install
+
+If you prefer a "native" build (optimized to your PC), omit --build=...
+
+Compiling MPFR is very similar:
+    cd path_to_mpfr
+    mkdir build_mingw64tdm
+    cd build_mingw64tdm
+    mkdir install
+    ../configure --enable-thread-safe --with-gmp=path_to_mpir/build_mingw64tdm/install --prefix path_to_mpfr/build_mingw64tdm/install
+    make -j4
+    make install
+
+Commands for compiling wxWidgets:
+    cd path_to_wxwidgets
+    mkdir build_mingw64tdm
+    cd build_mingw64tdm
+    ../configure --disable-debug --disable-shared --disable-compat28 --with-opengl
+    make -j4
+
+Finally, create a batch file similar to the one for Visual Studio.
+
+    SET PATH=%PATH%;path_to_cmake\bin;path_to_mingw64\bin
+
+    SET BOOST_ROOT=path_to_boost
+    SET BOOST_LIBRARYDIR=path_to_boost/lib/win64gcc/lib
+    SET Boost_ADDITIONAL_VERSIONS="1.53.0"
+
+    MKDIR build_mingw64tdm
+    cd build_mingw64tdm
+
+    REM Run cmake twice to override the found wxWidgets library directory (the first one is the wrong one)
+    cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE="Release" -DMPIR_PATH="path_to_mpir/build_mingw64tdm/install" -DMPFR_PATH="path_to_mpfr/build_mingw64tdm/install" -DIS_64BITS=1 -DwxWidgets_ROOT_DIR="path_to_wxWidgets-2.9.4" -DEIGEN3_INCLUDE_DIR="path_to_eigen-3.1.3" ..\src
+    cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE="Release" -DMPIR_PATH="path_to_mpir/build_mingw64tdm/install" -DMPFR_PATH="path_to_mpfr/build_mingw64tdm/install" -DIS_64BITS=1 -DwxWidgets_ROOT_DIR="path_to_wxWidgets-2.9.4" -DEIGEN3_INCLUDE_DIR="path_to_eigen-3.1.3" ..\src
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">RomanH</dc:creator><pubDate>Tue, 18 Jun 2013 12:26:46 -0000</pubDate><guid>https://sourceforge.net2059504c4cddf2d37e036cb2f3d3542a2502445b</guid></item><item><title>Developer documentation modified by RomanH</title><link>https://sourceforge.net/p/calcpi/wiki/Developer%2520documentation/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -5,4 +5,44 @@

 CalcPi requires the following libraries and tools:

- - 
+ - wxWidgets (), at least version 2.9.4
+ - boost (), at least version 1.53.0
+ - GMP or MPIR ( or )
+ - MPFR ()
+ - Eigen ()
+ - CMake ()
+
+If no version is given in the list above, it does not matter and older versions can be used.
+
+This Wiki page describes mainly the compilation of CalcPi. Some rudimentary information on compiling the third-party libraries is given.
+
+
+Windows - Microsoft Visual C++
+------------------------------
+
+Download and install CMake, the download all libraries and extract them to individual directories. Compilation of boost is done from the command line (Start menu -&gt; Microsoft Visual Studio 20xx -&gt; Visual Studio Tools -&gt; Visual Studio command prompt), while wxWidgets, MPIR and MPFR are compiled from within Visual Studio.
+See the documentation of the respective libraries on how to compile them. I used the following command line for compiling boost:
+
+    .\b2 --build-dir=some_directory\boost_build toolset=msvc-10.0 --build-type=complete --stagedir=lib/win32 -j4 stage
+
+and 64 bits:
+
+    .\b2 --build-dir=F:\Projects\boost_build toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 --stagedir=lib/win64 -j4 stage
+
+For compiling MPFR with Visual Studio, you need a project file, download from [here](http://gladman.plushost.co.uk/oldsite/computing/gmp4win.php).
+
+After all libraries have been built successfully, create a new folder called calc_pi and extract the source into a directory "src". Then create a batch file in calc_pi similar to this one:
+
+    SET PATH=%PATH%;path_to_cmake\bin
+
+    CALL "path_to_visual_studio\VC\vcvarsall.bat" x64
+
+    SET BOOST_ROOT=path_to_boost
+    SET BOOST_LIBRARYDIR=%BOOST_ROOT%/lib/win64/lib
+    SET Boost_ADDITIONAL_VERSIONS="1.53.0"
+
+    mkdir build_x64
+    cd build_x64
+    cmake -G "Visual Studio 10 Win64" -DCMAKE_CONFIGURATION_TYPES=Release;RelWithDebInfo;Debug -DMPIR_PATH="path_to_mpir/lib/x64/Release" -DMPFR_PATH="path_to_mpfr/lib/x64/Release" -DwxWidgets_ROOT_DIR="path_to_wxWidgets-2.9.4" -DEIGEN3_INCLUDE_DIR="path_to_eigen" ..\src
+
+    cd ..
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">RomanH</dc:creator><pubDate>Tue, 18 Jun 2013 12:05:48 -0000</pubDate><guid>https://sourceforge.net63eaea80407d7bf2b782436b0de7b4ed585975d8</guid></item><item><title>Developer documentation modified by RomanH</title><link>https://sourceforge.net/p/calcpi/wiki/Developer%2520documentation/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="calcpi-developer-information"&gt;CalcPi Developer information&lt;/h1&gt;
&lt;p&gt;Building CalcPi is not a trivial task. It helps if you already have some knowledge of C/C++ and CMake.&lt;/p&gt;
&lt;p&gt;CalcPi requires the following libraries and tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">RomanH</dc:creator><pubDate>Tue, 18 Jun 2013 11:45:06 -0000</pubDate><guid>https://sourceforge.net97ab157514f3c2c2a95c1d621820d1a0f6daa000</guid></item></channel></rss>