Boost 1.57.0 のビルド

tarball のダウンロード

sourceforge から boost_1_57_0.tar.gz をダウンロードし,解凍する.

% wget http://sourceforge.net/projects/boost/files/boost/1.57.0/boost_1_57_0.tar.gz
% tar xvzf boost_1_57_0.tar.gz
% cd boost_1_57_0

b2 及び bjam を生成する.

% ./bootstrap.sh

`Recommended!' なのでビルド用のディレクトリを作る.

% su
# mkdir /tmp/build_boost

ビルドの設定

$HOME/user-config.jam

設定ファイル user-config.jam$HOME (か $BOOST_BUILD_PATH) に置く (Boost.Build User Manual > 3. Overview > Configuration).

# cp ./tools/build/example/user-config.jam $HOME

コンパイラの設定

Intel コンパイラを利用する場合

% icpc -v      
icpc version 14.0.1 (gcc version 4.7.0 compatibility)

$HOME/user-config.jam に以下を追加する (詳細は Builtin tools#Intel C++ 参照).

# --------------------------
# intel-linux configuration.
# --------------------------
using intel-linux : 14.0.1 : icpc : <cxxflags>-std=c++11 ;

GCC を利用する場合

% g++ --version
g++ (Debian 4.7.2-5) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$HOME/user-config.jam の 44 行目を編集する (詳細は Builtin tools#GNU C++ 参照).

# Configure specific gcc version, giving alternative name to use.
using gcc : 4.7.2 : g++ : <cxxflags>-std=c++11 ;

Boost.MPI を利用する場合

$HOME/user-config.jam に以下を追加する (Boost.MPI > Getting started#Configure and Build).

# ------------------
# mpi configuration.
# ------------------
using mpi : mpicxx ;

使用するノードが全て同じ (homogeneous machines) 場合

BOOST_MPI_HOMOGENEOUS マクロを定義する.

% grep -nr '#define BOOST_MPI_HOMOGENEOUS' .
./boost/mpi/config.hpp:26://#define BOOST_MPI_HOMOGENEOUS
--- a/boost/mpi/config.hpp
+++ b/boost/mpi/config.hpp
@@ -26 +26 @@
-//#define BOOST_MPI_HOMOGENEOUS
+#define BOOST_MPI_HOMOGENEOUS

ビルド

詳細は ./b2 --help 参照.

# ./b2 -j4 --prefix=/usr/local/boost-1.57.0_intel-14.0.1_openmpi-1.8.4 \
  --build-dir=/tmp/build_boost \
  toolset=intel-linux \
  install 2>&1 | tee b2-install.log

または

# ./b2 -j4 --prefix=/usr/local/boost-1.57.0_gcc-4.7.2_openmpi-1.8.4 \
  --build-dir=/tmp/build_boost \
  toolset=gcc \
  install 2>&1 | tee b2-install.log

Boost.MPI を利用しない場合は --without-mpi を追加する (デフォルトでは全ライブラリがビルドされる).

パスの設定

$HOME/.zshrcに以下を追加する.

# Boost 1.57.0
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/boost-1.57.0_intel-14.0.1_openmpi-1.8.4/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/boost-1.57.0_intel-14.0.1_openmpi-1.8.4/lib
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/boost-1.57.0_intel-14.0.1_openmpi-1.8.4/include

参考