caa3ec0700326f1a620e07977ae415aac5bd2d36
[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.com/content/3rd-party-components. 
14
15 There are two types of third-party products, which are  necessary to build OCCT: 
16   
17 * Mandatory  products: 
18         * Tcl/Tk 8.5 - 8.6;  
19         * FreeType 2.4.10 - 2.5.3;
20 * Optional  products: 
21         * TBB 3.x - 4.x;
22         * gl2ps 1.3.5 - 1.3.8;
23         * FreeImage 3.14.1 - 3.16.0;
24         * VTK 6.1.0.
25
26 @section dev_guides__building_3rdparty_linux_2 Building Mandatory Third-party Products
27
28 @subsection dev_guides__building_3rdparty_linux_2_1 Tcl/Tk 
29
30 Tcl/Tk is required for DRAW test harness. 
31
32 @subsubsection dev_guides__building_3rdparty_linux_2_1_2 Installation from sources: Tcl
33   
34 Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
35   
36 1. Enter the unix sub-directory of the directory where the Tcl source  files are located <i>(TCL_SRC_DIR)</i>. 
37
38        cd TCL_SRC_DIR/unix   
39
40 2. Run the *configure* command:
41
42        configure --enable-gcc  --enable-shared --enable-threads --prefix=TCL_INSTALL_DIR   
43
44    For a 64 bit platform also add <i>--enable-64bit</i> option to the command line. 
45   
46 3. If the configure command has finished successfully, start  the building process:
47   
48        make   
49
50 4. If building is finished successfully, start the installation of Tcl. 
51    All binary and service files of the product will be copied to the directory defined by *TCL_INSTALL_DIR* 
52
53        make install   
54
55 @subsubsection dev_guides__building_3rdparty_linux_2_1_3 Installation from sources: Tk
56   
57 Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
58   
59 1. Enter the unix sub-directory of the directory where the Tk source files are located <i>(TK_SRC_DIR)</i> 
60
61        cd TK_SRC_DIR/unix   
62
63 2. Run the configure command, where <i>TCL_LIB_DIR</i> is *TCL_INSTALL_DIR/lib*.
64
65        configure --enable-gcc  --enable-shared --enable-threads --with-tcl=TCL_LIB_DIR  --prefix=TK_INSTALL_DIR   
66
67    For a 64 bit platform also add <i>--enable-64bit</i> option to the  command line. 
68
69 3. If the configure command has finished successfully, start the building process: 
70
71        make   
72
73 4. If the building has finished successfully, start the installation of Tk. 
74    All binary and service files of the product will be copied 
75    to the directory defined by *TK_INSTALL_DIR* (usually it is *TCL_INSTALL_DIR*) 
76
77        make install   
78
79 @subsection dev_guides__building_3rdparty_linux_2_2 FreeType
80
81 FreeType is required for text display in the 3D viewer. 
82 Download the necessary archive from http://sourceforge.net/projects/freetype/files/ and unpack it. 
83   
84 1. Enter the directory where the source files of FreeType  are located <i>(FREETYPE_SRC_DIR)</i>. 
85
86        cd FREETYPE_SRC_DIR   
87
88 2. Run the *configure* command: 
89   
90        configure  --prefix=FREETYPE_INSTALL_DIR   
91
92    For a 64 bit platform also add <i>CFLAGS='-m64 -fPIC'  CPPFLAGS='-m64 -fPIC'</i> option to the command line. 
93     
94 3. If the *configure* command has finished successfully, start  the building process: 
95
96        make   
97
98 4. If the building has finished successfully, start the installation of FreeType. 
99    All binary and service files of the product will be copied to the directory defined by *FREETYPE_INSTALL_DIR* 
100     
101        make install   
102
103 @section dev_guides__building_3rdparty_linux_3 Building Optional Third-party Products
104     
105 @subsection dev_guides__building_3rdparty_linux_3_1 TBB
106
107 This third-party product is  installed with binaries from the archive that can be downloaded from http://threadingbuildingblocks.org. 
108 Go to the **Download** page, find the  release version you need and pick the archive for Linux platform.
109 To install, unpack the downloaded archive of TBB product.
110
111 @subsection dev_guides__building_3rdparty_linux_3_2 gl2ps
112
113 Download the necessary archive from http://geuz.org/gl2ps/ and unpack it.
114   
115 1. Install or build *cmake* product from the source file. 
116 2. Start *cmake* in GUI mode with the directory where the source files of gl2ps are located:
117
118        ccmake GL2PS_SRC_DIR   
119
120    * Press <i>[c]</i> to make the  initial configuration; 
121    * Define the necessary options in *CMAKE_INSTALL_PREFIX* 
122    * Press <i>[c]</i> to make the final  configuration 
123    * Press <i>[g]</i> to generate  Makefile and exit 
124
125    or just run the following command: 
126
127        cmake  –DCMAKE_INSTALL_PREFIX=GL2PS_INSTALL_DIR –DCMAKE_BUILD_TYPE=Release   
128
129 3. Start the building of gl2ps: 
130
131        make   
132
133 4. Start the installation of gl2ps. Binaries will be  installed according to the *CMAKE_INSTALL_PREFIX* option. 
134
135        make install   
136
137 @subsection dev_guides__building_3rdparty_linux_3_3 FreeImage
138
139 Download the necessary archive from http://sourceforge.net/projects/freeimage/files/Source%20Distribution/
140 and unpack it. The directory with unpacked sources is  further referred to as *FREEIMAGE_SRC_DIR*. 
141   
142 1. Modify *FREEIMAGE_SRC_DIR/Source/OpenEXR/Imath/ImathMatrix.h*: 
143    In line 60 insert the following: 
144
145        #include string.h   
146
147 2. Enter the directory where the source files of FreeImage are located <i>(FREEIMAGE_SRC_DIR)</i>. 
148   
149        cd FREEIMAGE_SRC_DIR   
150
151 3. Run the building process 
152   
153        make   
154
155 4. Run the installation process 
156
157    a. If you have the permission to write into directories <i>/usr/include</i> and <i>/usr/lib</i>, run the following command: 
158
159           make install   
160    b. If you do not have this permission, you need to modify file *FREEIMAGE_SRC_DIR/Makefile.gnu*: 
161   
162       Change lines 7-9 from:
163   
164           DESTDIR ?= /   
165           INCDIR  ?= $(DESTDIR)/usr/include   
166           INSTALLDIR  ?= $(DESTDIR)/usr/lib   
167
168       to: 
169
170           DESTDIR  ?= $(DESTDIR)   
171           INCDIR  ?= $(DESTDIR)/include   
172           INSTALLDIR  ?= $(DESTDIR)/lib   
173
174       Change lines 65-67 from: 
175
176           install  -m 644 -o root -g root $(HEADER) $(INCDIR)   
177           install  -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)   
178           install  -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)   
179   
180       to:
181
182           install  -m 755 $(HEADER) $(INCDIR)   
183           install  -m 755 $(STATICLIB) $(INSTALLDIR)   
184           install  -m 755 $(SHAREDLIB) $(INSTALLDIR)
185
186       Change line 70 from: 
187
188           ldconfig
189
190       to:
191   
192           \#ldconfig   
193     
194    Then run the installation process by the following command: 
195
196         make DESTDIR=FREEIMAGE_INSTALL_DIR  install   
197
198 5. Clean temporary files
199
200         make clean
201
202 @subsection dev_guides__building_3rdparty_linux_3_4 VTK
203
204 You can download VTK sources from http://www.vtk.org/VTK/resources/software.html
205
206 ### The building procedure:
207
208 Download the necessary archive from http://www.vtk.org/VTK/resources/software.html and unpack it.
209
210 1. Install or build *cmake* product from the source file.
211 2. Start *cmake* in GUI mode with the directory where the source files of *VTK* are located:
212
213        ccmake VTK_SRC_DIR
214
215    * Press <i>[c]</i> to make the  initial configuration
216    * Define the necessary options in *VTK_INSTALL_PREFIX*
217    * Press <i>[c]</i> to make the final  configuration
218    * Press <i>[g]</i> to generate  Makefile and exit
219
220 3. Start the building of VTK:
221
222        make
223
224 4. Start the installation of gl2ps. Binaries will be  installed according to the *VTK_INSTALL_PREFIX* option.
225
226        make install
227
228 @section dev_guides__building_3rdparty_linux_4 Installation From Official Repositories
229
230 @subsection dev_guides__building_3rdparty_linux_4_1 Debian-based distributives
231
232 All 3rd-party products required for building of  OCCT could be installed
233 from official repositories. You may install them from  console using apt-get utility:
234
235     sudo apt-get install tcllib tklib tcl-dev tk-dev libfreetype-dev libxt-dev libxmu-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libfreeimage-dev libtbb-dev libgl2ps-dev
236
237 To launch binaries built with WOK you need to install C shell and 32-bit libraries on x86_64 distributives:
238
239     # you may need to add i386 if not done already by command "dpkg --add-architecture i386"
240     sudo apt-get install csh libstdc++6:i386 libxt6:i386 libxext6:i386 libxmu6:i386
241
242 Building is possible with C++ compliant compiler:
243
244     sudo apt-get install g++