0027191: Documentation - redesign of information architecture -- revision (build)
[occt.git] / dox / build / build_3rdparty / building_3rdparty.md
1  Build 3rd-parties {#build_upgrade_building_3rdparty}
2 ==============================================
3 @tableofcontents
4
5 On Windows, the easiest way to install third-party libraries is to download archive with pre-built binaries from https://opencascade.com/content/3rd-party-components.
6 On Linux and OS X, it is recommended to use the version installed in the system natively.
7
8 @section dev_guides__building_3rdparty_win_1 Windows
9
10 This document presents guidelines for building third-party products used by Open CASCADE Technology (OCCT) and samples on Windows platform. It is assumed that you are already familiar with MS Visual Studio / Visual C++. 
11
12 You need to use the same version of MS Visual Studio for building all third-party products and OCCT itself, in order to receive a consistent set of run-time binaries. 
13
14 The links for downloading the third-party products are available at https://opencascade.com/content/3rd-party-components.
15
16 There are two types of third-party products used  by OCCT: 
17
18 * Mandatory  products: 
19         * Tcl/Tk 8.5 -- 8.6;
20         * FreeType 2.4.10 -- 2.5.3.
21 * Optional  products:
22         * TBB 3.x -- 4.x;
23         * FreeImage 3.14.1 -- 3.16.0;
24         * VTK 6.1.0.
25
26 It is recommended to create a separate new folder on your workstation, where you will unpack the downloaded archives of the third-party  products, and where you will build these products (for example, *c:\\occ3rdparty*). 
27
28 Further in this document, this folder is referred to as *3rdparty*. 
29
30 @subsection dev_guides__building_3rdparty_win_2 Tcl/Tk
31
32 Tcl/Tk is required for DRAW test harness.
33
34 **Installation from sources: Tcl**
35   
36 Download the necessary archive from https://www.tcl.tk/software/tcltk/download.html and unpack it.
37   
38 1. In the *win* sub-directory, edit file *buildall.vc.bat*:
39
40    * Edit the line "call ... vcvars32.bat" to have correct path to the version of Visual Studio to be used for building, for instance:
41
42          call "%VS80COMNTOOLS%\vsvars32.bat"
43
44      If you are building 64-bit version, set environment accordingly, e.g.:
45
46          call "%VS80COMNTOOLS%\..\..\VC\vcvarsall.bat" amd64
47      
48    * Define variable *INSTALLDIR* pointing to directory where Tcl/Tk will be installed, e.g.:
49
50          set INSTALLDIR=D:\OCCT\3rdparty\tcltk-86-32
51
52    * Add option *install* to the first command line calling *nmake*:
53
54          nmake -nologo -f makefile.vc release htmlhelp install %1
55
56    * Remove second call to *nmake* (building statically linked executable)
57
58 2. Edit file *rules.vc* replacing line 
59
60        SUFX         = tsgx
61
62    by
63
64        SUFX         = sgx
65
66    This is to avoid extra prefix 't' in the library name, which is not recognized by default by OCCT build tools.
67
68
69 3. By default, Tcl uses dynamic version of run-time library (MSVCRT), which must be installed on the system where Tcl will be used.
70    You may wish to link Tcl library with static version of run-time to avoid this dependency.
71    For that:
72
73    * Edit file *makefile.vc* replacing strings "crt = -MD" by "crt = -MT"
74
75    * Edit source file *tclMain.c* (located in folder *generic*) commenting out forward declaration of function *isatty()*.
76
77
78 4. In the command prompt, run *buildall.vc.bat*
79
80    You might need to run this script twice to have *tclsh* executable installed; check subfolder *bin* of specified installation path to verify this.
81
82 5. For convenience of use, we recommend making a copy of *tclsh* executable created in subfolder *bin* of *INSTALLDIR* and named with Tcl version number suffix, as *tclsh.exe* (with no suffix)
83
84        > cd D:\OCCT\3rdparty\tcltk-86-32\bin
85        > cp tclsh86.exe tclsh.exe
86
87 **Installation from sources: Tk**
88   
89 Download the necessary archive from https://www.tcl.tk/software/tcltk/download.html and unpack it.
90
91 Apply the same steps as described for building Tcl above, with the same INSTALLDIR.
92 Note that Tk produces its own executable, called *wish*. 
93
94 You might need to edit default value of *TCLDIR* variable defined in *buildall.vc.bat* (should be not necessary if you unpack both Tcl and Tk sources in the same folder).
95
96 @subsection dev_guides__building_3rdparty_win_2_2 FreeType
97
98 FreeType is required for text display in a 3D viewer. You can download its sources from https://sourceforge.net/projects/freetype/files/
99
100 ### The building procedure
101
102 1. Unpack the downloaded archive of FreeType product into the *3rdparty*  folder. As a result, you will get a folder named, for example, *3rdparty\\freetype-2.4.10*.  Further in this document, this folder is referred to as *freetype*. 
103    
104 2. Open the solution file *freetype\\builds\\win32\\vc20xx\\freetype.sln*  in Visual Studio. Here *vc20xx* stands for your version of Visual Studio. 
105
106 3. Select the configuration to build: either Debug or Release. 
107
108 4. Build  the *freetype* project. 
109
110    As a result, you will get a  freetype import library (.lib) in the *freetype\\obj\\win32\\vc20xx*  folder.  
111
112
113 5. If you build FreeType for a 64 bit platform, select in the main menu **Build - Configuration Manager**  and add *x64* platform to the solution configuration by copying the settings from Win32 platform: 
114
115    @figure{/build/build_3rdparty/images/3rdparty_image001.png}
116
117    Update the value of the Output File for  x64 configuration: 
118
119    @figure{/build/build_3rdparty/images/3rdparty_image003.png}
120
121    Build the *freetype* project. 
122
123    As a result, you will obtain a 64 bit import library (.lib) file in the *freetype\\x64\\vc20xx*  folder. 
124
125    To build FreeType as a dynamic library (.dll) follow steps 6, 7 and 8 of this procedure. 
126
127 6. Open menu Project-> Properties-> Configuration  Properties-> General and change option **Configuration Type** to *Dynamic  Library (.dll)*. 
128 7. Edit file *freetype\\include\\freetype\\config\\ftoption.h*:  
129   
130    in line 255, uncomment the definition of macro *FT_EXPORT* and change it as follows: 
131
132        #define FT_EXPORT(x)   __declspec(dllexport) x 
133
134 8. Build  the *freetype* project. 
135
136    As a result, you will obtain the files of the import  library (.lib) and the dynamic library (.dll)   in folders <i>freetype  \\objs\\release</i> or <i>\\objs\\debug </i>. 
137    
138    If you build for a 64 bit platform, follow step 5 of the procedure. 
139
140    To facilitate the use of FreeType libraries in OCCT with minimal adjustment of build procedures, it is recommended to copy the include files and libraries of FreeType into a separate folder, named according to the pattern: *freetype-compiler-bitness-building mode*, where: 
141    * **compiler** is *vc8* or *vc9* or *vc10* or *vc11*; 
142    * **bitness**  is *32* or *64*;
143    * **building mode** is *opt* (for Release) or *deb* (for Debug). 
144     
145    The *include* subfolder should be copied as is, while libraries should be renamed to *freetype.lib* and *freetype.dll* (suffixes removed) and placed to subdirectories *lib *and  *bin*, respectively. If the Debug configuration is built, the Debug libraries should be put into subdirectories *libd* and *bind*. 
146
147
148 @subsection dev_guides__building_3rdparty_win_3_1 TBB
149
150 This third-party product is installed with binaries 
151 from the archive that can be downloaded from https://github.com/intel/tbb.
152 Go to the **Download** page, find the  release version you need  (e.g. *tbb30_018oss*) and pick the archive for Windows  platform. 
153
154 Unpack the downloaded  archive of TBB product into the *3rdparty* folder. 
155
156 Further in this document,  this folder is referred to as *tbb*. 
157
158 @subsection dev_guides__building_3rdparty_win_3_3 FreeImage
159
160 This third-party product should be built as a dynamically loadable library (.dll file). 
161 You can download its sources from 
162 https://sourceforge.net/projects/freeimage/files/Source%20Distribution/
163
164 ### The building procedure: 
165
166 1. Unpack the  downloaded archive of FreeImage product into *3rdparty* folder. 
167   
168    As a result, you should have a folder named *3rdparty\\FreeImage*. 
169   
170    Rename it according to the rule: *freeimage-platform-compiler-building  mode*, where 
171    
172    * **platform**  is *win32* or *win64*; 
173    * **compiler**  is *vc8* or *vc9* or *vc10* or *vc11*; 
174    * **building  mode** is *opt* (for release) or *deb* (for debug) 
175
176    Further in this  document, this folder is referred to as *freeimage*. 
177
178 2. Open the solution file *freeimage\\FreeImage.*.sln* in your Visual Studio. 
179   
180    If you use a Visual Studio version higher than VC++ 2008, apply conversion of the workspace. 
181    Such conversion should be suggested automatically by Visual  Studio. 
182     
183 3. Select a  configuration to build. 
184
185    - Choose **Release**  if you are building Release binaries. 
186    - Choose **Debug** if you are building  Debug binaries. 
187
188    *Note:* 
189
190    If you want to  build a debug version of FreeImage binaries then you need to rename the following files in FreeImage and FreeimagePlus projects:
191    
192    Project -> Properties -> Configuration Properties -> Linker -> General -> Output File
193
194        FreeImage*d*.dll  to FreeImage.dll 
195        FreeImagePlus*d*.dll to FreeImagePlus.dll 
196
197    Project -> Properties -> Configuration Properties -> Linker -> Debugging-> Generate Program Database File
198
199        FreeImage*d*.pdb  to FreeImage.pdb 
200        FreeImagePlus*d*.pdb to FreeImagePlus.pdb 
201
202    Project -> Properties -> Configuration Properties -> Linker -> Advanced-Import Library
203
204        FreeImage*d*.lib  to FreeImage.lib 
205        FreeImagePlus*d*.lib  to FreeImagePlus.lib 
206
207    Project -> Properties -> Configuration Properties -> Build Events -> Post -> Build Event -> Command Line 
208
209        FreeImage*d*.dll     to FreeImage.dll 
210        FreeImage*d*.lib     to FreeImage.lib 
211        FreeImagePlus*d*.dll to FreeImagePlus.dll 
212        FreeImagePlus*d*.lib to FreeImagePlus.lib 
213
214    Additionally, rename in project FreeImagePlus 
215    
216    Project -> Properties -> Configuration  Properties -> Linker -> Input -> Additional Dependencies 
217
218        from FreeImage*d*.lib to FreeImage.lib 
219
220 4. Select a platform to build. 
221
222    - Choose *Win32* if you are building for a 32 bit platform. 
223    - Choose *x64* if you are building for a 64 bit platform. 
224
225 5. Start the building process. 
226
227    As a result, you should have the  library files of FreeImage product  in *freeimage\\Dist* folder (*FreeImage.dll* and *FreeImage.lib*) and in *freeimage\\Wrapper\\FreeImagePlus\\dist* folder (*FreeImagePlus.dll* and *FreeImagePlus.lib*).
228
229 @subsection dev_guides__building_3rdparty_win_3_4 VTK
230
231 VTK is an open-source, freely available software system for 3D computer graphics, image processing and visualization. VTK Integration Services component provides adaptation functionality for visualization of OCCT topological shapes by means of VTK library.
232
233 ### The building procedure:
234
235 1. Download the necessary archive from https://www.vtk.org/VTK/resources/software.html and unpack it into *3rdparty* folder.
236
237    As a result, you will get a folder named, for example, <i>3rdparty\VTK-6.1.0.</i>
238
239    Further in this document, this folder is referred to as *VTK*.
240
241 2. Use CMake to generate VS projects for building the library:
242    - Start CMake-GUI and select VTK folder as source path, and the folder of your choice for VS project and intermediate build data.
243    - Click **Configure**.
244    - Select the VS version to be used from the ones you have installed (we recommend using VS 2010) and the architecture (32 or 64-bit).
245    - Generate VS projects with default CMake options. The open solution *VTK.sln* will be generated in the build folder.
246
247 3. Build project VTK in Release mode.
248
249
250 @section build_3rdparty_linux Linux
251
252 This document presents additional guidelines for building third-party 
253 products used by Open CASCADE Technology and samples on Linux platform. 
254
255 The links for downloading the third-party products are available on the web site at 
256 https://opencascade.com/content/3rd-party-components.
257
258 There are two types of third-party products, which are  necessary to build OCCT: 
259   
260 * Mandatory  products: 
261         * Tcl/Tk 8.5 - 8.6;  
262         * FreeType 2.4.10 - 2.5.3;
263 * Optional  products: 
264         * TBB 3.x - 4.x;
265         * FreeImage 3.14.1 - 3.16.0;
266         * VTK 6.1.0.
267
268
269 @subsection dev_guides__building_3rdparty_linux_2_1 Tcl/Tk 
270
271 Tcl/Tk is required for DRAW test harness. 
272
273 **Installation from sources: Tcl**
274   
275 Download the necessary archive from https://www.tcl.tk/software/tcltk/download.html and unpack it.
276   
277 1. Enter the unix sub-directory of the directory where the Tcl source  files are located <i>(TCL_SRC_DIR)</i>. 
278
279        cd TCL_SRC_DIR/unix   
280
281 2. Run the *configure* command:
282
283        configure --enable-gcc  --enable-shared --enable-threads --prefix=TCL_INSTALL_DIR   
284
285    For a 64 bit platform also add <i>--enable-64bit</i> option to the command line. 
286   
287 3. If the configure command has finished successfully, start  the building process:
288   
289        make   
290
291 4. If building is finished successfully, start the installation of Tcl. 
292    All binary and service files of the product will be copied to the directory defined by *TCL_INSTALL_DIR* 
293
294        make install   
295
296 **Installation from sources: Tk**
297   
298 Download the necessary archive from https://www.tcl.tk/software/tcltk/download.html and unpack it.
299   
300 1. Enter the unix sub-directory of the directory where the Tk source files are located <i>(TK_SRC_DIR)</i> 
301
302        cd TK_SRC_DIR/unix   
303
304 2. Run the configure command, where <i>TCL_LIB_DIR</i> is *TCL_INSTALL_DIR/lib*.
305
306        configure --enable-gcc  --enable-shared --enable-threads --with-tcl=TCL_LIB_DIR  --prefix=TK_INSTALL_DIR   
307
308    For a 64 bit platform also add <i>--enable-64bit</i> option to the  command line. 
309
310 3. If the configure command has finished successfully, start the building process: 
311
312        make   
313
314 4. If the building has finished successfully, start the installation of Tk. 
315    All binary and service files of the product will be copied 
316    to the directory defined by *TK_INSTALL_DIR* (usually it is *TCL_INSTALL_DIR*) 
317
318        make install   
319
320 @subsection dev_guides__building_3rdparty_linux_2_2 FreeType
321
322 FreeType is required for text display in the 3D viewer. 
323 Download the necessary archive from https://sourceforge.net/projects/freetype/files/ and unpack it.
324   
325 1. Enter the directory where the source files of FreeType  are located <i>(FREETYPE_SRC_DIR)</i>. 
326
327        cd FREETYPE_SRC_DIR   
328
329 2. Run the *configure* command: 
330   
331        configure  --prefix=FREETYPE_INSTALL_DIR   
332
333    For a 64 bit platform also add <i>CFLAGS='-m64 -fPIC'  CPPFLAGS='-m64 -fPIC'</i> option to the command line. 
334     
335 3. If the *configure* command has finished successfully, start  the building process: 
336
337        make   
338
339 4. If the building has finished successfully, start the installation of FreeType. 
340    All binary and service files of the product will be copied to the directory defined by *FREETYPE_INSTALL_DIR* 
341     
342        make install   
343
344     
345 @subsection dev_guides__building_3rdparty_linux_3_1 TBB
346
347 This third-party product is  installed with binaries from the archive that can be downloaded from https://github.com/intel/tbb.
348 Go to the **Download** page, find the  release version you need and pick the archive for Linux platform.
349 To install, unpack the downloaded archive of TBB product.
350
351 @subsection dev_guides__building_3rdparty_linux_3_3 FreeImage
352
353 Download the necessary archive from https://sourceforge.net/projects/freeimage/files/Source%20Distribution/
354 and unpack it. The directory with unpacked sources is  further referred to as *FREEIMAGE_SRC_DIR*. 
355   
356 1. Modify *FREEIMAGE_SRC_DIR/Source/OpenEXR/Imath/ImathMatrix.h*: 
357    In line 60 insert the following: 
358
359        #include string.h   
360
361 2. Enter the directory where the source files of FreeImage are located <i>(FREEIMAGE_SRC_DIR)</i>. 
362   
363        cd FREEIMAGE_SRC_DIR   
364
365 3. Run the building process 
366   
367        make   
368
369 4. Run the installation process 
370
371    a. If you have the permission to write into directories <i>/usr/include</i> and <i>/usr/lib</i>, run the following command: 
372
373           make install   
374    b. If you do not have this permission, you need to modify file *FREEIMAGE_SRC_DIR/Makefile.gnu*: 
375   
376       Change lines 7-9 from:
377   
378           DESTDIR ?= /   
379           INCDIR  ?= $(DESTDIR)/usr/include   
380           INSTALLDIR  ?= $(DESTDIR)/usr/lib   
381
382       to: 
383
384           DESTDIR  ?= $(DESTDIR)   
385           INCDIR  ?= $(DESTDIR)/include   
386           INSTALLDIR  ?= $(DESTDIR)/lib   
387
388       Change lines 65-67 from: 
389
390           install  -m 644 -o root -g root $(HEADER) $(INCDIR)   
391           install  -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)   
392           install  -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)   
393   
394       to:
395
396           install  -m 755 $(HEADER) $(INCDIR)   
397           install  -m 755 $(STATICLIB) $(INSTALLDIR)   
398           install  -m 755 $(SHAREDLIB) $(INSTALLDIR)
399
400       Change line 70 from: 
401
402           ldconfig
403
404       to:
405   
406           \#ldconfig   
407     
408    Then run the installation process by the following command: 
409
410         make DESTDIR=FREEIMAGE_INSTALL_DIR  install   
411
412 5. Clean temporary files
413
414         make clean
415
416 @subsection dev_guides__building_3rdparty_linux_3_4 VTK
417
418 You can download VTK sources from https://www.vtk.org/VTK/resources/software.html
419
420 ### The building procedure:
421
422 Download the necessary archive from https://www.vtk.org/VTK/resources/software.html and unpack it.
423
424 1. Install or build *cmake* product from the source file.
425 2. Start *cmake* in GUI mode with the directory where the source files of *VTK* are located:
426
427        ccmake VTK_SRC_DIR
428
429    * Press <i>[c]</i> to make the  initial configuration
430    * Define the necessary options in *VTK_INSTALL_PREFIX*
431    * Press <i>[c]</i> to make the final  configuration
432    * Press <i>[g]</i> to generate  Makefile and exit
433
434 3. Start the building of VTK:
435
436        make
437
438 4. Start the installation of VTK. Binaries will be installed according to the *VTK_INSTALL_PREFIX* option.
439
440        make install
441
442 @subsection dev_guides__building_3rdparty_linux_4 Installation From Official Repositories
443
444 **Debian-based distributives**
445
446 All 3rd-party products required for building of  OCCT could be installed
447 from official repositories. You may install them from  console using apt-get utility:
448
449     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
450
451 To launch binaries built with WOK you need to install C shell and 32-bit libraries on x86_64 distributives:
452
453     # you may need to add i386 if not done already by command "dpkg --add-architecture i386"
454     sudo apt-get install csh libstdc++6:i386 libxt6:i386 libxext6:i386 libxmu6:i386
455
456 Building is possible with C++ compliant compiler:
457
458     sudo apt-get install g++
459
460 @section build_3rdparty_macos Mac OS X
461
462 This document presents additional guidelines for building third-party products 
463 used by Open CASCADE Technology and samples on Mac OS X platform (10.6.4  and later). 
464
465 The links for downloading the third-party products are available at https://opencascade.com/content/3rd-party-components.
466
467 There are two types of third-party products, which are  necessary to build OCCT: 
468   
469 * Mandatory  products: 
470         * Tcl/Tk 8.5 - 8.6;
471         * FreeType 2.4.10 - 2.5.3.
472 * Optional  products: 
473         * TBB 3.x - 4.x;
474         * FreeImage 3.14.1 - 3.16.0
475   
476
477 @subsection dev_guides__building_3rdparty_osx_2_1 Tcl/Tk 8.5 
478
479 Tcl/Tk is required for DRAW test harness. Version 8.5 or  8.6 can be used with OCCT. 
480
481 **Installation from sources: Tcl 8.5**
482
483 Download the necessary archive from https://www.tcl.tk/software/tcltk/download.html and unpack it.
484
485 1. Enter the *macosx* sub-directory of the directory where the Tcl source files are located <i>(TCL_SRC_DIR)</i>. 
486
487        cd TCL_SRC_DIR/macosx   
488
489 2. Run the *configure* command 
490
491        configure --enable-gcc  --enable-shared --enable-threads --prefix=TCL_INSTALL_DIR   
492
493    For a 64 bit platform also add <i>--enable-64bit</i> option to the command line. 
494
495 3. If the *configure* command has finished successfully, start the building process 
496
497        make   
498   
499 4. If building is finished successfully, start the installation of Tcl. 
500    All binary and service files of the product will be copied to the directory defined by *TCL_INSTALL_DIR*. 
501
502        make install   
503
504 **Installation from sources: Tk 8.5**
505
506 Download the necessary archive from https://www.tcl.tk/software/tcltk/download.html and unpack it.
507
508 1. Enter the *macosx* sub-directory of the directory where the  source files of Tk are located <i>(TK_SRC_DIR)</i>. 
509
510        cd TK_SRC_DIR/macosx   
511
512 2. Run the *configure* command, where TCL_LIB_DIR is  TCL_INSTALL_DIR/lib 
513
514        configure --enable-gcc --enable-shared --enable-threads --with-tcl=TCL_LIB_DIR --prefix=TK_INSTALL_DIR   
515
516         For a 64 bit platform also add <i>--enable-64bit</i> option to the  command line. 
517
518 3. If the *configure* command has finished successfully, start the building process:
519
520        make   
521
522 4. If the building has finished successfully, start the  installation of Tk. All binary and service files of the product will be copied to the directory defined by *TK_INSTALL_DIR* (usually it is TCL_INSTALL_DIR) 
523
524        make install   
525
526 @subsection dev_guides__building_3rdparty_osx_2_2 FreeType 2.4.10
527   
528 FreeType is required for text display in the 3D viewer. 
529
530 Download the necessary archive from https://sourceforge.net/projects/freetype/files/ and unpack it.
531
532 1. Enter the directory where the source files of FreeType  are located <i>(FREETYPE_SRC_DIR)</i>. 
533
534        cd FREETYPE_SRC_DIR   
535
536 2. Run the *configure* command 
537   
538        configure  --prefix=FREETYPE_INSTALL_DIR   
539
540    For a 64 bit platform also add <i>CFLAGS='-m64 -fPIC'  CPPFLAGS='-m64 -fPIC'</i> option to the command line. 
541
542 3. If the *configure* command has finished successfully, start  the building process 
543
544        make   
545
546 4. If building has finished successfully, start the installation of FreeType. 
547    All binary and service files of the product will be copied to the directory defined by *FREETYPE_INSTALL_DIR*.
548
549        make install   
550     
551 @subsection dev_guides__building_3rdparty_osx_3_1 TBB 3.x or 4.x
552
553 This third-party product is installed with binaries from the archive 
554 that can be downloaded from https://github.com/intel/tbb.
555 Go to the **Download** page, find the release version you need (e.g. *tbb30_018oss*) 
556 and  pick the archive for Mac OS X platform. 
557 To install, unpack the downloaded archive of TBB 3.0 product (*tbb30_018oss_osx.tgz*).
558
559 @subsection dev_guides__building_3rdparty_osx_3_3 FreeImage 3.14.1 or 3.15.x
560
561 Download the necessary archive from 
562 https://sourceforge.net/projects/freeimage/files/Source%20Distribution/
563 and unpack it. The directory with unpacked sources is  further referred to as *FREEIMAGE_SRC_DIR*.  
564
565 Note that for building FreeImage on Mac OS X 10.7 you should replace *Makefile.osx* 
566 in *FREEIMAGE_SRC_DIR* by the corrected file, which you can find in attachment to issue #22811 in OCCT Mantis bug tracker 
567 (https://tracker.dev.opencascade.org/file_download.php?file_id=6937&type=bug).
568
569 1. If you build FreeImage 3.15.x you can skip this  step. 
570    Modify <i>FREEIMAGE_SRC_DIR/Source/OpenEXR/Imath/ImathMatrix.h:</i> 
571   
572    In line 60 insert the following: 
573
574        #include string.h 
575
576    Modify <i>FREEIMAGE_SRC_DIR/Source/FreeImage/PluginTARGA.cpp:</i> 
577   
578    In line 320 replace: 
579
580        SwapShort(value); 
581
582    with: 
583
584        SwapShort(&value); 
585
586 2. Enter the directory where the source files of FreeImage  are located <i>(FREEIMAGE_SRC_DIR)</i>. 
587
588        cd FREEIMAGE_SRC_DIR 
589
590 3. Run the building process 
591
592        make   
593
594 4. Run the installation process 
595    
596    1. If you have the permission to write into <i>/usr/local/include</i>  and <i>/usr/local/lib</i> directories, run the following command: 
597
598           make install   
599
600    2. If you do not have this permission, you need to modify file *FREEIMAGE_SRC_DIR/Makefile.osx*: 
601
602       Change line 49 from:     
603
604           PREFIX ?= /usr/local
605
606       to:
607    
608           PREFIX  ?= $(PREFIX) 
609
610       Change lines 65-69 from: 
611
612           install -d -m 755 -o  root -g wheel $(INCDIR) $(INSTALLDIR) 
613           install  -m 644 -o root -g wheel $(HEADER) $(INCDIR) 
614           install  -m 644 -o root -g wheel $(SHAREDLIB) $(STATICLIB) $(INSTALLDIR) 
615           ranlib  -sf $(INSTALLDIR)/$(STATICLIB) 
616           ln  -sf $(SHAREDLIB) $(INSTALLDIR)/$(LIBNAME) 
617     
618       to: 
619
620           install  -d $(INCDIR) $(INSTALLDIR) 
621           install  -m 755 $(HEADER) $(INCDIR) 
622           install  -m 755 $(STATICLIB) $(INSTALLDIR) 
623           install  -m 755 $(SHAREDLIB) $(INSTALLDIR) 
624           ln  -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)  
625           ln  -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
626
627       Then run the installation process by the following command: 
628   
629           make PREFIX=FREEIMAGE_INSTALL_DIR  install 
630   
631 5. Clean temporary files 
632   
633        make clean