0029520: Visualization - drop deprecated V3d_View::Export() functionality and depende...
[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         * FreeImage 3.14.1 - 3.16.0
21   
22 @section dev_guides__building_3rdparty_osx_2 Building Mandatory Third-party Products
23
24 @subsection dev_guides__building_3rdparty_osx_2_1 Tcl/Tk 8.5 
25
26 Tcl/Tk is required for DRAW test harness. Version 8.5 or  8.6 can be used with OCCT. 
27
28 @subsubsection dev_guides__building_3rdparty_osx_2_1_2 Installation from sources: Tcl 8.5
29
30 Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
31
32 1. Enter the *macosx* sub-directory of the directory where the Tcl source files are located <i>(TCL_SRC_DIR)</i>. 
33
34        cd TCL_SRC_DIR/macosx   
35
36 2. Run the *configure* command 
37
38        configure --enable-gcc  --enable-shared --enable-threads --prefix=TCL_INSTALL_DIR   
39
40    For a 64 bit platform also add <i>--enable-64bit</i> option to the command line. 
41
42 3. If the *configure* command has finished successfully, start the building process 
43
44        make   
45   
46 4. If building is finished successfully, start the installation of Tcl. 
47    All binary and service files of the product will be copied to the directory defined by *TCL_INSTALL_DIR*. 
48
49        make install   
50
51 @subsubsection dev_guides__building_3rdparty_osx_2_1_3 Installation from sources: Tk 8.5
52
53 Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
54
55 1. Enter the *macosx* sub-directory of the directory where the  source files of Tk are located <i>(TK_SRC_DIR)</i>. 
56
57        cd TK_SRC_DIR/macosx   
58
59 2. Run the *configure* command, where TCL_LIB_DIR is  TCL_INSTALL_DIR/lib 
60
61        configure --enable-gcc --enable-shared --enable-threads --with-tcl=TCL_LIB_DIR --prefix=TK_INSTALL_DIR   
62
63         For a 64 bit platform also add <i>--enable-64bit</i> option to the  command line. 
64
65 3. If the *configure* command has finished successfully, start the building process:
66
67        make   
68
69 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) 
70
71        make install   
72
73 @subsection dev_guides__building_3rdparty_osx_2_2 FreeType 2.4.10
74   
75 FreeType is required for text display in the 3D viewer. 
76
77 Download the necessary archive from http://sourceforge.net/projects/freetype/files/ and unpack it. 
78
79 1. Enter the directory where the source files of FreeType  are located <i>(FREETYPE_SRC_DIR)</i>. 
80
81        cd FREETYPE_SRC_DIR   
82
83 2. Run the *configure* command 
84   
85        configure  --prefix=FREETYPE_INSTALL_DIR   
86
87    For a 64 bit platform also add <i>CFLAGS='-m64 -fPIC'  CPPFLAGS='-m64 -fPIC'</i> option to the command line. 
88
89 3. If the *configure* command has finished successfully, start  the building process 
90
91        make   
92
93 4. If building has finished successfully, start the installation of FreeType. 
94    All binary and service files of the product will be copied to the directory defined by *FREETYPE_INSTALL_DIR*.
95
96        make install   
97
98 @section dev_guides__building_3rdparty_osx_3 Building Optional Third-party Products
99     
100 @subsection dev_guides__building_3rdparty_osx_3_1 TBB 3.x or 4.x
101
102 This third-party product is installed with binaries from the archive 
103 that can be downloaded from http://threadingbuildingblocks.org/. 
104 Go to the **Download** page, find the release version you need (e.g. *tbb30_018oss*) 
105 and  pick the archive for Mac OS X platform. 
106 To install, unpack the downloaded archive of TBB 3.0 product (*tbb30_018oss_osx.tgz*).
107
108 @subsection dev_guides__building_3rdparty_osx_3_3 FreeImage 3.14.1 or 3.15.x
109
110 Download the necessary archive from 
111 http://sourceforge.net/projects/freeimage/files/Source%20Distribution/   
112 and unpack it. The directory with unpacked sources is  further referred to as *FREEIMAGE_SRC_DIR*.  
113
114 Note that for building FreeImage on Mac OS X 10.7 you should replace *Makefile.osx* 
115 in *FREEIMAGE_SRC_DIR* by the corrected file, which you can find in attachment to issue #22811 in OCCT Mantis bug tracker 
116 (http://tracker.dev.opencascade.org/file_download.php?file_id=6937&type=bug). 
117
118 1. If you build FreeImage 3.15.x you can skip this  step. 
119    Modify <i>FREEIMAGE_SRC_DIR/Source/OpenEXR/Imath/ImathMatrix.h:</i> 
120   
121    In line 60 insert the following: 
122
123        #include string.h 
124
125    Modify <i>FREEIMAGE_SRC_DIR/Source/FreeImage/PluginTARGA.cpp:</i> 
126   
127    In line 320 replace: 
128
129        SwapShort(value); 
130
131    with: 
132
133        SwapShort(&value); 
134
135 2. Enter the directory where the source files of FreeImage  are located <i>(FREEIMAGE_SRC_DIR)</i>. 
136
137        cd FREEIMAGE_SRC_DIR 
138
139 3. Run the building process 
140
141        make   
142
143 4. Run the installation process 
144    
145    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: 
146
147           make install   
148
149    2. If you do not have this permission, you need to modify file *FREEIMAGE_SRC_DIR/Makefile.osx*: 
150
151       Change line 49 from:     
152
153           PREFIX ?= /usr/local
154
155       to:
156    
157           PREFIX  ?= $(PREFIX) 
158
159       Change lines 65-69 from: 
160
161           install -d -m 755 -o  root -g wheel $(INCDIR) $(INSTALLDIR) 
162           install  -m 644 -o root -g wheel $(HEADER) $(INCDIR) 
163           install  -m 644 -o root -g wheel $(SHAREDLIB) $(STATICLIB) $(INSTALLDIR) 
164           ranlib  -sf $(INSTALLDIR)/$(STATICLIB) 
165           ln  -sf $(SHAREDLIB) $(INSTALLDIR)/$(LIBNAME) 
166     
167       to: 
168
169           install  -d $(INCDIR) $(INSTALLDIR) 
170           install  -m 755 $(HEADER) $(INCDIR) 
171           install  -m 755 $(STATICLIB) $(INSTALLDIR) 
172           install  -m 755 $(SHAREDLIB) $(INSTALLDIR) 
173           ln  -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)  
174           ln  -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
175
176       Then run the installation process by the following command: 
177   
178           make PREFIX=FREEIMAGE_INSTALL_DIR  install 
179   
180 5. Clean temporary files 
181   
182        make clean