annotate INSTALL @ 1332:8362e30f7b55

(issue139) Check that pid is not running if the lock can be aquired If the lock on the lockfile can be aquired it might still be possible that another process is running. So we read the pid from the lockfile and check if another process with the same installation prefix as us is running.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 15 Oct 2014 14:19:46 +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/