## 第3章 インストール

いくつかのHamigakiライブラリはライブラリのビルドを必要とする。ビルドにはBoost.BuildのVersion 1もしくはVersion 2を使用することができる。

Boost.Build Version 2 を使用する場合. Boost.Build Version 2 (以下、BBv2) の動作には次のいずれかの環境変数(またはbjamの-sオプションによるグローバル変数)を設定する必要がある。

変数 | 意味 | 規定値
--- | --- | ---
BOOST_BUILD_PATH | BBv2のインストールされたディレクトリ | /usr/share/boost-build (UNIXのみ)
BOOST_ROOT | Boost C++ Librariesの配布パッケージの展開されたディレクトリ | -

ただし、Boostのプロジェクトを参照してソースからビルドする場合は必ずBOOST_ROOT変数を設定しなければならない。 また、ビルド済みBoostライブラリを使用する場合は、site-config.jamまたはuser-config.jamで次のグローバル変数を定義する。

変数 | 意味
--- | ---
NO_BOOST_STD_LIB_NAME | 真(1)に設定するとBoostのライブラリ名にコンパイラ名とBoostのバージョンを含めない (オプション)
BOOST_INCLUDE | Boostのヘッダファイルのあるディレクトリ
BOOST_LIBPATH | Boostのライブラリファイルのあるディレクトリ

ツールセット毎にソースからのビルドとビルド済みライブラリを使い分けたい等の細かい制御が必要な場合は、site-config.jamまたはuser-config.jamで次のbjamターゲットを定義する。

ターゲットID | 意味
--- | ---
/boost-lib//headers | Boostヘッダファイル
/boost-lib//boost_filesystem | Boost.Filesystemライブラリ
/boost-lib//boost_regex | Boost.Regexライブラリ
/boost-lib//boost_bzip2 | bzip2ライブラリ
/boost-lib//boost_zlib | zlibライブラリ
/boost-lib//boost_iostreams | Boost.Iostreamsライブラリ
/boost-lib//boost_thread | Boost.Threadライブラリ
/boost-lib//boost_unit_test_framework | Boost.TestのUnit Test Frameworkライブラリ

なお、ビルド済みBoostライブラリを参照するには、付属のboost-prebuiltモジュールを使用するとよい。

    #BOOST_BUILD_PATHにディレクトリを追加する
    module
    {
        BOOST_BUILD_PATH += C:/Hamigaki/tools/build ;
        modules.poke .ENVIRON : BOOST_BUILD_PATH : $(BOOST_BUILD_PATH) ;
    }

    module boost-lib
    {
        # モジュールの名前を設定する
        __name__ = boost-lib ;

        # モジュールをプロジェクトにする
        import project ;
        project.initialize $(__name__) ;
        project $(__name__) ;

        import boost-prebuilt ;

        alias headers : : : : <include>C:/Boost/include/boost-1_34 ;
        boost-prebuilt boost_filesystem : <search>C:/Boost/lib ;

        # --layout=systemオプション付きでビルドしている場合
        # boost-prebuilt boost_filesystem : <search>C:/Boost/lib <boost-layout>system ;
    }

Boost.Build Version 1 を使用する場合. Boost.Build Version 1 でビルドする際は次の変数を設定することにより、ビルドをカスタマイズすることができる。

変数 | 意味
--- | ---
BOOST_ROOT | Boost C++ Librariesの配布パッケージの展開されたディレクトリ
NO_BOOST_STD_LIB_NAME | Boostのライブラリ名にコンパイラ名とBoostのバージョンを含めない (オプション)
BOOST_INCLUDE | Boostのヘッダファイルのあるディレクトリ
BOOST_LIBPATH | Boostのライブラリファイルのあるディレクトリ

BOOST_ROOTはBoost.Buildのjamファイルを参照するためだけに用いられる。NO_BOOST_STD_LIB_NAMEは、Boostを--layout=systemオプションでインストールした場合、1に設定する。Boostがコンパイラ既定のディレクトリへインストールされている場合、BOOST_INCLUDEとBOOST_LIBPATHの設定は必要ない。ライブラリ固有の変数に関しては、各ライブラリのドキュメントを参照すること。