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