Windows build » History » Version 28

pospelov, 05 Sep 2013 17:02

1 1 herck
h1. Windows build
2 1 herck
3 9 pospelov
Experimental compilation under Windows using Mingw or Microsoft Visual Studio.
4 26 pospelov
For developers only.
5 26 pospelov
Normal users, please do not read this.
6 1 herck
7 13 pospelov
8 6 pospelov
h5. Install packages for happier life
9 1 herck
10 6 pospelov
* Atlassian SourceTree (v0.9.2.3) 
11 6 pospelov
> https://www.atlassian.com/software/sourcetree/overview
12 6 pospelov
* Kate from KDE 
13 6 pospelov
> http://download.kde.org/stable/kdewin/installer/kdewin-installer-gui-latest.exe.mirrorlist 
14 1 herck
* far manager
15 1 herck
> http://www.farmanager.com/download.php?l=en
16 9 pospelov
* WinSCP
17 9 pospelov
> http://winscp.net/eng/index.php
18 9 pospelov
19 14 pospelov
First assure compilation of MinGW, then switch to Visual Studio recipe
20 9 pospelov
21 9 pospelov
h2. Mingw build
22 9 pospelov
23 6 pospelov
h5. Install Qt, cmake
24 1 herck
25 25 pospelov
* Install Qt 5.1.0
26 6 pospelov
> http://qt-project.org/downloads
27 18 pospelov
> Add to PATH C:\Qt\Tools\mingw48_32\bin;C:\Qt\Tools\mingw48_32\lib;C:\Qt\5.1.0\mingw48_32\bin;C:\Qt\Tools\QtCreator\bin
28 19 pospelov
>> this will allow usage of mingw from any command line
29 1 herck
30 1 herck
* install cmake
31 1 herck
> http://www.cmake.org/cmake/resources/software.html by running cmake-2.8.11.2-win32-x86.exe
32 1 herck
33 27 pospelov
h5. Install MinGW 
34 25 pospelov
35 27 pospelov
* We need full MinGW suite to compile latest libgsl. MinGW from Qt installtion want help.
36 27 pospelov
> download mingw-get-setup.exe installer from http://www.mingw.org/
37 27 pospelov
> run installer and select something like  "M-SYS", "MinGW Developer Toolkit" and the "GCC-C" compiler at the very least
38 27 pospelov
> select default C:\MinGW as an installation directory
39 25 pospelov
40 16 pospelov
h5. Install Python and Co
41 16 pospelov
42 16 pospelov
* Install Python
43 16 pospelov
> install through http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi into C:/Python27
44 16 pospelov
45 16 pospelov
* install numpy 
46 16 pospelov
> from unofficial http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy   by running   numpy-unoptimized-1.7.1.win32-py2.7.‌exe
47 16 pospelov
48 16 pospelov
* install matplotlib 
49 1 herck
> from http://matplotlib.org/downloads.html  by running matplotlib-1.2.1.win32-py2.7.exe
50 6 pospelov
51 1 herck
> (alternative install Anaconda pack (python + mingw + numpy) from http://continuum.io/downloads ) Not checked!
52 1 herck
53 1 herck
h5. Comment about installation of additional libraries
54 1 herck
> All further installations should end up in C:\opt\local
55 1 herck
56 25 pospelov
h5. Install gsl
57 1 herck
58 25 pospelov
> create empty directory c:\gsl-1.16
59 25 pospelov
> download source gsl-1.16.tar.gz from ftp://ftp.gnu.org/gnu/gsl/ 
60 25 pospelov
> copy unpacked directory to C:\mingw\msys\1.0\home\pospelov
61 25 pospelov
> run  c:\mingw\msys\msys.bat
62 25 pospelov
> there, navigate to c:\mingw\msys\1.0\home\pospelov\gsl-1.16
63 25 pospelov
> compile
64 25 pospelov
>> ./configure --enable-static=yes --enable-shared=yes --prefix=/c/gsl-1.16
65 25 pospelov
>> make
66 25 pospelov
>> make install
67 28 pospelov
> copy directory "C:\gsl-1.16\include\gsl"  to "C:\opt\local\include\gsl"
68 28 pospelov
> copy files libgsl-0.dll and libgslcblas-0.dll into "C:\opt\local\lib"
69 25 pospelov
70 25 pospelov
h5. Install fftw3 
71 25 pospelov
72 12 pospelov
> from http://www.fftw.org/install/windows.html download  fftw-3.3.3-dll32.zip
73 6 pospelov
> unpack archive somewhere
74 6 pospelov
> copy fftw3.h to C:\opt\local\include
75 6 pospelov
> copy libfftw3-3.dll and libfftw3-3.def to C:\opt\local\lib
76 15 pospelov
77 15 pospelov
h5. install BOOST
78 6 pospelov
79 6 pospelov
* install zlib and bzip2
80 6 pospelov
> from http://www.zlib.net/ into C:/opt/local/source/zlib-1.2.8
81 6 pospelov
> from http://www.bzip.org/downloads.html into C:/opt/local/source/bzip2-1.0.6
82 6 pospelov
83 6 pospelov
* Download and compile boost_1_54_0 
84 6 pospelov
> from http://sourceforge.net/projects/boost/files/boost/1.54.0/ and unpack
85 6 pospelov
> cd <BOOSTDIR>
86 6 pospelov
> bootstrap.bat mingw
87 6 pospelov
> b2 install --prefix=c:/opt/local toolset=gcc -sBZIP2_SOURCE="C:\opt\local\source\bzip2-1.0.6"   -sZLIB_SOURCE="C:\opt\local\source\zlib-1.2.8" address-model=32 variant=release link=static,shared threading=single,multi
88 6 pospelov
> Move c:/opt/local/include/boost_1.54/boost directory into c:/opt/local/include/boost
89 6 pospelov
90 6 pospelov
91 1 herck
h5. %PATH%
92 17 pospelov
93 17 pospelov
* Add c:\home\pospelov\development\git\BornAgain\lib;c:\opt\local\lib to PATH
94 6 pospelov
95 6 pospelov
96 6 pospelov
h5. Where we are?
97 6 pospelov
98 6 pospelov
* At this point Qt creator should work (except App and GUI)
99 6 pospelov
100 8 pospelov
* At this point cmake should work too
101 20 pospelov
> cmake -G "MinGW Makefiles"  ../BornAgain
102 20 pospelov
> mingw32-make -j4
103 20 pospelov
> mingw32-make check
104 20 pospelov
105 20 pospelov
106 20 pospelov
h2. MS Visual Studio build
107 20 pospelov
108 20 pospelov
109 20 pospelov
h5. Install VS.NET2012
110 20 pospelov
> Install En language pack
111 20 pospelov
> install "stop build on error" plugin http://visualstudiogallery.msdn.microsoft.com/91aaa139-5d3c-43a7-b39f-369196a84fa5
112 20 pospelov
113 20 pospelov
h5. Comment about installation of additional libraries
114 20 pospelov
> All further installations should end up in C:\opt\local_vc110
115 20 pospelov
116 20 pospelov
* Install gsl 
117 21 pospelov
> Download source gsl-1.8-src.zip from http://gnuwin32.sourceforge.net/downlinks/gsl-src-zip.php
118 21 pospelov
> Copy gsl-1.8 source dir into C:/opt/local_vc110/source
119 21 pospelov
> Open  VC8/libgsl.sln in Visual Studio and compile project
120 21 pospelov
> Copy libgsl.dll and libgsl_dll.lib from VC8/libgsl/Release-DLL/ to C:/opt/local_vc110/lib
121 22 pospelov
> Copy libgslcblas.dll and libgslcblas_dll.lib from VC8/libgslcblas/Release-DLL/ to C:/opt/local_vc110/lib
122 22 pospelov
> Copy C:/opt/local/include/gsl to C:/opt/local_vc110/include/gsl
123 22 pospelov
124 22 pospelov
* Install fftw3
125 22 pospelov
> from http://www.fftw.org/install/windows.html download  fftw-3.3.3-dll32.zip
126 22 pospelov
> unpack archive somewhere
127 1 herck
> copy fftw3.h to C:\opt\local_vc110\include
128 1 herck
> copy libfftw3-3.dll and libfftw3-3.def to C:\opt\local_vc110\lib
129 1 herck
> generate corresponding lib file
130 1 herck
>> run "VS2012 x86 native tools command prompt"
131 23 pospelov
>>  run there "lib /def:libfftw3-3.def" to generate lib file
132 23 pospelov
133 23 pospelov
h5. install BOOST
134 23 pospelov
135 23 pospelov
* install zlib and bzip2
136 23 pospelov
> from http://www.zlib.net/ into C:/opt/local_vc110/source/zlib-1.2.8
137 24 pospelov
> from http://www.bzip.org/downloads.html into C:/opt/local_vc110/source/bzip2-1.0.6
138 23 pospelov
>> Patch bzip2 installation (MSVC specific!)
139 23 pospelov
>> Namely delete first line ("LIBRARY   LIBBZ2") from file libbz2.def
140 23 pospelov
>> This will remove unnecessary dependency from external bzip2 during MSVC boost compilation
141 23 pospelov
142 23 pospelov
* Download and compile boost_1_54_0 
143 23 pospelov
> from http://sourceforge.net/projects/boost/files/boost/1.54.0/ and unpack
144 23 pospelov
> cd <BOOSTDIR>
145 23 pospelov
> bootstrap.bat
146 23 pospelov
> b2 install --prefix=c:/opt/local_vc110 -sBZIP2_SOURCE="C:\opt\local_vc110\source\bzip2-1.0.6"   -sZLIB_SOURCE="C:\opt\local_vc110\source\zlib-1.2.8" variant=release   link=static,shared threading=multi
147 1 herck
> Move c:/opt/local_vc110/include/boost_1.54/boost directory into c:/opt/local_vc110/include/boost