0024722: Move functionality of WOK command wgendoc to OCCT tool gendoc
[occt.git] / dox / dev_guides / building / 3rdparty / 3rdparty_linux.md
1 \feff Building 3rd-party libraries on Linux {#occt_dev_guides__building_3rdparty_linux}
2 =========
3
4 @tableofcontents 
5
6 @section dev_guides__building_3rdparty_linux_1 Introduction
7
8 This document presents additional guidelines for building third-party 
9 products used by Open CASCADE Technology and samples on Linux platform. 
10
11 The links for downloading the third-party products are available on the web site 
12 of OPEN CASCADE SAS at 
13 http://www.opencascade.org/getocc/require/. 
14
15 There are two types of third-party products, which are  necessary to build OCCT: 
16   
17 * Mandatory  products: Tcl/Tk 8.5 - 8.6 and  FreeType 2.4.10 - 2.4.11
18 * Optional  products: TBB 3.x - 4.x, gl2ps 1.3.5 - 1.3.8, FreeImage 3.14.1 - 3.15.4
19
20 @section dev_guides__building_3rdparty_linux_2 Building Mandatory Third-party Products
21
22 @subsection dev_guides__building_3rdparty_linux_2_1 Tcl/Tk 
23
24 Tcl/Tk is required for DRAW test harness. 
25
26 @subsubsection dev_guides__building_3rdparty_linux_2_1_1 Installation from binaries:
27
28 It is possible to download ready-to-install binaries from 
29 http://www.activestate.com/activetcl/downloads
30
31 1. Download the binaries archive and unpack them to some  TCL_SRC_DIR. 
32 2. Enter the directory TCL_SRC_DIR.
33
34        cd TCL_SRC_DIR
35
36 3. Run the install command 
37
38        install.sh
39     
40    and follow instructions. 
41
42 @subsubsection dev_guides__building_3rdparty_linux_2_1_2 Installation from sources: Tcl
43   
44 Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
45   
46 1. Enter the unix sub-directory of the directory where the source  files of Tcl are located (TCL_SRC_DIR). 
47
48        cd TCL_SRC_DIR/unix   
49
50 2. Run the configure command
51
52        configure --enable-gcc  --enable-shared --enable-threads --prefix=TCL_INSTALL_DIR   
53
54    For a 64 bit platform also add --enable-64bit option to the  command line. 
55   
56 3. If the configure command has finished successfully, start  the building process 
57   
58        make   
59
60 4. If building is finished successfully, start the installation of Tcl. 
61    All binary and service files of the product will be copied to the directory defined by TCL_INSTALL_DIR 
62
63        make install   
64
65 @subsubsection dev_guides__building_3rdparty_linux_2_1_3 Installation from sources: Tk
66   
67 Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
68   
69 1. Enter the unix sub-directory of the directory where the source  files of Tk are located (TK_SRC_DIR). 
70
71        cd TK_SRC_DIR/unix   
72
73 2. Run the configure command, where TCL_LIB_DIR is  TCL_INSTALL_DIR/lib 
74
75        configure --enable-gcc  --enable-shared --enable-threads --with-tcl=TCL_LIB_DIR  --prefix=TK_INSTALL_DIR   
76
77    where TCL_LIB_DIR is TCL_INSTALL_DIR/lib 
78
79    For a 64 bit platform also add --enable-64bit option to the  command line. 
80
81 3. If the configure command has finished successfully, start  the building process 
82
83        make   
84
85 4. If building has finished successfully, start the installation of Tk. 
86    All binary and service files of the product will be copied 
87    to the directory defined by TK_INSTALL_DIR (usually  TK_INSTALL_DIR is TCL_INSTALL_DIR) 
88
89        make install   
90
91 @subsection dev_guides__building_3rdparty_linux_2_2 FreeType
92
93 FreeType is required for display of text in 3D viewer. 
94 Download the necessary archive from http://sourceforge.net/projects/freetype/files/ and unpack it. 
95   
96 1. Enter the directory where the source files of FreeType  are located (FREETYPE_SRC_DIR). 
97
98        cd FREETYPE_SRC_DIR   
99
100 2. Run the configure command 
101   
102        configure  --prefix=FREETYPE_INSTALL_DIR   
103
104    For a 64 bit platform also add CFLAGS='-m64 -fPIC'  CPPFLAGS='-m64 -fPIC' option to the command line. 
105     
106 3. If the configure command has finished successfully, start  the building process 
107
108        make   
109
110 4. If building has finished successfully, start the installation of FreeType. 
111    All binary and service files of the product will be copied to the directory defined by FREETYPE_INSTALL_DIR 
112     
113        make install   
114
115 @section dev_guides__building_3rdparty_linux_3 Building Optional Third-party Products
116     
117 @subsection dev_guides__building_3rdparty_linux_3_1 TBB
118
119 This third-party product is  installed with binaries from the archive that can be downloaded from http://threadingbuildingblocks.org. 
120 Go to \"Downloads page\", find the  release version you need and pick the archive for Linux  platform. 
121 To install, unpack the downloaded archive of TBB product.
122
123 @subsection dev_guides__building_3rdparty_linux_3_2 gl2ps
124
125 Download the necessary archive from http://geuz.org/gl2ps/ and unpack it.
126   
127 1. Install or build cmake product from source file. 
128 2. Start cmake in GUI mode with the directory where the source files of gl2ps are located:
129
130        ccmake GL2PS_SRC_DIR   
131
132    a. Press [c] to make the  initial configuration 
133    b. Define the necessary options  CMAKE_INSTALL_PREFIX 
134    c. Press [c] to make the final  configuration 
135    d. Press [g] to generate  Makefile and exit 
136
137    or just run the following command: 
138
139        cmake  –DCMAKE_INSTALL_PREFIX=GL2PS_INSTALL_DIR –DCMAKE_BUILD_TYPE=Release   
140
141 3. Start building of gl2ps 
142
143        make   
144
145 4. Start the installation of gl2ps. Binaries will be  installed according to the CMAKE_INSTALL_PREFIX option 
146
147        make install   
148
149 @subsection dev_guides__building_3rdparty_linux_3_3 FreeImage
150
151 Download the necessary archive from http://sourceforge.net/projects/freeimage/files/Source%20Distribution/
152 and unpack it. The directory with unpacked sources is  further referred to as FREEIMAGE_SRC_DIR. 
153   
154 1. Modify FREEIMAGE_SRC_DIR/Source/OpenEXR/Imath/ImathMatrix.h: 
155    In line 60 insert the following: 
156
157        #include string.h   
158
159 2. Enter the directory where the source files of FreeImage are located (FREEIMAGE_SRC_DIR). 
160   
161        cd FREEIMAGE_SRC_DIR   
162
163 3. Run the building process 
164   
165        make   
166
167 4. Run the installation process 
168
169    a. If you have permissions to write to /usr/include and /usr/lib directories then run the following command: 
170
171           make install   
172    b. If you don’t have permissions to write to /usr/include and 
173        /usr/lib directories then you need to modify the file FREEIMAGE_SRC_DIR/Makefile.gnu: 
174   
175       Change lines 7-9 from:
176   
177           DESTDIR ?= /   
178           INCDIR  ?= $(DESTDIR)/usr/include   
179           INSTALLDIR  ?= $(DESTDIR)/usr/lib   
180
181       to: 
182
183           DESTDIR  ?= $(DESTDIR)   
184           INCDIR  ?= $(DESTDIR)/include   
185           INSTALLDIR  ?= $(DESTDIR)/lib   
186
187       Change lines 65-67 from: 
188
189           install  -m 644 -o root -g root $(HEADER) $(INCDIR)   
190           install  -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)   
191           install  -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)   
192   
193       to:
194
195           install  -m 755 $(HEADER) $(INCDIR)   
196           install  -m 755 $(STATICLIB) $(INSTALLDIR)   
197           install  -m 755 $(SHAREDLIB) $(INSTALLDIR)
198
199       Change line 70 from: 
200
201           ldconfig
202
203       to:
204   
205           \#ldconfig   
206     
207    Then run the installation process by the following command: 
208
209         make DESTDIR=FREEIMAGE_INSTALL_DIR  install   
210
211 5. Clean the temporary files
212   
213         make clean   
214
215 @subsection dev_guides__building_3rdparty_linux_3_4 OpenCL ICD Loader
216
217 If you have OpenCL SDK (one provided by Apple, AMD, NVIDIA, Intel, or other 
218 vendor) installed on your system, you should find OpenCL headers and
219 libraries required for building OCCT inside that SDK.
220
221 Alternatively, you can use OpenCL ICD (Installable Client Driver) Loader 
222 provided by Khronos group. The following describes steps used to build OpenCL 
223 ICD Loader version 1.2.11.0.
224
225 1. Download OpenCL ICD Loader sources archive and OpenCL header files from 
226    Khronos OpenCL Registry
227    http://www.khronos.org/registry/cl/
228
229 2. Unpack the archive and put headers in **inc/CL** sub-folder
230
231 3. Print **make** in root of unpacked archive to compile OpenCL libraries.
232
233 4. Create installation folder for OpenCL IDL Loader package and put there:
234
235     1. OpenCL header files in **include/CL** subfolder
236
237     2. **libOpenCL.so** (generated in **bin** subfolder of source package) in **lib** subfolder
238
239 @section dev_guides__building_3rdparty_linux_4 Installation From Official Repositories
240
241 @subsection dev_guides__building_3rdparty_linux_4_1 Debian-based distributives
242
243 All 3rd-party products required for building of  OCCT could be installed 
244 from official repositories. You may install them from  console using apt-get utility: 
245
246     sudo apt-get install \   
247     tcllib tklib tcl-dev tk-dev \   
248     libfreetype-dev \   
249     libxt-dev libxmu-dev \   
250     libgl1-mesa-dev \   
251     libfreeimage-dev \   
252     libtbb-dev \   
253     libgl2ps-dev   
254   
255 To launch WOK-prebuilt binaries you need install C shell and  32-bit libraries on x86_64 distributives: 
256   
257     sudo apt-get install \   
258     csh \   
259     libstdc++5:i386 libxt6:i386   
260
261 Any compliant C++ compiler is required for building anyway: 
262   
263     sudo apt-get install \   
264     g++