Mercurial > trustbridge
annotate INSTALL @ 634:80d1a80b3e8d
Factor out selftest for better test and reviewability
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 23 Jun 2014 16:43:07 +0200 |
parents | 9cdc14373a5d |
children | ed1887be5170 |
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 ============================ |
598
c1733da2559c
Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents:
585
diff
changeset
|
6 Tested development platform: Ubuntu 13.10. |
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. |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 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
|
10 ( 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
|
11 Polarssl needs cmake and build-essentials. |
575
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
12 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 export YOURPREFIX=<Prefix of your choice (default /usr)> |
577
4ccae6acfaec
Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents:
575
diff
changeset
|
14 export PATH=$YOURPREFIX/bin:$PATH |
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 curl https://download.qt-project.org/official_releases/qt/5.3/5.3.0/single/qt-everywhere-opensource-src-5.3.0.tar.xz.mirrorlist | grep SHA-256 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
18 e6f47e69a5ce707452dd4bad1fd1919201a71e88be1b06afe1d302a3935daf1f |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
19 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 http://qt-mirror.dannhauer.de/official_releases/qt/5.3/5.3.0/single/qt-everywhere-opensource-src-5.3.0.tar.xz |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
21 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
22 sha256sum qt-everywhere-opensource-src-5.3.0.tar.xz |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
23 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
24 tar -xvmlf qt-everywhere-opensource-src-5.3.0.tar.xz |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
25 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 cd qt-everywhere-opensource-src-5.3.0/qtbase |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
27 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
28 build dependencies have to to be installed at this point, |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
29 see ../qtbase/src/plugins/platforms/xcb/README |
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 ./configure --prefix=$YOURPREFIX \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 -opensource \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
33 -release -nomake tests -nomake examples -confirm-license \ |
601
9cdc14373a5d
(issue #16) use qt with fontconfig
Andre Heinecke <andre.heinecke@intevation.de>
parents:
598
diff
changeset
|
34 -static -no-cups -no-nis -no-icu -fontconfig \ |
575
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
35 -no-directfb -no-opengl -no-kms -no-eglfs -no-egl -no-openssl -no-glib |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
36 nice make -j8 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
37 make install |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
38 |
577
4ccae6acfaec
Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents:
575
diff
changeset
|
39 cd qttools/src/linguist |
4ccae6acfaec
Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents:
575
diff
changeset
|
40 qmake |
4ccae6acfaec
Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents:
575
diff
changeset
|
41 nice make -j8 |
4ccae6acfaec
Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents:
575
diff
changeset
|
42 make install -k |
4ccae6acfaec
Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents:
575
diff
changeset
|
43 |
575
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
44 curl -O https://polarssl.org/download/polarssl-1.3.7-gpl.tgz |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
45 6beef0281160bf07fefefd6b412dd1ce4c39261cf5300835aef442253f0400e5 polarssl-1.3.7-gpl.tgz |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
46 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
47 tar -xf polarssl-1.3.7-gpl.tgz |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
48 cd polarssl-1.3.7 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
49 mkdir build |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
50 cd build |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
51 cmake .. -DCMAKE_C_FLAGS=-fpic -DCMAKE_INSTALL_PREFIX=$YOURPREFIX |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
52 make && make test && make install |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
53 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
54 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
|
55 highly suggested. For build options see CMakeList.txt |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
56 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
57 hg clone https://wald.intevation.org/hg/trustbridge/ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
58 cd trustbridge |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
59 mkdir build-linux |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
60 cd build-linux |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
61 cmake .. -DCMAKE_PREFIX_PATH=$YOURPREFIX |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
62 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
63 |
585
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
64 Hiawatha (for Downloader unit test) |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
65 =================================== |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
66 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
|
67 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
|
68 dependency. |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
69 |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
70 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
|
71 sha256sum hiawatha-9.5.tar.gz |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
72 |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
73 c181011db1af187006190fc186689a0707a6f1e7b524c2a4347840e8fdf68b4f hiawatha-9.5.tar.gz |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
74 |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
75 tar -xf hiawatha-9.5.tar.gz |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
76 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
|
77 cd hiawatha-9.5/polarssl |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
78 sed -i 's/wget.*//' upgrade |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
79 ./upgrade 1.3.7 |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
80 cd .. |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
81 mkdir build |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
82 cd build |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
83 cmake .. -DCMAKE_INSTALL_PREFIX=$YOURPREFIX |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
84 make && make install |
21f8d32f2d2a
Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents:
577
diff
changeset
|
85 |
575
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
86 For Microsoft Windows |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
87 ===================== |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
88 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
|
89 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
|
90 Tested development platform: Ubuntu 13.10. |
575
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
91 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
92 Dependencies on the Host system: |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
93 git autoconf automake bash bison bzip2 \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
94 cmake flex gettext git g++ intltool \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
95 libffi-dev libtool libltdl-dev libssl-dev \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
96 libxml-parser-perl make openssl patch perl \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
97 pkg-config scons sed unzip wget xz-utils autopoint \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
98 gperf |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
99 |
577
4ccae6acfaec
Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents:
575
diff
changeset
|
100 Build the windows binaries: |
575
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
101 MXEPATH=$YOURPREFIX/win |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
102 git clone https://github.com/mxe/mxe.git $MXEPATH |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
103 cd $MXEPATH |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
104 echo "MXE_TARGETS := i686-w64-mingw32.static" > settings.mk |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
105 make polarssl |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
106 make qtbase |
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 Workaround Qt CMake Bugs: |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
109 find $MXEPATH/usr/i686-w64-mingw32.static/qt5/lib/cmake -name \*.cmake | \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
110 xargs sed -i 's/\/\([a-z]*\)\.lib/\/lib\1\.a/g' |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
111 sed -i 's/^_qt5gui_find_extra_libs.*//' \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
112 $MXEPATH/usr/i686-w64-mingw32.static/qt5/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
113 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
114 Make an NSS build available in the MXE prefix: |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
115 # TODO -> Document how to build NSS,.. |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
116 cp -r <magic nss folder> $MXEPATH/usr/i686-w64-mingw32.static/ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
117 |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
118 Compile the software: |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
119 cd trustbridge |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
120 mkdir build-windows |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
121 cd build-windows |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
122 MXETARGET=$MXEPATH/usr/i686-w64-mingw32.static/ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
123 cmake .. \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
124 -DCMAKE_PREFIX_PATH="$MXETARGET/qt5;$MXETARGET;" \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
125 -DNSS_INCLUDEDIR="/nss-3.12.7/include;/nss-3.12.7/public/nss" \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
126 -DNSS_LIBDIR="/nss-3.12.7/lib" \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
127 -DCMAKE_TOOLCHAIN_FILE="$MXETARGET/share/cmake/mxe-conf.cmake" \ |
ab2d62fe2815
Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
128 -DCMAKE_VERBOSE_MAKEFILE=True |