0a5ef6e5eb2a3d113fc2137cbc688201b6806734
[occt.git] / dox / dev_guides / building / 3rdparty / 3rdparty_osx.md
1 \feff Building 3rd-party libraries on MacOS X {#occt_dev_guides__building_3rdparty_osx}
2 ==============================================
3 @tableofcontents 
4
5 @section dev_guides__building_3rdparty_osx_1 Introduction
6
7 This document presents additional guidelines for building third-party products 
8 used by Open CASCADE Technology and samples on Mac OS X platform (10.6.4  and later). 
9
10 The links for downloading the third-party products are available 
11 on the web site of OPEN CASCADE SAS at http://www.opencascade.com/content/3rd-party-components. 
12
13 There are two types of third-party products, which are  necessary to build OCCT: 
14   
15 * Mandatory  products: 
16         * Tcl/Tk 8.5 - 8.6;
17         * FreeType 2.4.10 - 2.5.3.
18 * Optional  products: 
19         * TBB 3.x - 4.x;
20         * gl2ps  1.3.5 - 1.3.8;
21         * FreeImage 3.14.1 - 3.16.0
22   
23 @section dev_guides__building_3rdparty_osx_2 Building Mandatory Third-party Products
24
25 @subsection dev_guides__building_3rdparty_osx_2_1 Tcl/Tk 8.5 
26
27 Tcl/Tk is required for DRAW test harness. Version 8.5 or  8.6 can be used with OCCT. 
28
29 @subsubsection dev_guides__building_3rdparty_osx_2_1_2 Installation from sources: Tcl 8.5
30
31 Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
32
33 1. Enter the *macosx* sub-directory of the directory where the Tcl source files are located <i>(TCL_SRC_DIR)</i>. 
34
35        cd TCL_SRC_DIR/macosx   
36
37 2. Run the *configure* command 
38
39        configure --enable-gcc  --enable-shared --enable-threads --prefix=TCL_INSTALL_DIR   
40
41    For a 64 bit platform also add <i>--enable-64bit</i> option to the command line. 
42
43 3. If the *configure* command has finished successfully, start the building process 
44
45        make   
46   
47 4. If building is finished successfully, start the installation of Tcl. 
48    All binary and service files of the product will be copied to the directory defined by *TCL_INSTALL_DIR*. 
49
50        make install   
51
52 @subsubsection dev_guides__building_3rdparty_osx_2_1_3 Installation from sources: Tk 8.5
53
54 Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
55
56 1. Enter the *macosx* sub-directory of the directory where the  source files of Tk are located <i>(TK_SRC_DIR)</i>. 
57
58        cd TK_SRC_DIR/macosx   
59
60 2. Run the *configure* command, where TCL_LIB_DIR is  TCL_INSTALL_DIR/lib 
61
62        configure --enable-gcc --enable-shared --enable-threads --with-tcl=TCL_LIB_DIR --prefix=TK_INSTALL_DIR   
63
64         For a 64 bit platform also add <i>--enable-64bit</i> option to the  command line. 
65
66 3. If the *configure* command has finished successfully, start the building process:
67
68        make   
69
70 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) 
71
72        make install   
73
74 @subsection dev_guides__building_3rdparty_osx_2_2 FreeType 2.4.10
75   
76 FreeType is required for text display in the 3D viewer. 
77
78 Download the necessary archive from http://sourceforge.net/projects/freetype/files/ and unpack it. 
79
80 1. Enter the directory where the source files of FreeType  are located <i>(FREETYPE_SRC_DIR)</i>. 
81
82        cd FREETYPE_SRC_DIR   
83
84 2. Run the *configure* command 
85   
86        configure  --prefix=FREETYPE_INSTALL_DIR   
87
88    For a 64 bit platform also add <i>CFLAGS='-m64 -fPIC'  CPPFLAGS='-m64 -fPIC'</i> option to the command line. 
89
90 3. If the *configure* command has finished successfully, start  the building process 
91
92        make   
93
94 4. If building has finished successfully, start the installation of FreeType. 
95    All binary and service files of the product will be copied to the directory defined by *FREETYPE_INSTALL_DIR*.
96
97        make install   
98
99 @section dev_guides__building_3rdparty_osx_3 Building Optional Third-party Products
100     
101 @subsection dev_guides__building_3rdparty_osx_3_1 TBB 3.x or 4.x
102
103 This third-party product is installed with binaries from the archive 
104 that can be downloaded from http://threadingbuildingblocks.org/. 
105 Go to the **Download** page, find the release version you need (e.g. *tbb30_018oss*) 
106 and  pick the archive for Mac OS X platform. 
107 To install, unpack the downloaded archive of TBB 3.0 product (*tbb30_018oss_osx.tgz*).
108
109 @subsection dev_guides__building_3rdparty_osx_3_2 gl2ps 1.3.5
110
111 Download the necessary archive from http://geuz.org/gl2ps/ and unpack it. 
112
113 1. Install or build cmake product from the source file. 
114
115 2. Start cmake in GUI mode with the directory, where the source  files of *fl2ps* are located: 
116
117        ccmake GL2PS_SRC_DIR   
118
119    * Press <i>[c]</i> to make the  initial configuration; 
120    * Define the necessary options in *CMAKE_INSTALL_PREFIX*; 
121    * Press <i>[c]</i> to make the final  configuration; 
122    * Press <i>[g]</i> to generate  Makefile and exit. 
123
124    or just run the following command: 
125
126        cmake  –DCMAKE_INSTALL_PREFIX=GL2PS_INSTALL_DIR –DCMAKE_BUILD_TYPE=Release   
127
128 3. Start the building of gl2ps 
129
130        make   
131
132 4. Start the installation of gl2ps. Binaries will be  installed according to the *CMAKE_INSTALL_PREFIX* option 
133
134        make install   
135
136 @subsection dev_guides__building_3rdparty_osx_3_3 FreeImage 3.14.1 or 3.15.x
137
138 Download the necessary archive from 
139 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 Note that for building FreeImage on Mac OS X 10.7 you should replace *Makefile.osx* 
143 in *FREEIMAGE_SRC_DIR* by the corrected file, which you can find in attachment to issue #22811 in OCCT Mantis bug tracker 
144 (http://tracker.dev.opencascade.org/file_download.php?file_id=6937&type=bug). 
145
146 1. If you build FreeImage 3.15.x you can skip this  step. 
147    Modify <i>FREEIMAGE_SRC_DIR/Source/OpenEXR/Imath/ImathMatrix.h:</i> 
148   
149    In line 60 insert the following: 
150
151        #include string.h 
152
153    Modify <i>FREEIMAGE_SRC_DIR/Source/FreeImage/PluginTARGA.cpp:</i> 
154   
155    In line 320 replace: 
156
157        SwapShort(value); 
158
159    with: 
160
161        SwapShort(&value); 
162
163 2. Enter the directory where the source files of FreeImage  are located <i>(FREEIMAGE_SRC_DIR)</i>. 
164
165        cd FREEIMAGE_SRC_DIR 
166
167 3. Run the building process 
168
169        make   
170
171 4. Run the installation process 
172    
173    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: 
174
175           make install   
176
177    2. If you do not have this permission, you need to modify file *FREEIMAGE_SRC_DIR/Makefile.osx*: 
178
179       Change line 49 from:     
180
181           PREFIX ?= /usr/local
182
183       to:
184    
185           PREFIX  ?= $(PREFIX) 
186
187       Change lines 65-69 from: 
188
189           install -d -m 755 -o  root -g wheel $(INCDIR) $(INSTALLDIR) 
190           install  -m 644 -o root -g wheel $(HEADER) $(INCDIR) 
191           install  -m 644 -o root -g wheel $(SHAREDLIB) $(STATICLIB) $(INSTALLDIR) 
192           ranlib  -sf $(INSTALLDIR)/$(STATICLIB) 
193           ln  -sf $(SHAREDLIB) $(INSTALLDIR)/$(LIBNAME) 
194     
195       to: 
196
197           install  -d $(INCDIR) $(INSTALLDIR) 
198           install  -m 755 $(HEADER) $(INCDIR) 
199           install  -m 755 $(STATICLIB) $(INSTALLDIR) 
200           install  -m 755 $(SHAREDLIB) $(INSTALLDIR) 
201           ln  -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)  
202           ln  -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
203
204       Then run the installation process by the following command: 
205   
206           make PREFIX=FREEIMAGE_INSTALL_DIR  install 
207   
208 5. Clean temporary files 
209   
210        make clean