HLIBpro  2.1
Installation
Table of Contents

Installation

To use the binary distribution of 𝓗𝖫𝖨𝖡𝗉𝗋𝗈, the following libraries have to be available together with 𝓗𝖫𝖨𝖡𝗉𝗋𝗈:

See below, for instruction on how to install these using system supplied commands.

Furthermore, for the internal make system of 𝓗𝖫𝖨𝖡𝗉𝗋𝗈, you will also need

Remarks
Please note, that you do not have to use SCons to include 𝓗𝖫𝖨𝖡𝗉𝗋𝗈 into your own projects. For further instructions for such cases, please refer to Integration into own Projects.
Own programs may be added to example/SConscript. Refer to http://www.scons.org for further instructions.

Linux

𝓗𝖫𝖨𝖡𝗉𝗋𝗈 was built on Ubuntu Linux 12.04. However, other distributions should also work, but the instructions for installing necessary libraries may differ.

Remarks
Please note, that for building of HLIBpro, Boost v1.55.0 and TBB v4.2.3 was used. These library versions are not part of Ubuntu 12.04 and compiled manually. Hence, no instructions for installation are given below. The same holds for the METIS library, for which no package for Ubuntu exists. If you do not want to install the libraries by yourself or if your Linux distribution provides different versions of those libraries, you may use the auxiliary package for HLIBpro (see below)

To install LAPACK, zlib, FFTW3 and Scotch using the standard package tools, you may run

$ aptitude install liblapack-dev zlib1g-dev libfftw3-dev libscotch-dev

Furthermore, for the internal make system, you also have to install SCons:

$ aptitude install scons

If you use a manual installation of TBB, Boost or Scotch, you have to modify the SConstruct file and enter the installation directories of each library, e.g. tbb_dir, boost_dir or scotch_dir, before compilation. For METIS, please specify the corresponding installation directory (metis_dir).

Now, running

$ scons

within the 𝓗𝖫𝖨𝖡𝗉𝗋𝗈 installation directory should compile all examples.

Finally, you need to add the path to the library to your environment so that you can start the example programs:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_HLIBpro>/lib

for the bash shell or

$ setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:<path_to_HLIBpro>/lib"

for csh compatible shells.

Remarks
The last step is usually not neccessary when using the provided SCons makefiles.

Using the Auxiliary Library Package

Download the archive containing the auxiliary files and unpack it in your HLIBpro directory:

$ cd hlibpro-2.1
$ tar -xzf hlibpro-2.1-Linux-aux.tgz

Please note, that the original SConstruct file will be overwritten by this!

Afterwards, by calling scons you may compile the HLIBpro examples using the provided libraries.

MacOSX

Xcode provides libraries for LAPACK/BLAS and zlib. In addtion, TBB, Boost and SCons (if wanted) have to be installed. You may either install it by hand following the instructions at the corresponding web pages or use available package systems for MacOSX, e.g. Homebrew, MacPorts or Fink.

Remarks
The default distribution was generated using Boost 1.55.0 and TBB 4.2.3 installed via Homebrew.

Due to missing default installation capabilities, support for FFTW3 and Scotch is not compiled into 𝓗𝖫𝖨𝖡𝗉𝗋𝗈 on MacOSX systems.

To use the internal make system of 𝓗𝖫𝖨𝖡𝗉𝗋𝗈, please define the installation directory of Boost in case, it is not system wide available, by changing the variable boost_dir in the file SConstruct.

Afterwards, run

$ scons

within the 𝓗𝖫𝖨𝖡𝗉𝗋𝗈 installation directory to compile all example programs.

Finally, you need to add the path to the library to your environment so that you can start the example programs:

$ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:<path_to_HLIBpro>/lib

The same has to be done for the TBB and Boost library, e.g.

$ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:<path_to_tbb>/lib
$ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:<path_to_boost>/lib
Remarks
𝓗𝖫𝖨𝖡𝗉𝗋𝗈 internally makes use of C++11 features. Therefore, Clang with libc++ was used for compilation. When using 𝓗𝖫𝖨𝖡𝗉𝗋𝗈 in your projects, make sure to add "-stdlib=libc++" during compilation and linking.

Integration into own Projects

To ease the integration of 𝓗𝖫𝖨𝖡𝗉𝗋𝗈 into own projects, the needed compiler flags are can be printed out by using

$ bin/hlib-config

To make it work, the installation path of 𝓗𝖫𝖨𝖡𝗉𝗋𝗈 has to be changed in the command. So, open bin/hlib-config and replace "<path_to_HLIBpro>" in the definition of prefix by the corresponding path.

Compilation options may then be printed out via

$ bin/hlib-config --cflags

and linking options via

$ bin/hlib-config --lflags

(both may also be combined).

As an example, by using hlib-config, the compilation of the example bem1d.cc may also be performed via

$ g++ -o examples/bem1d examples/bem1d.cc `bin/hlib-config --cflags --lflags`

(assuming a Unix system).

License File Management

The license file hlibpro.lic must be placed either in the directory where the final programs will be executed, e.g. in the examples/ subdirectory for the supplied examples, of in the directory pointed to by the environment variable HLIBPRO_LIC_PATH

On Unix systems that can be done via

$ export HLIBPRO_LIC_PATH=<path_to_HLIBpro.lic>

for the bash shell or

$ setenv HLIBPRO_LIC_PATH "<path_to_HLIBpro.lic>"

for csh compatible shells.

Remarks
If several license keys are available, they may all be put into one license file.