annotate INSTALL @ 633:6c090638b2b4

Use static buffer for module file name. According to the msdn examle the return value of getmodulefilename should be used to indicate success and not the size. And according to comments on that function on Windows 8.1 it does not return the needed size. So better be more robust and just use max_path as a limit.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 23 Jun 2014 15:29:48 +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

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