271 lines
8.7 KiB
Plaintext
271 lines
8.7 KiB
Plaintext
This file is a complement to "INSTALL", which contains instructions
|
|
that are specific to GNU/Linux.
|
|
|
|
|
|
Static linking for GNU/Linux
|
|
============================
|
|
|
|
The most simple way of building Orthanc under GNU/Linux consists in
|
|
statically linking against all the third-party dependencies. In this
|
|
case, the system-wide libraries will not be used. The build tool
|
|
(CMake) will download the sources of all the required packages and
|
|
automatically compile them.
|
|
|
|
This process should work on any GNU/Linux distribution, provided that a
|
|
C/C++ compiler ("build-essential" in Debian-based systems), the Python
|
|
interpreter, CMake, the "unzip" system tool, and the development
|
|
package for libuuid ("uuid-dev" in Debian) are installed.
|
|
|
|
|
|
We now make the assumption that Orthanc source code is placed in the
|
|
folder "~/Orthanc" and that the binaries will be compiled to
|
|
"~/Orthanc/Build". To build binaries with debug information:
|
|
|
|
# cd ./Build
|
|
# cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Debug ../OrthancServer/
|
|
# make
|
|
# make doc
|
|
|
|
|
|
To build a release version:
|
|
|
|
# cd ./Build
|
|
# cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release ../OrthancServer/
|
|
# make
|
|
# make doc
|
|
|
|
|
|
Note 1- When the "STATIC_BUILD" option is set to "ON", the build tool
|
|
will not ask you the permission to download packages from the
|
|
Internet.
|
|
|
|
Note 2- If the development package of libuuid was not installed when
|
|
first invoking cmake, you will have to manually remove the build
|
|
directory ("rm -rf ~/Orthanc/Build") after installing this package,
|
|
then run cmake again.
|
|
|
|
Note 3- To build the documentation, you will have to install doxygen.
|
|
|
|
|
|
Use system-wide libraries under GNU/Linux
|
|
=========================================
|
|
|
|
Under GNU/Linux, by default, Orthanc links against the shared
|
|
libraries of your system (the "STATIC_BUILD" option is set to
|
|
"OFF"). This greatly speeds up the compilation. This is also required
|
|
when building packages for GNU/Linux distributions. Because using
|
|
system libraries is the default behavior, you just have to use:
|
|
|
|
# cd ./Build
|
|
# cmake -DCMAKE_BUILD_TYPE=Debug ../OrthancServer
|
|
# make
|
|
|
|
Note that to build the documentation, you will have to install doxygen.
|
|
|
|
However, on some GNU/Linux distributions, it is still required to
|
|
download and static link against some third-party dependencies,
|
|
e.g. when the system-wide library is not shipped or is
|
|
outdated. Because of difference in the packaging of the various
|
|
GNU/Linux distribution, it is also sometimes required to fine-tune
|
|
some options.
|
|
|
|
You will find below build instructions for specific GNU/Linux
|
|
distributions. Distributions tagged by "SUPPORTED" are tested by
|
|
Sébastien Jodogne. Distributions tagged by "CONTRIBUTED" come from
|
|
Orthanc users.
|
|
|
|
|
|
SUPPORTED - Debian Jessie/Sid
|
|
-----------------------------
|
|
|
|
# sudo apt-get install build-essential unzip cmake mercurial patch \
|
|
uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \
|
|
libgtest-dev libpng-dev libjpeg-dev \
|
|
libsqlite3-dev libssl-dev zlib1g-dev libdcmtk2-dev \
|
|
libboost-all-dev libwrap0-dev libjsoncpp-dev libpugixml-dev
|
|
|
|
# cd ./Build
|
|
# cmake -DALLOW_DOWNLOADS=ON \
|
|
-DUSE_SYSTEM_CIVETWEB=OFF \
|
|
-DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \
|
|
-DDCMTK_LIBRARIES=dcmjpls \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
../OrthancServer/
|
|
# make
|
|
|
|
Note: Have also a look at the official package:
|
|
http://anonscm.debian.org/viewvc/debian-med/trunk/packages/orthanc/trunk/debian/
|
|
|
|
|
|
SUPPORTED - Ubuntu 14.04 LTS
|
|
----------------------------
|
|
|
|
# sudo apt-get install build-essential unzip cmake mercurial patch \
|
|
uuid-dev libcurl4-openssl-dev \
|
|
libgtest-dev libpng-dev libsqlite3-dev libssl-dev libjpeg-dev \
|
|
zlib1g-dev libdcmtk2-dev libboost-all-dev libwrap0-dev \
|
|
libcharls-dev libjsoncpp-dev libpugixml-dev
|
|
|
|
# cd ./Build
|
|
# cmake -DALLOW_DOWNLOADS=ON \
|
|
-DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \
|
|
-DUSE_SYSTEM_BOOST=OFF \
|
|
-DUSE_SYSTEM_CIVETWEB=OFF \
|
|
-DUSE_SYSTEM_DCMTK=OFF \
|
|
-DUSE_SYSTEM_JSONCPP=OFF \
|
|
-DUSE_SYSTEM_LUA=OFF \
|
|
-DCIVETWEB_OPENSSL_API=1.0 \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
../OrthancServer/
|
|
# make
|
|
|
|
|
|
SUPPORTED - Ubuntu 16.04 LTS
|
|
----------------------------
|
|
|
|
# sudo apt-get install build-essential unzip cmake mercurial patch \
|
|
uuid-dev libcurl4-openssl-dev liblua5.3-dev \
|
|
libgtest-dev libpng-dev libsqlite3-dev libssl-dev libjpeg-dev \
|
|
zlib1g-dev libdcmtk-dev libboost-all-dev libwrap0-dev \
|
|
libcharls-dev libjsoncpp-dev libpugixml-dev tzdata
|
|
|
|
# cd ./Build
|
|
# cmake -DALLOW_DOWNLOADS=ON \
|
|
-DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \
|
|
-DUSE_SYSTEM_CIVETWEB=OFF \
|
|
-DCIVETWEB_OPENSSL_API=1.0 \
|
|
-DDCMTK_LIBRARIES=dcmjpls \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
../OrthancServer/
|
|
# make
|
|
|
|
|
|
NB: Instructions to use clang and ninja:
|
|
|
|
# sudo apt-get install ninja-build
|
|
# cd ./Build
|
|
# CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake -G Ninja \
|
|
-DALLOW_DOWNLOADS=ON \
|
|
-DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \
|
|
-DUSE_SYSTEM_CIVETWEB=OFF \
|
|
-DDCMTK_LIBRARIES=dcmjpls \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
../OrthancServer/
|
|
# ninja
|
|
|
|
|
|
SUPPORTED - Ubuntu 18.04 LTS
|
|
----------------------------
|
|
|
|
# sudo apt-get install build-essential unzip cmake mercurial patch \
|
|
uuid-dev libcurl4-openssl-dev liblua5.3-dev \
|
|
libgtest-dev libpng-dev libsqlite3-dev libssl-dev libjpeg-dev \
|
|
zlib1g-dev libdcmtk-dev libboost-all-dev libwrap0-dev \
|
|
libcharls-dev libjsoncpp-dev libpugixml-dev locales protobuf-compiler
|
|
|
|
# cd ./Build
|
|
# cmake -DALLOW_DOWNLOADS=ON \
|
|
-DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \
|
|
-DUSE_SYSTEM_CIVETWEB=OFF \
|
|
-DDCMTK_LIBRARIES=dcmjpls \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
../OrthancServer/
|
|
# make
|
|
|
|
|
|
NB: A suitable environment for locales can be setup as follows:
|
|
|
|
# echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
|
|
# locale-gen
|
|
|
|
|
|
|
|
SUPPORTED - Fedora 20-22
|
|
------------------------
|
|
|
|
# sudo yum install unzip make automake gcc gcc-c++ python cmake \
|
|
boost-devel curl-devel dcmtk-devel \
|
|
gtest-devel libpng-devel libsqlite3x-devel libuuid-devel jpeg-devel \
|
|
mongoose-devel openssl-devel jsoncpp-devel lua-devel pugixml-devel
|
|
|
|
You will also have to install "gflags-devel" on Fedora 21&22:
|
|
|
|
# sudo yum install gflags-devel
|
|
|
|
# cd ./Build
|
|
# cmake "-DDCMTK_LIBRARIES=CharLS" \
|
|
-DCIVETWEB_OPENSSL_API=1.0 \
|
|
-DENABLE_CIVETWEB=OFF \
|
|
-DSYSTEM_MONGOOSE_USE_CALLBACKS=OFF \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
../OrthancServer/
|
|
# make
|
|
|
|
Note: Have also a look at the official package:
|
|
http://pkgs.fedoraproject.org/cgit/orthanc.git/tree/?h=f18
|
|
|
|
|
|
|
|
SUPPORTED - FreeBSD 10.1
|
|
------------------------
|
|
|
|
# pkg install jsoncpp pugixml lua51 curl googletest dcmtk cmake jpeg \
|
|
e2fsprogs-libuuid boost-libs sqlite3 python libiconv
|
|
|
|
# cd ./Build
|
|
# cmake -DALLOW_DOWNLOADS=ON \
|
|
-DUSE_SYSTEM_CIVETWEB=OFF \
|
|
-DDCMTK_LIBRARIES="dcmdsig;charls;dcmjpls" \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
../OrthancServer/
|
|
# make
|
|
|
|
|
|
|
|
Other GNU/Linux distributions?
|
|
------------------------------
|
|
|
|
Don't hesitate to send us your build instructions (by a mail to
|
|
s.jodogne@orthanc-labs.com)!
|
|
|
|
The file "./Resources/OldBuildInstructions.txt" contains build
|
|
instructions that once worked for older versions of Orthanc or older
|
|
GNU/Linux distributions, but are not tested anymore. Even if they may
|
|
not work anymore as such, they can serve as a basis.
|
|
|
|
You can find build instructions for Orthanc up to 0.7.0 on the
|
|
following Wiki page:
|
|
https://orthanc.uclouvain.be/book/faq/compiling-old.html
|
|
|
|
These instructions will not work as such beyond Orthanc 0.7.0, but
|
|
they might give indications.
|
|
|
|
|
|
|
|
Additional information
|
|
----------------------
|
|
|
|
* It has been reported that distributions coming with Boost >= 1.70.0
|
|
might need the option "-DBoost_NO_BOOST_CMAKE=ON" to be added to the
|
|
"cmake" command line.
|
|
https://groups.google.com/d/msg/orthanc-users/nXq2qOndw9c/0PGnaOqiAgAJ
|
|
|
|
* Starting with Orthanc 1.10.0, if you use a distribution with an old
|
|
version of gcc (typically gcc 4.8 on CentOS), you might have to add
|
|
the option "-DCMAKE_CXX_FLAGS=-std=c++11" when invoking the "cmake"
|
|
command line. This flag was previously automatically added, but this
|
|
feature was removed according to the following discussion:
|
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1000222
|
|
|
|
|
|
|
|
Using ccache
|
|
============
|
|
|
|
Under GNU/Linux, you also have the opportunity to use "ccache" to
|
|
dramatically decrease the compilation time when rebuilding
|
|
Orthanc. This is especially useful for developers. To this end, you
|
|
would use:
|
|
|
|
# CC="ccache gcc" CXX="ccache g++" cmake ../OrthancServer/ [Other Options]
|