Mercurial > hg > orthanc
annotate LinuxCompilation.txt @ 910:28a52982196e plugins
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 20 Jun 2014 13:38:19 +0200 |
parents | d21031a7a6e4 |
children | 9c7f5fd8a7a2 |
rev | line source |
---|---|
634 | 1 This file is a complement to "INSTALL", which contains instructions |
2 that are specific to Linux. | |
3 | |
4 | |
5 Static linking for Linux | |
6 ======================== | |
7 | |
8 The most simple way of building Orthanc under Linux consists in | |
9 statically linking against all the third-party dependencies. In this | |
10 case, the system-wide libraries will not be used. The build tool | |
11 (CMake) will download the sources of all the required packages and | |
12 automatically compile them. This process should work on all the Linux | |
13 distributions. | |
14 | |
15 | |
16 To build binaries with debug information: | |
17 | |
18 # cd ~/OrthancBuild | |
19 # cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Debug ~/Orthanc | |
20 # make | |
21 # make doc | |
22 | |
23 | |
24 To build a release version: | |
25 | |
26 # cd ~/OrthancBuild | |
27 # cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release ~/Orthanc | |
28 # make | |
29 # make doc | |
30 | |
31 | |
32 Note: When the "STATIC_BUILD" option is set to "ON", the build tool | |
33 will not ask you the permission to download packages from the | |
34 Internet. | |
35 | |
36 | |
37 Use system-wide libraries under Linux | |
38 ===================================== | |
39 | |
40 Under Linux, by default, Orthanc links against the shared libraries of | |
41 your system (the "STATIC_BUILD" option is set to "OFF"). This greatly | |
42 speeds up the compilation. This is also required when building | |
43 packages for Linux distributions. Because using system libraries is | |
44 the default behavior, you just have to use: | |
45 | |
46 # cd ~/OrthancBuild | |
47 # cmake -DCMAKE_BUILD_TYPE=Debug ~/Orthanc | |
48 # make | |
49 | |
50 | |
51 However, on some Linux distributions, it is still required to download | |
52 and static link against some third-party dependencies, e.g. when the | |
53 system-wide library is not shipped or is outdated. Because of | |
54 difference in the packaging of the various Linux distribution, it is | |
55 also sometimes required to fine-tune some options. | |
56 | |
57 You will find below build instructions for specific Linux | |
58 distributions. Distributions tagged by "SUPPORTED" are tested by | |
59 Sébastien Jodogne. Distributions tagged by "CONTRIBUTED" come from | |
60 Orthanc users. | |
61 | |
62 | |
677 | 63 SUPPORTED - Debian Squeeze (6.x) |
634 | 64 -------------------------------- |
65 | |
66 # sudo apt-get install build-essential unzip cmake mercurial \ | |
635 | 67 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \ |
640 | 68 libgoogle-glog-dev libpng-dev libgtest-dev \ |
635 | 69 libsqlite3-dev libssl-dev zlib1g-dev |
634 | 70 |
71 # cmake -DALLOW_DOWNLOADS=ON \ | |
72 -DUSE_SYSTEM_BOOST=OFF \ | |
73 -DUSE_SYSTEM_DCMTK=OFF \ | |
74 -DUSE_SYSTEM_MONGOOSE=OFF \ | |
75 -DUSE_SYSTEM_JSONCPP=OFF \ | |
875 | 76 -DENABLE_JPEG=OFF \ |
77 -DENABLE_JPEG_LOSSLESS=OFF \ | |
634 | 78 ~/Orthanc |
79 | |
80 | |
677 | 81 SUPPORTED - Debian Wheezy (7.x) |
82 ------------------------------- | |
83 | |
84 # sudo apt-get install build-essential unzip cmake mercurial \ | |
85 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \ | |
86 libgtest-dev libpng-dev libsqlite3-dev \ | |
87 libssl-dev zlib1g-dev libdcmtk2-dev \ | |
678 | 88 libboost-all-dev libwrap0-dev libjsoncpp-dev |
677 | 89 |
90 # cmake -DALLOW_DOWNLOADS=ON \ | |
91 -DUSE_SYSTEM_GOOGLE_LOG=OFF \ | |
92 -DUSE_SYSTEM_MONGOOSE=OFF \ | |
93 -DUSE_GTEST_DEBIAN_SOURCE_PACKAGE=ON \ | |
875 | 94 -DENABLE_JPEG=OFF \ |
95 -DENABLE_JPEG_LOSSLESS=OFF \ | |
677 | 96 ~/Orthanc |
97 | |
98 | |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
99 SUPPORTED - Debian Jessie/Sid |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
100 ----------------------------- |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
101 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
102 # 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
|
103 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
|
104 libgoogle-glog-dev libgtest-dev libpng-dev \ |
678 | 105 libsqlite3-dev libssl-dev zlib1g-dev libdcmtk2-dev \ |
106 libboost-all-dev libwrap0-dev libjsoncpp-dev | |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
107 |
651 | 108 # cmake -DALLOW_DOWNLOADS=ON \ |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
109 -DUSE_SYSTEM_MONGOOSE=OFF \ |
638 | 110 -DUSE_GTEST_DEBIAN_SOURCE_PACKAGE=ON \ |
875 | 111 -DENABLE_JPEG=OFF \ |
112 -DENABLE_JPEG_LOSSLESS=OFF \ | |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
113 ~/Orthanc |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
114 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
115 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
|
116 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
|
117 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
118 |
645
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
119 SUPPORTED - Ubuntu 12.04 LTS |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
120 ---------------------------- |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
121 |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
122 # sudo apt-get install build-essential unzip cmake mercurial \ |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
123 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \ |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
124 libgtest-dev libpng-dev libsqlite3-dev libssl-dev \ |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
125 zlib1g-dev libdcmtk2-dev libboost-all-dev libwrap0-dev |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
126 |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
127 # cmake "-DDCMTK_LIBRARIES=wrap;oflog" \ |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
128 -DALLOW_DOWNLOADS=ON \ |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
129 -DUSE_SYSTEM_MONGOOSE=OFF \ |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
130 -DUSE_SYSTEM_JSONCPP=OFF \ |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
131 -DUSE_SYSTEM_GOOGLE_LOG=OFF \ |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
132 -DUSE_GTEST_DEBIAN_SOURCE_PACKAGE=ON \ |
875 | 133 -DENABLE_JPEG=OFF \ |
134 -DENABLE_JPEG_LOSSLESS=OFF \ | |
645
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
135 ~/Orthanc |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
136 |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
137 |
635 | 138 SUPPORTED - Ubuntu 12.10 |
139 ------------------------ | |
140 | |
141 # sudo apt-get install build-essential unzip cmake mercurial \ | |
142 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \ | |
143 libgoogle-glog-dev libgtest-dev libpng-dev \ | |
144 libsqlite3-dev libssl-dev zlib1g-dev \ | |
842 | 145 libdcmtk2-dev libboost-all-dev libwrap0-dev libcharls-dev |
146 | |
854
ff530685e46a
fast version of image copy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
842
diff
changeset
|
147 With JPEG: |
635 | 148 |
842 | 149 # cmake "-DDCMTK_LIBRARIES=CharLS;dcmjpls;wrap;oflog" \ |
150 -DALLOW_DOWNLOADS=ON \ | |
151 -DUSE_SYSTEM_MONGOOSE=OFF \ | |
152 -DUSE_SYSTEM_JSONCPP=OFF \ | |
153 -DUSE_GTEST_DEBIAN_SOURCE_PACKAGE=ON \ | |
154 ~/Orthanc | |
155 | |
156 | |
854
ff530685e46a
fast version of image copy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
842
diff
changeset
|
157 Without JPEG: |
842 | 158 |
159 # cmake "-DDCMTK_LIBRARIES=wrap;oflog" \ | |
635 | 160 -DALLOW_DOWNLOADS=ON \ |
161 -DUSE_SYSTEM_MONGOOSE=OFF \ | |
162 -DUSE_SYSTEM_JSONCPP=OFF \ | |
638 | 163 -DUSE_GTEST_DEBIAN_SOURCE_PACKAGE=ON \ |
854
ff530685e46a
fast version of image copy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
842
diff
changeset
|
164 -DENABLE_JPEG=OFF \ |
ff530685e46a
fast version of image copy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
842
diff
changeset
|
165 -DENABLE_JPEG_LOSSLESS=OFF \ |
635 | 166 ~/Orthanc |
167 | |
168 | |
700 | 169 SUPPORTED - Ubuntu 13.10 |
170 ------------------------ | |
171 | |
172 # sudo apt-get install build-essential unzip cmake mercurial \ | |
173 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \ | |
174 libgoogle-glog-dev libgtest-dev libpng-dev \ | |
175 libsqlite3-dev libssl-dev zlib1g-dev \ | |
176 libdcmtk2-dev libboost-all-dev libwrap0-dev libjsoncpp-dev | |
177 | |
178 # cmake "-DDCMTK_LIBRARIES=wrap;oflog" \ | |
179 -DALLOW_DOWNLOADS=ON \ | |
180 -DUSE_SYSTEM_MONGOOSE=OFF \ | |
181 -DUSE_GTEST_DEBIAN_SOURCE_PACKAGE=ON \ | |
875 | 182 -DENABLE_JPEG=OFF \ |
183 -DENABLE_JPEG_LOSSLESS=OFF \ | |
700 | 184 ~/Orthanc |
185 | |
186 | |
634 | 187 |
736 | 188 SUPPORTED - Fedora 18/19/20 |
189 --------------------------- | |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
190 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
191 # 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
|
192 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
|
193 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
|
194 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
|
195 |
875 | 196 # cmake -DENABLE_JPEG=OFF \ |
197 -DENABLE_JPEG_LOSSLESS=OFF \ | |
198 ~/Orthanc | |
199 | |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
200 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
|
201 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
|
202 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
203 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
204 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
205 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
206 |
634 | 207 Other Linux distributions? |
208 -------------------------- | |
209 | |
210 Please send us your build instructions (by a mail to | |
211 s.jodogne@gmail.com)! | |
212 | |
213 You can find build instructions for Orthanc up to 0.7.0 on the | |
214 following Wiki page: | |
215 https://code.google.com/p/orthanc/wiki/LinuxCompilationUpTo070 | |
216 | |
217 These instructions will not work as such beyond Orthanc 0.7.0, but | |
218 they might give indications. | |
219 | |
220 | |
221 | |
222 | |
223 Using ccache | |
224 ============ | |
225 | |
226 Under Linux, you also have the opportunity to use "ccache" to | |
227 dramatically decrease the compilation time when rebuilding | |
228 Orthanc. This is especially useful for developers. To this end, you | |
229 would use: | |
230 | |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
231 # CC="ccache gcc" CXX="ccache g++" cmake ~/Orthanc [Other Options] |