mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-07 18:30:55 +03:00
- Building OpenCL ICD Loader documented; Acknowledgments section of Overview updated to mention also OpenGL and OpenCL - Reference to OpenCL updated in Overview: use general statement instead of direct link to AMD SDK. - GeForce 610, 6600, and Radeon HD 7870 added to list of tested graphic cards - Minor syntax corrections in DRAW UG to avoid interferences - Update 3rdparty products up to current state - Redesign of pages - Building OpenCL ICD Loader was documented for Linux platform - Lists reformatted, documentation manual updated to better describe use of lists. - Updating picture of structure of installed OCCT - Updating description of Automake procedure - Updating description of CMake building procedure
265 lines
8.8 KiB
Markdown
265 lines
8.8 KiB
Markdown
Building 3rd-party libraries on Linux {#dev_guides__building_3rdparty_linux}
|
||
=========
|
||
|
||
@tableofcontents
|
||
|
||
@section dev_guides__building_3rdparty_linux_1 Introduction
|
||
|
||
This document presents additional guidelines for building third-party
|
||
products used by Open CASCADE Technology and samples on Linux platform.
|
||
|
||
The links for downloading the third-party products are available on the web site
|
||
of OPEN CASCADE SAS at
|
||
http://www.opencascade.org/getocc/require/.
|
||
|
||
There are two types of third-party products, which are necessary to build OCCT:
|
||
|
||
* Mandatory products: Tcl/Tk 8.5 - 8.6 and FreeType 2.4.10 - 2.4.11
|
||
* Optional products: TBB 3.x - 4.x, gl2ps 1.3.5 - 1.3.8, FreeImage 3.14.1 - 3.15.4
|
||
|
||
@section dev_guides__building_3rdparty_linux_2 Building Mandatory Third-party Products
|
||
|
||
@subsection dev_guides__building_3rdparty_linux_2_1 Tcl/Tk
|
||
|
||
Tcl/Tk is required for DRAW test harness.
|
||
|
||
@subsubsection dev_guides__building_3rdparty_linux_2_1_1 Installation from binaries:
|
||
|
||
It is possible to download ready-to-install binaries from
|
||
http://www.activestate.com/activetcl/downloads
|
||
|
||
1. Download the binaries archive and unpack them to some TCL_SRC_DIR.
|
||
2. Enter the directory TCL_SRC_DIR.
|
||
|
||
cd TCL_SRC_DIR
|
||
|
||
3. Run the install command
|
||
|
||
install.sh
|
||
|
||
and follow instructions.
|
||
|
||
@subsubsection dev_guides__building_3rdparty_linux_2_1_2 Installation from sources: Tcl
|
||
|
||
Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it.
|
||
|
||
1. Enter the unix sub-directory of the directory where the source files of Tcl are located (TCL_SRC_DIR).
|
||
|
||
cd TCL_SRC_DIR/unix
|
||
|
||
2. Run the configure command
|
||
|
||
configure --enable-gcc --enable-shared --enable-threads --prefix=TCL_INSTALL_DIR
|
||
|
||
For a 64 bit platform also add --enable-64bit option to the command line.
|
||
|
||
3. If the configure command has finished successfully, start the building process
|
||
|
||
make
|
||
|
||
4. If building is finished successfully, start the installation of Tcl.
|
||
All binary and service files of the product will be copied to the directory defined by TCL_INSTALL_DIR
|
||
|
||
make install
|
||
|
||
@subsubsection dev_guides__building_3rdparty_linux_2_1_3 Installation from sources: Tk
|
||
|
||
Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it.
|
||
|
||
1. Enter the unix sub-directory of the directory where the source files of Tk are located (TK_SRC_DIR).
|
||
|
||
cd TK_SRC_DIR/unix
|
||
|
||
2. Run the configure command, where TCL_LIB_DIR is TCL_INSTALL_DIR/lib
|
||
|
||
configure --enable-gcc --enable-shared --enable-threads --with-tcl=TCL_LIB_DIR --prefix=TK_INSTALL_DIR
|
||
|
||
where TCL_LIB_DIR is TCL_INSTALL_DIR/lib
|
||
|
||
For a 64 bit platform also add --enable-64bit option to the command line.
|
||
|
||
3. If the configure command has finished successfully, start the building process
|
||
|
||
make
|
||
|
||
4. If 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 TK_INSTALL_DIR is TCL_INSTALL_DIR)
|
||
|
||
make install
|
||
|
||
@subsection dev_guides__building_3rdparty_linux_2_2 FreeType
|
||
|
||
FreeType is required for display of text in 3D viewer.
|
||
Download the necessary archive from http://sourceforge.net/projects/freetype/files/ and unpack it.
|
||
|
||
1. Enter the directory where the source files of FreeType are located (FREETYPE_SRC_DIR).
|
||
|
||
cd FREETYPE_SRC_DIR
|
||
|
||
2. Run the configure command
|
||
|
||
configure --prefix=FREETYPE_INSTALL_DIR
|
||
|
||
For a 64 bit platform also add CFLAGS='-m64 -fPIC' CPPFLAGS='-m64 -fPIC' option to the command line.
|
||
|
||
3. If the configure command has finished successfully, start the building process
|
||
|
||
make
|
||
|
||
4. If building has finished successfully, start the installation of FreeType.
|
||
All binary and service files of the product will be copied to the directory defined by FREETYPE_INSTALL_DIR
|
||
|
||
make install
|
||
|
||
@section dev_guides__building_3rdparty_linux_3 Building Optional Third-party Products
|
||
|
||
@subsection dev_guides__building_3rdparty_linux_3_1 TBB
|
||
|
||
This third-party product is installed with binaries from the archive that can be downloaded from http://threadingbuildingblocks.org.
|
||
Go to \"Downloads page\", find the release version you need and pick the archive for Linux platform.
|
||
To install, unpack the downloaded archive of TBB product.
|
||
|
||
@subsection dev_guides__building_3rdparty_linux_3_2 gl2ps
|
||
|
||
Download the necessary archive from http://geuz.org/gl2ps/ and unpack it.
|
||
|
||
1. Install or build cmake product from source file.
|
||
2. Start cmake in GUI mode with the directory where the source files of gl2ps are located:
|
||
|
||
ccmake GL2PS_SRC_DIR
|
||
|
||
a. Press [c] to make the initial configuration
|
||
b. Define the necessary options CMAKE_INSTALL_PREFIX
|
||
c. Press [c] to make the final configuration
|
||
d. Press [g] to generate Makefile and exit
|
||
|
||
or just run the following command:
|
||
|
||
cmake –DCMAKE_INSTALL_PREFIX=GL2PS_INSTALL_DIR –DCMAKE_BUILD_TYPE=Release
|
||
|
||
3. Start building of gl2ps
|
||
|
||
make
|
||
|
||
4. Start the installation of gl2ps. Binaries will be installed according to the CMAKE_INSTALL_PREFIX option
|
||
|
||
make install
|
||
|
||
@subsection dev_guides__building_3rdparty_linux_3_3 FreeImage
|
||
|
||
Download the necessary archive from http://sourceforge.net/projects/freeimage/files/Source%20Distribution/
|
||
and unpack it. The directory with unpacked sources is further referred to as FREEIMAGE_SRC_DIR.
|
||
|
||
1. Modify FREEIMAGE_SRC_DIR/Source/OpenEXR/Imath/ImathMatrix.h:
|
||
In line 60 insert the following:
|
||
|
||
#include string.h
|
||
|
||
2. Enter the directory where the source files of FreeImage are located (FREEIMAGE_SRC_DIR).
|
||
|
||
cd FREEIMAGE_SRC_DIR
|
||
|
||
3. Run the building process
|
||
|
||
make
|
||
|
||
4. Run the installation process
|
||
|
||
a. If you have permissions to write to /usr/include and /usr/lib directories then run the following command:
|
||
|
||
make install
|
||
b. If you don’t have permissions to write to /usr/include and
|
||
/usr/lib directories then you need to modify the file FREEIMAGE_SRC_DIR/Makefile.gnu:
|
||
|
||
Change lines 7-9 from:
|
||
|
||
DESTDIR ?= /
|
||
INCDIR ?= $(DESTDIR)/usr/include
|
||
INSTALLDIR ?= $(DESTDIR)/usr/lib
|
||
|
||
to:
|
||
|
||
DESTDIR ?= $(DESTDIR)
|
||
INCDIR ?= $(DESTDIR)/include
|
||
INSTALLDIR ?= $(DESTDIR)/lib
|
||
|
||
Change lines 65-67 from:
|
||
|
||
install -m 644 -o root -g root $(HEADER) $(INCDIR)
|
||
install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
|
||
install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
|
||
|
||
to:
|
||
|
||
install -m 755 $(HEADER) $(INCDIR)
|
||
install -m 755 $(STATICLIB) $(INSTALLDIR)
|
||
install -m 755 $(SHAREDLIB) $(INSTALLDIR)
|
||
|
||
Change line 70 from:
|
||
|
||
ldconfig
|
||
|
||
to:
|
||
|
||
\#ldconfig
|
||
|
||
Then run the installation process by the following command:
|
||
|
||
make DESTDIR=FREEIMAGE_INSTALL_DIR install
|
||
|
||
5. Clean the temporary files
|
||
|
||
make clean
|
||
|
||
@subsection dev_guides__building_3rdparty_linux_3_4 OpenCL ICD Loader
|
||
|
||
If you have OpenCL SDK (one provided by Apple, AMD, NVIDIA, Intel, or other
|
||
vendor) installed on your system, you should find OpenCL headers and
|
||
libraries required for building OCCT inside that SDK.
|
||
|
||
Alternatively, you can use OpenCL ICD (Installable Client Driver) Loader
|
||
provided by Khronos group. The following describes steps used to build OpenCL
|
||
ICD Loader version 1.2.11.0.
|
||
|
||
1. Download OpenCL ICD Loader sources archive and OpenCL header files from
|
||
Khronos OpenCL Registry
|
||
http://www.khronos.org/registry/cl/
|
||
|
||
2. Unpack the archive and put headers in **inc/CL** sub-folder
|
||
|
||
3. Print **make** in root of unpacked archive to compile OpenCL libraries.
|
||
|
||
4. Create installation folder for OpenCL IDL Loader package and put there:
|
||
|
||
1. OpenCL header files in **include/CL** subfolder
|
||
|
||
2. **libOpenCL.so** (generated in **bin** subfolder of source package) in **lib** subfolder
|
||
|
||
@section dev_guides__building_3rdparty_linux_4 Installation From Official Repositories
|
||
|
||
@subsection dev_guides__building_3rdparty_linux_4_1 Debian-based distributives
|
||
|
||
All 3rd-party products required for building of OCCT could be installed
|
||
from official repositories. You may install them from console using apt-get utility:
|
||
|
||
sudo apt-get install \
|
||
tcllib tklib tcl-dev tk-dev \
|
||
libfreetype-dev \
|
||
libxt-dev libxmu-dev \
|
||
libgl1-mesa-dev \
|
||
libfreeimage-dev \
|
||
libtbb-dev \
|
||
libgl2ps-dev
|
||
|
||
To launch WOK-prebuilt binaries you need install C shell and 32-bit libraries on x86_64 distributives:
|
||
|
||
sudo apt-get install \
|
||
csh \
|
||
libstdc++5:i386 libxt6:i386
|
||
|
||
Any compliant C++ compiler is required for building anyway:
|
||
|
||
sudo apt-get install \
|
||
g++
|