annotate INSTALL @ 1319:137a0686de7b

(issue158) Try to find osslsigncode also in the application's directory
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 13 Oct 2014 17:56:50 +0200
parents 4a3a482dc337
children dab626e44347
rev   line source
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
1 /** @file INSTALL
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
2 @brief Installation Instructions
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
3 *************************
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
4
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
5 For Debian based GNU / Linux
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
6 ============================
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
7 Tested development platform: Ubuntu 14.4 amd64.
598
c1733da2559c Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents: 585
diff changeset
8
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
9 The following commands build qt5 and polarssl which are dependencies of the Software.
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
10 To only build for the amd64 platform omit the i386 instructions.
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
11
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
12 For build dependencies please refer to the Qt documentation
598
c1733da2559c Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents: 585
diff changeset
13 ( qtbase/src/plugins/platforms/xcb/README ).
c1733da2559c Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents: 585
diff changeset
14 Polarssl needs cmake and build-essentials.
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
15
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
16 export YOURPREFIX=<Prefix of your choice (default /usr)>
1262
dcce1e7201e2 Make sure that the bin dir is created before adding it to the path
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1253
diff changeset
17 mkdir -p $YOURPREFIX/bin
577
4ccae6acfaec Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents: 575
diff changeset
18 export PATH=$YOURPREFIX/bin:$PATH
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
19
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
20 curl https://download.qt-project.org/official_releases/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.tar.xz.mirrorlist | grep SHA-256
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
21 7f5bf93344cb57bac374ea4a32c8eda87f1357f998f14278e717cf84d0289bf0
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
22
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
23 curl -O http://qt-mirror.dannhauer.de/official_releases/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.tar.xz
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
24
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
25 sha256sum qt-everywhere-opensource-src-5.3.2.tar.xz
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
26
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
27 tar -xf qt-everywhere-opensource-src-5.3.2.tar.xz
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
28
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
29 cd qt-everywhere-opensource-src-5.3.2/qtbase
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
30
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
31 build dependencies have to to be installed at this point,
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
32 see ../qtbase/src/plugins/platforms/xcb/README
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
33
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
34 ./configure --prefix=$YOURPREFIX \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
35 -opensource \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
36 -release -nomake tests -nomake examples -confirm-license \
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
37 -static -no-cups -no-nis -no-icu -no-fontconfig -qt-freetype \
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
38 -no-directfb -no-opengl -no-kms -no-eglfs -no-egl -no-openssl -no-glib \
931
7ac5a366184d Remove -system-lipng from qt configure line
Andre Heinecke <andre.heinecke@intevation.de>
parents: 908
diff changeset
39 -qpa xcb -qt-xkbcommon -qt-xcb -no-nis -no-libjpeg -qt-libpng \
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
40 -qt-zlib -no-gif -no-xinput2 && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
41 nice make -j`nproc` && \
666
d905758aa3a6 Some reduction in qt libraries and document uitools build (needed for linguist)
Andre Heinecke <andre.heinecke@intevation.de>
parents: 635
diff changeset
42 make install
d905758aa3a6 Some reduction in qt libraries and document uitools build (needed for linguist)
Andre Heinecke <andre.heinecke@intevation.de>
parents: 635
diff changeset
43
1263
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
44 If you want to build the localization you need the qt localization tools.
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
45 To build them:
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
46
784
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
47 cd .. && \
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
48 cd qttools/src/designer/src/uitools && \
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
49 qmake && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
50 nice make -j`nproc` && \
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
51 make install
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
52
784
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
53 cd ../../../linguist && \
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
54 qmake && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
55 nice make -j`nproc` &&\
666
d905758aa3a6 Some reduction in qt libraries and document uitools build (needed for linguist)
Andre Heinecke <andre.heinecke@intevation.de>
parents: 635
diff changeset
56 make install
577
4ccae6acfaec Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents: 575
diff changeset
57
1263
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
58
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
59 Polarssl is required for TrustBridge:
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
60
823
b8bc812e41ee (issue69) Update polarssl build documentation to 1.3.8
Andre Heinecke <andre.heinecke@intevation.de>
parents: 789
diff changeset
61 curl -O https://polarssl.org/download/polarssl-1.3.8-gpl.tgz
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
62 sha256sum polarssl-1.3.8-gpl.tgz
823
b8bc812e41ee (issue69) Update polarssl build documentation to 1.3.8
Andre Heinecke <andre.heinecke@intevation.de>
parents: 789
diff changeset
63 318171db41335cacbb5b0047c94f1faf91442ab70a223b5223436703c9406ff1 polarssl-1.3.8-gpl.tgz
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
64
823
b8bc812e41ee (issue69) Update polarssl build documentation to 1.3.8
Andre Heinecke <andre.heinecke@intevation.de>
parents: 789
diff changeset
65 tar -xf polarssl-1.3.8-gpl.tgz
b8bc812e41ee (issue69) Update polarssl build documentation to 1.3.8
Andre Heinecke <andre.heinecke@intevation.de>
parents: 789
diff changeset
66 cd polarssl-1.3.8
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
67 mkdir build
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
68 cd build
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
69 cmake .. -DCMAKE_C_FLAGS=-fpic -DCMAKE_INSTALL_PREFIX=$YOURPREFIX
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
70 make && make test && make install
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
71
998
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
72 Trustbridge checkout:
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
73 At this point you need a trustbridge checkout as curl needs to be patched
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
74 to enable the certificate pinning and the force of SSL Ciphersuites when
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
75 using polarssl.
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
76
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
77 hg clone https://wald.intevation.org/hg/trustbridge/
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
78
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
79 Libcurl:
998
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
80
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
81 curl -O http://curl.haxx.se/download/curl-7.38.0.tar.gz
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
82 sha256sum curl-7.38.0.tar.gz
1089
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
83 5661028aa6532882fa228cd23c99ddbb8b87643dbb1a7ea55c068d34a943dff1 curl-7.38.0.tar.gz
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
84 curl -O http://curl.haxx.se/download/curl-7.38.0.tar.gz.asc
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
85 gpg2 --verify curl-7.38.0.tar.gz.asc
960
64c0e15935c8 Just add the sha256sum instead of gpg verify to avoid trust issues.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 958
diff changeset
86
1089
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
87 tar -xf curl-7.38.0.tar.gz
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
88 cd curl-7.38.0/
998
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
89 patch -p1 < ../trustbridge/patches/*.patch
971
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
90 mkdir build
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
91 cd build
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
92
971
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
93 ../configure --prefix=$YOURPREFIX \
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
94 --without-nghttp2 --without-libidn --without-winidn --without-libssh2 \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
95 --without-librtmp --without-libmetalink --without-axtls --without-nss \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
96 --without-cyassl --without-ssl --without-gnutls --disable-gopher --disable-smtp \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
97 --disable-imap --disable-pop3 --disable-tftp --disable-telnet --disable-dict \
953
f2066a24047d Update build doc for curl. Do not disable proxy.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 949
diff changeset
98 --disable-rtsp --disable-ldaps --disable-ldap --disable-file \
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
99 --disable-ftp --enable-http --enable-shared=no -enable-static=yes \
948
3baee3445502 Use curl without-zlib support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 931
diff changeset
100 --with-polarssl=$YOURPREFIX --without-ca-bundle --without-ca-path \
3baee3445502 Use curl without-zlib support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 931
diff changeset
101 --without-zlib
953
f2066a24047d Update build doc for curl. Do not disable proxy.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 949
diff changeset
102 make && make install
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
103
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
104 To compile the software you can use plain cmake.
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
105 An out of source build is highly suggested.
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
106 For build options see CMakeList.txt
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
107
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
108 cd trustbridge
834
8081ed84589d Use static nss from subrepository on windows
Andre Heinecke <andre.heinecke@intevation.de>
parents: 823
diff changeset
109 hg clone https://wald.intevation.org/hg/trustbridge/nss-cmake-static
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
110 mkdir build-linux
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
111 cd build-linux
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
112 cmake .. -DCMAKE_PREFIX_PATH=$YOURPREFIX
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
113
1265
b18f08034c24 Split off CLANG section more clearly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1264
diff changeset
114 CLANG
b18f08034c24 Split off CLANG section more clearly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1264
diff changeset
115 =====
1266
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
116 Alternatively you can build trustbridge with CLANG. This is a bit of a hack
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
117 and does not use all the hardening flags. Building with CLANG is _NOT_ recommended
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
118 but it can be useful for analysis of the code.
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
119
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
120 As root install the required packages an perform an evil hack that fixes the c++
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
121 build with clang on ubuntu:
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
122
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
123 apt-get install clang llvm
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
124 ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19 /usr/lib/x86_64-linux-gnu/libstdc++.so
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
125
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
126 Now you can build trustbridge as user:
1264
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
127
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
128 mkdir build-clang
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
129 cd build-clang
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
130 CC=/usr/bin/clang \
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
131 CXX=/usr/bin/clang++ \
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
132 cmake .. -DCMAKE_PREFIX_PATH=$YOURPREFIX \
1266
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
133 -DUSE_CLANG=TRUE \
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
134 -DCMAKE_VERBOSE_MAKEFILE=TRUE
1267
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
135 make
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
136
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
137 To run scan build:
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
138
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
139 CXX=/usr/share/clang/scan-build/c++-analyzer \
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
140 CC=/usr/share/clang/scan-build/ccc-analyzer \
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
141 cmake .. -DCMAKE_PREFIX_PATH=$YOURPREFIX \
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
142 -DUSE_CLANG=TRUE \
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
143 -DCMAKE_VERBOSE_MAKEFILE=TRUE
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
144 scan-build make
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
145
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
146 I386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
147 ====
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
148 Install dependencies (list might be incomplete)
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
149
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
150 apt-get install libx32stdc++-4.8-dev libc6:i386 g++-4.8-multilib \
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
151 libxcb1:i386 libxcb1-dev:i386 libx11-xcb1:i386 libx11-xcb-dev:i386 libxcb-keysyms1:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
152 libxcb-keysyms1-dev:i386 libxcb-image0:i386 libxcb-image0-dev:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
153 libxcb-shm0:i386 libxcb-shm0-dev:i386 libxcb-icccm4:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
154 libxcb-icccm4-dev:i386 libxcb-sync-dev:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
155 libxcb-render-util0:i386 libxcb-render-util0-dev:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
156 libxcb-xfixes0-dev:i386 libxrender-dev:i386 libxcb-shape0-dev:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
157 libxcb-randr0-dev:i386 libxcb-glx0-dev:i386 libdbus-1-dev:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
158 libsm-dev:i386 libnss3-dev:i386
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
159
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
160 Create a new directory for qt. As qt has to build in source you need a different
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
161 directory:
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
162
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
163 mkdir i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
164 cd i386
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
165 tar -xf ../qt-everywhere-opensource-src-5.3.2.tar.xz
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
166 cd qt-everywhere-opensource-src-5.3.2/qtbase/
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
167 ./configure --prefix=$YOURPREFIX/i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
168 -opensource -platform linux-g++-32 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
169 -release -nomake tests -nomake examples -confirm-license \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
170 -static -no-cups -no-nis -no-icu \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
171 -no-directfb -no-opengl -no-kms -no-eglfs -no-egl -no-openssl -no-glib \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
172 -system-libpng -qpa xcb -qt-xcb -no-nis -no-libjpeg -no-gif -qt-zlib \
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
173 -no-fontconfig -qt-freetype -qt-libpng -qt-xkbcommon -no-xinput2 \
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
174 && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
175 nice make -j`nproc` && \
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
176 make install
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
177
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
178 Switch back to the polarssl directory:
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
179
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
180 cd ../../../polarssl-1.3.8/
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
181 mkdir build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
182 cd build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
183 cmake .. -DCMAKE_C_FLAGS="-fpic -m32" -DCMAKE_INSTALL_PREFIX=$YOURPREFIX/i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
184 -DCMAKE_VERBOSE_MAKEFILE=True \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
185 -DENABLE_TESTING=FALSE -DENABLE_PROGRAMS=FALSE && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
186 nice make -j`nproc` && \
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
187 make install
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
188
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
189 Change to the curl directory:
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
190
1089
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
191 cd ../../curl-7.38.0/
971
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
192 mkdir build-i386
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
193 cd build-i386
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
194 CFLAGS="-fpic -m32" CPPFLAGS="-fpic -m32" ../configure --prefix=$YOURPREFIX/i386 \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
195 --without-nghttp2 --without-libidn --without-winidn --without-libssh2 \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
196 --without-librtmp --without-libmetalink --without-axtls --without-nss \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
197 --without-cyassl --without-ssl --without-gnutls --disable-gopher --disable-smtp \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
198 --disable-imap --disable-pop3 --disable-tftp --disable-telnet --disable-dict \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
199 --disable-rtsp --disable-ldaps --disable-ldap --disable-file \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
200 --disable-ftp --enable-http --enable-shared=no -enable-static=yes \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
201 --with-polarssl=$YOURPREFIX/i386 --without-ca-bundle --without-ca-path \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
202 --without-zlib
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
203 make && make install
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
204
1264
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
205 Now for Trustbridge itself:
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
206
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
207 cd ../../trustbridge
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
208 mkdir build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
209 cd build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
210 cmake .. -DCMAKE_PREFIX_PATH="$YOURPREFIX/i386" \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
211 -DCMAKE_VERBOSE_MAKEFILE=True \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
212 -DCMAKE_C_FLAGS=-m32 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
213 -DCMAKE_CXX_FLAGS="-m32"
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
214
585
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
215 Hiawatha (for Downloader unit test)
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
216 ===================================
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
217 Hiawatha is used in the downloader unit tests to provide a testbench
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
218 for the ssl connection. To build it you may need libxslt-dev as additional
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
219 dependency.
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
220
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
221 curl -O https://www.hiawatha-webserver.org/files/hiawatha-9.7.tar.gz
1089
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
222 sha256sum hiawatha-9.7.tar.gz
585
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
223
1089
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
224 e8581336883b7b963f38572f6396f8c47b43e5bedd3147d052fa3652e6c0ed86 hiawatha-9.7.tar.gz
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
225
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
226 tar -xf hiawatha-9.7.tar.gz
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
227 cd hiawatha-9.7
585
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
228 mkdir build
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
229 cd build
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
230 cmake .. -DCMAKE_INSTALL_PREFIX=$YOURPREFIX
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
231 make && make install
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
232
998
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
233
635
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
234 Osslsigncode (for binverify unit test)
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
235 ======================================
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
236 Osslsigncode is used to create PKCS#7 embedded signatures for Windows Authenticode
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
237 it is needed for the Windows part of the binverify unit test on the build system.
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
238
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
239 curl -L --max-redirs=1 -O http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz
847
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
240 sha256sum osslsigncode-1.7.1.tar.gz
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
241 f9a8cdb38b9c309326764ebc937cba1523a3a751a7ab05df3ecc99d18ae466c9
847
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
242 tar -xf osslsigncode-1.7.1.tar.gz
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
243 cd osslsigncode-1.7.1
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
244 ./configure --without-curl --prefix=$YOURPREFIX
635
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
245 make && make install
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
246
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
247 #for a windows binary (optional):
635
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
248 OPENSSL_CFLAGS=-I$MXETARGET/include OPENSSL_LIBS="-L$MXETARGET/lib -lcrypto -lz -lgdi32" ./configure --without-curl --host=i686-w64-mingw32 --prefix=$MXETARGET
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
249
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
250 For Microsoft Windows
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
251 =====================
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
252 The Windows variant can be cross compiled on Debian based GNU / Linux systems.
598
c1733da2559c Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents: 585
diff changeset
253 The minimum requirement is Debian stable.
c1733da2559c Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents: 585
diff changeset
254 Tested development platform: Ubuntu 13.10.
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
255
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
256 Dependencies on the Host system:
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
257
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
258 apt-get install git autoconf automake bash bison bzip2 \
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
259 cmake flex gettext git g++ intltool \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
260 libffi-dev libtool libltdl-dev libssl-dev \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
261 libxml-parser-perl make openssl patch perl \
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
262 pkg-config scons sed unzip curl xz-utils autopoint \
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
263 gperf
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
264
577
4ccae6acfaec Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents: 575
diff changeset
265 Build the windows binaries:
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
266
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
267 MXEPATH=$YOURPREFIX/win
949
0abacb0fd564 Document and use minimized qt and document curl build for windows
Andre Heinecke <andre.heinecke@intevation.de>
parents: 948
diff changeset
268 git clone https://github.com/Intevation/mxe.git $MXEPATH
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
269 cd $MXEPATH
958
3b736de02df3 Add correct branch to INSTALL documentation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 953
diff changeset
270 git checkout trustbridge
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
271 echo "MXE_TARGETS := i686-w64-mingw32.static" > settings.mk
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
272 make polarssl
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
273 make qtbase
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
274
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
275 (optional)
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
276
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
277 make curl
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
278
1019
4f999c7821ce Strip created executables
Andre Heinecke <andre.heinecke@intevation.de>
parents: 998
diff changeset
279 Add CMAKE_STRIP to the toolchain file:
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
280
1019
4f999c7821ce Strip created executables
Andre Heinecke <andre.heinecke@intevation.de>
parents: 998
diff changeset
281 echo "set(CMAKE_STRIP $MXEPATH/usr/bin/i686-w64-mingw32.static-strip)" >> \
4f999c7821ce Strip created executables
Andre Heinecke <andre.heinecke@intevation.de>
parents: 998
diff changeset
282 "$MXEPATH/usr/i686-w64-mingw32.static/share/cmake/mxe-conf.cmake"
4f999c7821ce Strip created executables
Andre Heinecke <andre.heinecke@intevation.de>
parents: 998
diff changeset
283
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
284 Workaround Qt CMake Bugs:
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
285
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
286 find $MXEPATH/usr/i686-w64-mingw32.static/qt5/lib/cmake -name \*.cmake | \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
287 xargs sed -i 's/\/\([a-z]*\)\.lib/\/lib\1\.a/g'
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
288 sed -i 's/^_qt5gui_find_extra_libs.*//' \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
289 $MXEPATH/usr/i686-w64-mingw32.static/qt5/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
290
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
291 Compile the software:
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
292
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
293 cd trustbridge
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
294 mkdir build-windows
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
295 cd build-windows
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
296 MXETARGET=$MXEPATH/usr/i686-w64-mingw32.static/
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
297 cmake .. \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
298 -DCMAKE_PREFIX_PATH="$MXETARGET/qt5;$MXETARGET;" \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
299 -DCMAKE_TOOLCHAIN_FILE="$MXETARGET/share/cmake/mxe-conf.cmake" \
1024
5ec1cf66922e Use curl now!
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1019
diff changeset
300 -DCMAKE_VERBOSE_MAKEFILE=True
848
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
301
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
302 Runtime Depdendencies
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
303 =====================
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
304 The Admin tool needs some additional software to be able to create installtion
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
305 packages:
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
306
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
307 apt-get install nsis wine sharutils
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
308 */

http://wald.intevation.org/projects/trustbridge/