Mercurial > trustbridge
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 |