BBv2解析メモ その1
Jambase
- bjam実行ファイルに組み込み
- ARGV[0]にbjamが含まれているかBOOST_ROOTが定義(BBv1互換)されていればbjamモード、それ以外の場合はjamモード
- 作業ディレクトリからルートへ向かって順にboost-build.jamを検索する
- 見つからない場合はBBv1互換のためBOOST_BUILD_PATHとBOOST_ROOTも探す
- boost-build.jamをインクルードする
boost-build.jam
- ユーザー定義
- 通常はBBv2のインストールディレクトリを指定してboost-buildを呼ぶ
boost-build
- Jambaseで定義されるルール
- BOOST_BUILD_PATHに引数dirが加えられ、.ENVIRONモジュールにも反映させる
- BOOST_BUILD_PATHからbootstrap.jamを探し、インクルードする
bootstrap.jam
- bootstrap.jamのパスをkernel/bootstrap.jamに書き換え、インクルードし直す
kernel/bootstrap.jam
- bjamのバージョンと組み込み/ネイティブルール、変数のチェック
- 同じディレクトリからmodules.jamをインクルード
- modules.importをグローバルモジュールにインポート
- kernel、util、build、tools、new、.をBOOST_BUILD_PATHに追加して、.ENVIRONモジュールにも反映させる
- modulesモジュールをインポート(二度目のインクルード)
- optionモジュールをインポート
- option.process()の結果が真なら終了
- "--build-system"オプションで指定したファイルかbuild-systemをインポート
build-system.jam
- BOOST_BUILD_PATHにtest-config.jamがあればインポート
- test-config.jamをインポートしたか--ignore-configオプションが指定されていたらuser-config.jam/site-config.jamのロードをスキップ
- site-config.jamを以下から探し、modules.loadする
- SystemRoot(NTかCYGWIN)
- /etc(それ以外)
- os.home-directories()
- BOOST_BUILD_PATH
- project.load-used-projectsにsite-configを追加
- "--user-config"オプションが指定されていればそこから、そうでなければ以下からuser-config.jamを探し、modules.loadする
- os.home-directories()
- BOOST_BUILD_PATH
- project.load-used-projectsにuser-configを追加