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