Mercurial > hg > orthanc
annotate LinuxCompilation.txt @ 2808:37583cd183ed
primitives to create jobs from plugins
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 05 Sep 2018 17:57:06 +0200 |
parents | fac458593ac8 |
children | 0e1755e5efd0 |
rev | line source |
---|---|
634 | 1 This file is a complement to "INSTALL", which contains instructions |
2086 | 2 that are specific to GNU/Linux. |
634 | 3 |
4 | |
2086 | 5 Static linking for GNU/Linux |
6 ============================ | |
634 | 7 |
2086 | 8 The most simple way of building Orthanc under GNU/Linux consists in |
634 | 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 | |
1208
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
12 automatically compile them. |
634 | 13 |
2086 | 14 This process should work on any GNU/Linux distribution, provided that a |
1208
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
15 C/C++ compiler ("build-essential" in Debian-based systems), the Python |
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
16 interpreter, CMake, the "unzip" system tool, and the development |
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
17 package for libuuid ("uuid-dev" in Debian) are installed. |
936
9c7f5fd8a7a2
build instructions for Mac OS X
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
875
diff
changeset
|
18 |
634 | 19 |
1208
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
20 We now make the assumption that Orthanc source code is placed in the |
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
21 folder "~/Orthanc" and that the binaries will be compiled to |
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
22 "~/OrthancBuild". To build binaries with debug information: |
634 | 23 |
24 # cd ~/OrthancBuild | |
25 # cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Debug ~/Orthanc | |
26 # make | |
27 # make doc | |
28 | |
29 | |
30 To build a release version: | |
31 | |
32 # cd ~/OrthancBuild | |
33 # cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release ~/Orthanc | |
34 # make | |
35 # make doc | |
36 | |
37 | |
1208
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
38 Note 1- When the "STATIC_BUILD" option is set to "ON", the build tool |
634 | 39 will not ask you the permission to download packages from the |
40 Internet. | |
41 | |
1208
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
42 Note 2- If the development package of libuuid was not installed when |
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
43 first invoking cmake, you will have to manually remove the build |
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
44 directory ("rm -rf ~/OrthancBuild") after installing this package, |
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
45 then run cmake again. |
6502517fd4af
improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1150
diff
changeset
|
46 |
1219
c4ae92753d57
note about doxygen
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1208
diff
changeset
|
47 Note 3- To build the documentation, you will have to install doxyen. |
c4ae92753d57
note about doxygen
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1208
diff
changeset
|
48 |
634 | 49 |
2086 | 50 Use system-wide libraries under GNU/Linux |
51 ========================================= | |
634 | 52 |
2086 | 53 Under GNU/Linux, by default, Orthanc links against the shared |
54 libraries of your system (the "STATIC_BUILD" option is set to | |
55 "OFF"). This greatly speeds up the compilation. This is also required | |
56 when building packages for GNU/Linux distributions. Because using | |
57 system libraries is the default behavior, you just have to use: | |
634 | 58 |
59 # cd ~/OrthancBuild | |
60 # cmake -DCMAKE_BUILD_TYPE=Debug ~/Orthanc | |
61 # make | |
62 | |
1219
c4ae92753d57
note about doxygen
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1208
diff
changeset
|
63 Note that to build the documentation, you will have to install doxyen. |
634 | 64 |
2086 | 65 However, on some GNU/Linux distributions, it is still required to |
66 download and static link against some third-party dependencies, | |
67 e.g. when the system-wide library is not shipped or is | |
68 outdated. Because of difference in the packaging of the various | |
69 GNU/Linux distribution, it is also sometimes required to fine-tune | |
70 some options. | |
634 | 71 |
2086 | 72 You will find below build instructions for specific GNU/Linux |
634 | 73 distributions. Distributions tagged by "SUPPORTED" are tested by |
74 Sébastien Jodogne. Distributions tagged by "CONTRIBUTED" come from | |
75 Orthanc users. | |
76 | |
77 | |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
78 SUPPORTED - Debian Jessie/Sid |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
79 ----------------------------- |
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 # 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
|
82 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \ |
1974
ea4b8975d064
no need for google log anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1622
diff
changeset
|
83 libgtest-dev libpng-dev libjpeg-dev \ |
678 | 84 libsqlite3-dev libssl-dev zlib1g-dev libdcmtk2-dev \ |
1077 | 85 libboost-all-dev libwrap0-dev libjsoncpp-dev libpugixml-dev |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
86 |
651 | 87 # cmake -DALLOW_DOWNLOADS=ON \ |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
88 -DUSE_SYSTEM_MONGOOSE=OFF \ |
2403
06536b4f30c0
rename USE_GOOGLE_TEST_DEBIAN_SOURCE_PACKAGE as USE_GOOGLE_TEST_DEBIAN_PACKAGE
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2402
diff
changeset
|
89 -DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \ |
1078 | 90 -DDCMTK_LIBRARIES=dcmjpls \ |
2709 | 91 -DCMAKE_BUILD_TYPE=Release \ |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
92 ~/Orthanc |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
93 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
94 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
|
95 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
|
96 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
97 |
1349 | 98 SUPPORTED - Ubuntu 12.04.5 LTS |
99 ------------------------------ | |
645
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
100 |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
101 # 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
|
102 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \ |
1622
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
103 libgtest-dev libpng-dev libsqlite3-dev libssl-dev libjpeg-dev \ |
1349 | 104 zlib1g-dev libdcmtk2-dev libboost1.48-all-dev libwrap0-dev \ |
105 libcharls-dev | |
645
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
106 |
1349 | 107 # cmake "-DDCMTK_LIBRARIES=boost_locale;CharLS;dcmjpls;wrap;oflog" \ |
645
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
108 -DALLOW_DOWNLOADS=ON \ |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
109 -DUSE_SYSTEM_MONGOOSE=OFF \ |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
110 -DUSE_SYSTEM_JSONCPP=OFF \ |
1046
00f9f36bcd94
on-the-fly conversion of JSON to XML according to HTTP Accept
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
936
diff
changeset
|
111 -DUSE_SYSTEM_PUGIXML=OFF \ |
2403
06536b4f30c0
rename USE_GOOGLE_TEST_DEBIAN_SOURCE_PACKAGE as USE_GOOGLE_TEST_DEBIAN_PACKAGE
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2402
diff
changeset
|
112 -DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \ |
2709 | 113 -DCMAKE_BUILD_TYPE=Release \ |
645
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
114 ~/Orthanc |
75af92b18e23
build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
640
diff
changeset
|
115 |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
116 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
117 |
1350
724dc4e17d38
build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1349
diff
changeset
|
118 SUPPORTED - Ubuntu 14.04 LTS |
724dc4e17d38
build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1349
diff
changeset
|
119 ---------------------------- |
724dc4e17d38
build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1349
diff
changeset
|
120 |
1552 | 121 # sudo apt-get install build-essential unzip cmake mercurial \ |
122 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \ | |
1622
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
123 libgtest-dev libpng-dev libsqlite3-dev libssl-dev libjpeg-dev \ |
1552 | 124 zlib1g-dev libdcmtk2-dev libboost-all-dev libwrap0-dev \ |
125 libcharls-dev libjsoncpp-dev libpugixml-dev | |
126 | |
1350
724dc4e17d38
build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1349
diff
changeset
|
127 # cmake -DALLOW_DOWNLOADS=ON \ |
2403
06536b4f30c0
rename USE_GOOGLE_TEST_DEBIAN_SOURCE_PACKAGE as USE_GOOGLE_TEST_DEBIAN_PACKAGE
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2402
diff
changeset
|
128 -DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \ |
1350
724dc4e17d38
build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1349
diff
changeset
|
129 -DUSE_SYSTEM_MONGOOSE=OFF \ |
724dc4e17d38
build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1349
diff
changeset
|
130 -DDCMTK_LIBRARIES=dcmjpls \ |
2709 | 131 -DCMAKE_BUILD_TYPE=Release \ |
1350
724dc4e17d38
build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1349
diff
changeset
|
132 ~/Orthanc |
724dc4e17d38
build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1349
diff
changeset
|
133 |
724dc4e17d38
build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1349
diff
changeset
|
134 |
724dc4e17d38
build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1349
diff
changeset
|
135 |
1415 | 136 SUPPORTED - Fedora 20-22 |
137 ------------------------ | |
138 | |
139 # sudo yum install unzip make automake gcc gcc-c++ python cmake \ | |
1974
ea4b8975d064
no need for google log anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1622
diff
changeset
|
140 boost-devel curl-devel dcmtk-devel \ |
1622
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
141 gtest-devel libpng-devel libsqlite3x-devel libuuid-devel jpeg-devel \ |
1415 | 142 mongoose-devel openssl-devel jsoncpp-devel lua-devel pugixml-devel |
143 | |
144 You will also have to install "gflags-devel" on Fedora 21&22: | |
145 | |
146 # sudo yum install gflags-devel | |
147 | |
148 # cmake "-DDCMTK_LIBRARIES=CharLS" \ | |
149 -DSYSTEM_MONGOOSE_USE_CALLBACKS=OFF \ | |
2709 | 150 -DCMAKE_BUILD_TYPE=Release \ |
1415 | 151 ~/Orthanc |
152 | |
153 Note: Have also a look at the official package: | |
154 http://pkgs.fedoraproject.org/cgit/orthanc.git/tree/?h=f18 | |
155 | |
156 | |
157 | |
1337 | 158 SUPPORTED - FreeBSD 10.1 |
159 ------------------------ | |
160 | |
1622
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
161 # pkg install jsoncpp pugixml lua51 curl googletest dcmtk cmake jpeg \ |
1974
ea4b8975d064
no need for google log anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1622
diff
changeset
|
162 e2fsprogs-libuuid boost-libs sqlite3 python libiconv |
1337 | 163 |
164 # cmake -DALLOW_DOWNLOADS=ON \ | |
165 -DUSE_SYSTEM_MONGOOSE=OFF \ | |
166 -DDCMTK_LIBRARIES="dcmdsig;charls;dcmjpls" \ | |
2709 | 167 -DCMAKE_BUILD_TYPE=Release \ |
1337 | 168 ~/Orthanc |
169 | |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
170 |
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
171 |
1622
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
172 SUPPORTED - CentOS 6 |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
173 -------------------- |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
174 |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
175 # yum install unzip make automake gcc gcc-c++ python cmake curl-devel \ |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
176 libpng-devel sqlite-devel libuuid-devel openssl-devel \ |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
177 lua-devel mercurial patch tar |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
178 |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
179 # cmake -DALLOW_DOWNLOADS=ON \ |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
180 -DUSE_SYSTEM_JSONCPP=OFF \ |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
181 -DUSE_SYSTEM_MONGOOSE=OFF \ |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
182 -DUSE_SYSTEM_PUGIXML=OFF \ |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
183 -DUSE_SYSTEM_SQLITE=OFF \ |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
184 -DUSE_SYSTEM_BOOST=OFF \ |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
185 -DUSE_SYSTEM_DCMTK=OFF \ |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
186 -DUSE_SYSTEM_GOOGLE_TEST=OFF \ |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
187 -DUSE_SYSTEM_LIBJPEG=OFF \ |
2709 | 188 -DCMAKE_BUILD_TYPE=Release \ |
1622
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
189 ~/Orthanc |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
190 |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
191 |
0b8e62bd9c48
build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1552
diff
changeset
|
192 |
2086 | 193 Other GNU/Linux distributions? |
194 ------------------------------ | |
634 | 195 |
196 Please send us your build instructions (by a mail to | |
197 s.jodogne@gmail.com)! | |
198 | |
199 You can find build instructions for Orthanc up to 0.7.0 on the | |
200 following Wiki page: | |
201 https://code.google.com/p/orthanc/wiki/LinuxCompilationUpTo070 | |
202 | |
203 These instructions will not work as such beyond Orthanc 0.7.0, but | |
204 they might give indications. | |
205 | |
206 | |
207 | |
208 | |
209 Using ccache | |
210 ============ | |
211 | |
2086 | 212 Under GNU/Linux, you also have the opportunity to use "ccache" to |
634 | 213 dramatically decrease the compilation time when rebuilding |
214 Orthanc. This is especially useful for developers. To this end, you | |
215 would use: | |
216 | |
636
9ac1e8383877
build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
635
diff
changeset
|
217 # CC="ccache gcc" CXX="ccache g++" cmake ~/Orthanc [Other Options] |