annotate LinuxCompilation.txt @ 640:6270ae2688d6

note
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 29 Oct 2013 15:29:24 +0100
parents 92aa6df91c30
children 75af92b18e23
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
1 This file is a complement to "INSTALL", which contains instructions
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
2 that are specific to Linux.
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
3
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
4
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
5 Static linking for Linux
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
6 ========================
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
7
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
8 The most simple way of building Orthanc under Linux consists in
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
9 statically linking against all the third-party dependencies. In this
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
10 case, the system-wide libraries will not be used. The build tool
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
11 (CMake) will download the sources of all the required packages and
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
12 automatically compile them. This process should work on all the Linux
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
13 distributions.
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
14
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
15
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
16 To build binaries with debug information:
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
17
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
18 # cd ~/OrthancBuild
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
19 # cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Debug ~/Orthanc
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
20 # make
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
21 # make doc
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
22
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
23
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
24 To build a release version:
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
25
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
26 # cd ~/OrthancBuild
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
27 # cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release ~/Orthanc
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
28 # make
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
29 # make doc
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
30
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
31
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
32 Note: When the "STATIC_BUILD" option is set to "ON", the build tool
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
33 will not ask you the permission to download packages from the
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
34 Internet.
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
35
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
36
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
37 Use system-wide libraries under Linux
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
38 =====================================
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
39
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
40 Under Linux, by default, Orthanc links against the shared libraries of
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
41 your system (the "STATIC_BUILD" option is set to "OFF"). This greatly
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
42 speeds up the compilation. This is also required when building
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
43 packages for Linux distributions. Because using system libraries is
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
44 the default behavior, you just have to use:
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
45
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
46 # cd ~/OrthancBuild
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
47 # cmake -DCMAKE_BUILD_TYPE=Debug ~/Orthanc
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
48 # make
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
49
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
50
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
51 However, on some Linux distributions, it is still required to download
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
52 and static link against some third-party dependencies, e.g. when the
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
53 system-wide library is not shipped or is outdated. Because of
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
54 difference in the packaging of the various Linux distribution, it is
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
55 also sometimes required to fine-tune some options.
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
56
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
57 You will find below build instructions for specific Linux
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
58 distributions. Distributions tagged by "SUPPORTED" are tested by
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
59 Sébastien Jodogne. Distributions tagged by "CONTRIBUTED" come from
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
60 Orthanc users.
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
61
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
62
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
63 SUPPORTED - Debian Squeeze (6.0)
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
64 --------------------------------
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
65
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
66 # sudo apt-get install build-essential unzip cmake mercurial \
635
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
67 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \
640
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 638
diff changeset
68 libgoogle-glog-dev libpng-dev libgtest-dev \
635
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
69 libsqlite3-dev libssl-dev zlib1g-dev
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
70
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
71 # cmake -DALLOW_DOWNLOADS=ON \
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
72 -DUSE_SYSTEM_BOOST=OFF \
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
73 -DUSE_SYSTEM_DCMTK=OFF \
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
74 -DUSE_SYSTEM_MONGOOSE=OFF \
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
75 -DUSE_SYSTEM_JSONCPP=OFF \
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
76 ~/Orthanc
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
77
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
78
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
79 SUPPORTED - Debian Jessie/Sid
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
80 -----------------------------
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
81
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
82 # sudo apt-get install build-essential unzip cmake mercurial \
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
83 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
84 libgoogle-glog-dev libgtest-dev libpng-dev \
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
85 libsqlite3-dev libssl-dev zlib1g-dev \
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
86 libdcmtk2-dev libboost-all-dev libwrap0-dev
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
87
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
88 # cmake "-DDCMTK_LIBRARIES=wrap;oflog" \
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
89 -DALLOW_DOWNLOADS=ON \
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
90 -DUSE_SYSTEM_MONGOOSE=OFF \
638
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 636
diff changeset
91 -DUSE_GTEST_DEBIAN_SOURCE_PACKAGE=ON \
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
92 -DDCMTK_DICTIONARY_DIR:PATH=/usr/share/libdcmtk2 \
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
93 ~/Orthanc
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
94
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
95 Note: Have also a look at the official package:
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
96 http://anonscm.debian.org/viewvc/debian-med/trunk/packages/orthanc/trunk/debian/
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
97
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
98
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
99
635
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
100 SUPPORTED - Ubuntu 12.10
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
101 ------------------------
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
102
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
103 # sudo apt-get install build-essential unzip cmake mercurial \
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
104 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
105 libgoogle-glog-dev libgtest-dev libpng-dev \
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
106 libsqlite3-dev libssl-dev zlib1g-dev \
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
107 libdcmtk2-dev libboost-all-dev libwrap0-dev
635
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
108
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
109 # cmake "-DDCMTK_LIBRARIES=wrap;oflog" \
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
110 -DALLOW_DOWNLOADS=ON \
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
111 -DUSE_SYSTEM_MONGOOSE=OFF \
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
112 -DUSE_SYSTEM_JSONCPP=OFF \
638
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 636
diff changeset
113 -DUSE_GTEST_DEBIAN_SOURCE_PACKAGE=ON \
635
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
114 ~/Orthanc
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
115
cd3b60f6e7d4 refactoring cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 634
diff changeset
116
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
117
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
118 SUPPORTED - Fedora 18
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
119 ---------------------
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
120
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
121 # sudo yum install make automake gcc gcc-c++ python cmake \
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
122 boost-devel curl-devel dcmtk-devel glog-devel \
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
123 gtest-devel libpng-devel libsqlite3x-devel libuuid-devel \
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
124 mongoose-devel openssl-devel jsoncpp-devel lua-devel
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
125
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
126 # cmake ~/Orthanc
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
127
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
128 Note: Have also a look at the official package:
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
129 http://pkgs.fedoraproject.org/cgit/orthanc.git/tree/?h=f18
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
130
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
131
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
132
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
133
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
134
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
135 Other Linux distributions?
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
136 --------------------------
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
137
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
138 Please send us your build instructions (by a mail to
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
139 s.jodogne@gmail.com)!
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
140
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
141 You can find build instructions for Orthanc up to 0.7.0 on the
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
142 following Wiki page:
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
143 https://code.google.com/p/orthanc/wiki/LinuxCompilationUpTo070
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
144
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
145 These instructions will not work as such beyond Orthanc 0.7.0, but
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
146 they might give indications.
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
147
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
148
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
149
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
150
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
151 Using ccache
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
152 ============
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
153
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
154 Under Linux, you also have the opportunity to use "ccache" to
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
155 dramatically decrease the compilation time when rebuilding
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
156 Orthanc. This is especially useful for developers. To this end, you
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
157 would use:
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
158
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
159 # CC="ccache gcc" CXX="ccache g++" cmake ~/Orthanc [Other Options]