annotate INSTALL @ 911:bf4c8737b52c

Add curl as a build option
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 18 Aug 2014 18:52:31 +0200
parents d1c951b3012d
children 7ac5a366184d
rev   line source
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1 Installation Instructions
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
2 *************************
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 For Debian based GNU / Linux
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
5 ============================
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
6 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
7
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
8 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
9 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
10
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
11 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
12 ( 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
13 Polarssl needs cmake and build-essentials.
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
14
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
15 export YOURPREFIX=<Prefix of your choice (default /usr)>
577
4ccae6acfaec Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents: 575
diff changeset
16 export PATH=$YOURPREFIX/bin:$PATH
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
17
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
18 curl https://download.qt-project.org/official_releases/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.tar.xz.mirrorlist | grep SHA-256
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
19
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
20 29d2ab3b1aef87e2dd806b278802e357274016475a513341348040468bf233ac
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
21
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
22 http://qt-mirror.dannhauer.de/official_releases/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.tar.xz
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
23
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
24 sha256sum qt-everywhere-opensource-src-5.3.1.tar.xz
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
25
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
26 tar -xf qt-everywhere-opensource-src-5.3.1.tar.xz
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
27
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
28 cd qt-everywhere-opensource-src-5.3.1/qtbase
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
29
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
30 build dependencies have to to be installed at this point,
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
31 see ../qtbase/src/plugins/platforms/xcb/README
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
32
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
33 ./configure --prefix=$YOURPREFIX \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
34 -opensource \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
35 -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
36 -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
37 -no-directfb -no-opengl -no-kms -no-eglfs -no-egl -no-openssl -no-glib \
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
38 -system-libpng -qpa xcb -qt-xkbcommon -qt-xcb -no-nis -no-libjpeg -qt-libpng \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
39 -qt-zlib -no-gif && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
40 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
41 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
42
784
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
43 cd .. && \
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
44 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
45 qmake && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
46 nice make -j`nproc` && \
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
47 make install
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
48
784
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
49 cd ../../../linguist && \
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
50 qmake && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
51 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
52 make install
577
4ccae6acfaec Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents: 575
diff changeset
53
823
b8bc812e41ee (issue69) Update polarssl build documentation to 1.3.8
Andre Heinecke <andre.heinecke@intevation.de>
parents: 789
diff changeset
54 curl -O https://polarssl.org/download/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
55 318171db41335cacbb5b0047c94f1faf91442ab70a223b5223436703c9406ff1 polarssl-1.3.8-gpl.tgz
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
56
823
b8bc812e41ee (issue69) Update polarssl build documentation to 1.3.8
Andre Heinecke <andre.heinecke@intevation.de>
parents: 789
diff changeset
57 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
58 cd polarssl-1.3.8
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
59 mkdir build
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
60 cd build
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
61 cmake .. -DCMAKE_C_FLAGS=-fpic -DCMAKE_INSTALL_PREFIX=$YOURPREFIX
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
62 make && make test && make install
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
63
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
64 Libcurl:
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
65 wget http://curl.haxx.se/download/curl-7.37.1.tar.{gz,gz.asc}
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
66 gpg2 --verify curl-7.37.1.tar.gz.asc
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
67 tar -xf curl-7.37.1.tar.gz
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
68 cd curl-7.37.1/
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
69
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
70 ./configure --prefix=$YOURPREFIX \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
71 --without-nghttp2 --without-libidn --without-winidn --without-libssh2 \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
72 --without-librtmp --without-libmetalink --without-axtls --without-nss \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
73 --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
74 --disable-imap --disable-pop3 --disable-tftp --disable-telnet --disable-dict \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
75 --disable-proxy --disable-rtsp --disable-ldaps --disable-ldap --disable-file \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
76 --disable-ftp --enable-http --enable-shared=no -enable-static=yes \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
77 --with-polarssl=$YOURPREFIX --without-ca-bundle --without-ca-path
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
78
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
79 To compile the software you can use plain cmake. An out of source build is
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
80 highly suggested. For build options see CMakeList.txt
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
81
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
82 hg clone https://wald.intevation.org/hg/trustbridge/
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
83 cd trustbridge
834
8081ed84589d Use static nss from subrepository on windows
Andre Heinecke <andre.heinecke@intevation.de>
parents: 823
diff changeset
84 hg clone https://wald.intevation.org/hg/trustbridge/nss-cmake-static
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
85 mkdir build-linux
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
86 cd build-linux
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
87 cmake .. -DCMAKE_PREFIX_PATH=$YOURPREFIX
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
88
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
89
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
90 I386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
91 ====
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
92 Install dependencies (list might be incomplete)
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
93 apt-get install libx32stdc++-4.8-dev libc6:i386 g++-4.8-multilib \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
94 libxcb1:i386 libxcb1-dev:i386 libx11-xcb1:i386 libx11-xcb-dev:i386 libxcb-keysyms1:i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
95 libxcb-keysyms1-dev:i386 libxcb-image0:i386 libxcb-image0-dev:i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
96 libxcb-shm0:i386 libxcb-shm0-dev:i386 libxcb-icccm4:i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
97 libxcb-icccm4-dev:i386 libxcb-sync-dev:i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
98 libxcb-render-util0:i386 libxcb-render-util0-dev:i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
99 libxcb-xfixes0-dev:i386 libxrender-dev:i386 libxcb-shape0-dev:i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
100 libxcb-randr0-dev:i386 libxcb-glx0-dev:i386 libdbus-1-dev:i386 \
888
be3cb357b027 Document libnss3:i386 dependendcy
Andre Heinecke <andre.heinecke@intevation.de>
parents: 887
diff changeset
101 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
102
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
103 Create a new directory for qt. As qt has to build in source you need a different
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
104 directory.
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
105 mkdir i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
106 cd i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
107 tar -xf ../qt-everywhere-opensource-src-5.3.1.tar.xz
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
108 cd qt-everywhere-opensource-src-5.3.1/qtbase/
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
109 ./configure --prefix=$YOURPREFIX/i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
110 -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
111 -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
112 -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
113 -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
114 -system-libpng -qpa xcb -qt-xcb -no-nis -no-libjpeg -no-gif -qt-zlib \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
115 -no-fontconfig -qt-freetype -qt-libpng -qt-xkbcommon \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
116 && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
117 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
118 make install
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
119
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
120 Switch back to the polarssl directory
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
121 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
122 mkdir build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
123 cd build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
124 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
125 -DCMAKE_VERBOSE_MAKEFILE=True \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
126 -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
127 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
128 make install
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
129
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
130 Now for Trustbridge itself
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
131 cd ../../trustbridge
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
132 mkdir build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
133 cd build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
134 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
135 -DCMAKE_VERBOSE_MAKEFILE=True \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
136 -DCMAKE_C_FLAGS=-m32 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
137 -DCMAKE_CXX_FLAGS="-m32"
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
138
585
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
139 Hiawatha (for Downloader unit test)
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
140 ===================================
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
141 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
142 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
143 dependency.
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
144
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
145 wget https://www.hiawatha-webserver.org/files/hiawatha-9.5.tar.gz
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
146 sha256sum hiawatha-9.5.tar.gz
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
147
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
148 c181011db1af187006190fc186689a0707a6f1e7b524c2a4347840e8fdf68b4f hiawatha-9.5.tar.gz
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
149
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
150 tar -xf hiawatha-9.5.tar.gz
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
151 cp polarssl-1.3.7-gpl.tgz hiawatha-9.5/polarssl/polarssl.tgz
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
152 cd hiawatha-9.5/polarssl
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
153 sed -i 's/wget.*//' upgrade
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
154 ./upgrade 1.3.7
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
155 cd ..
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
156 mkdir build
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
157 cd build
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
158 cmake .. -DCMAKE_INSTALL_PREFIX=$YOURPREFIX
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
159 make && make install
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
160
635
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
161 Osslsigncode (for binverify unit test)
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
162 ======================================
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
163 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
164 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
165
847
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
166 wget http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
167 sha256sum osslsigncode-1.7.1.tar.gz
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
168 # f9a8cdb38b9c309326764ebc937cba1523a3a751a7ab05df3ecc99d18ae466c9
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
169 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
170 cd osslsigncode-1.7.1
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
171 ./configure --without-curl --prefix=$YOURPREFIX
635
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
172 make && make install
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
173
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
174 # for a windows binary (optional)
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
175 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
176
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
177 For Microsoft Windows
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
178 =====================
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
179 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
180 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
181 Tested development platform: Ubuntu 13.10.
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
182
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
183 Dependencies on the Host system:
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
184 git autoconf automake bash bison bzip2 \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
185 cmake flex gettext git g++ intltool \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
186 libffi-dev libtool libltdl-dev libssl-dev \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
187 libxml-parser-perl make openssl patch perl \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
188 pkg-config scons sed unzip wget xz-utils autopoint \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
189 gperf
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
190
577
4ccae6acfaec Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents: 575
diff changeset
191 Build the windows binaries:
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
192 MXEPATH=$YOURPREFIX/win
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
193 git clone https://github.com/mxe/mxe.git $MXEPATH
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
194 cd $MXEPATH
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
195 echo "MXE_TARGETS := i686-w64-mingw32.static" > settings.mk
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
196 make polarssl
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
197 make qtbase
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
198
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
199 Workaround Qt CMake Bugs:
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
200 find $MXEPATH/usr/i686-w64-mingw32.static/qt5/lib/cmake -name \*.cmake | \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
201 xargs sed -i 's/\/\([a-z]*\)\.lib/\/lib\1\.a/g'
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
202 sed -i 's/^_qt5gui_find_extra_libs.*//' \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
203 $MXEPATH/usr/i686-w64-mingw32.static/qt5/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
204
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
205 Make an NSS build available in the MXE prefix:
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
206 # TODO -> Document how to build NSS,..
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
207 cp -r <magic nss folder> $MXEPATH/usr/i686-w64-mingw32.static/
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
208
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
209 Compile the software:
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
210 cd trustbridge
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
211 mkdir build-windows
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
212 cd build-windows
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
213 MXETARGET=$MXEPATH/usr/i686-w64-mingw32.static/
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
214 cmake .. \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
215 -DCMAKE_PREFIX_PATH="$MXETARGET/qt5;$MXETARGET;" \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
216 -DCMAKE_TOOLCHAIN_FILE="$MXETARGET/share/cmake/mxe-conf.cmake" \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
217 -DCMAKE_VERBOSE_MAKEFILE=True
848
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
218
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
219 Runtime Depdendencies
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
220 =====================
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
221 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
222 packages:
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
223
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
224 apt-get install nsis wine sharutils

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