annotate INSTALL @ 601:9cdc14373a5d

(issue #16) use qt with fontconfig
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 16 Jun 2014 14:58:02 +0200
parents c1733da2559c
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

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