Boost 1.35.0 のビルドのバッドノウハウ

  1. Boost 1.35.0 になってビルドの方法が変わってて,単に bjam 動かしただけでは以下の設定しかビルドされにゃい
    • リリースビルドで
    • マルチスレッドで
    • 共有ライブラリで
    • ランタイムを動的リンクする
  2. ./configure && make install も同じっぽ?
  3. autolink に頼ってたりすると,以前のバージョンではビルドされていたライブラリが見つからない場合があるのでリンクでコケーッコココこける (原因に気づきにくい)
  4. 以前のように全部の組み合わせをビルドするには bjam --build-type=complete (bjam --help 参照のこと)
  5. で, Boost.Regex のビルドで ICU を使う設定のとき --build-type=complete を指定しているとこける
  6. ↑がこけるのは libs/regex/build/Jamfile.v2 のバグ (ICU の共有ライブラリを引っ張ってくるときに runtime-link=static と conflict してるっぽ?)
  7. とりあえず bjam --build-type=complete の代わりに bjam debug release threading=single,multi link=static,shared runtime-link=shared でもいけることはいける (Boost.Regex 以外のライブラリにおいて runtime-link=static なものがビルドされないけど)
  8. バグを再現させてみる
  9. libs/regex/build/Jamfile.v2 を修正して ICU 付で --build-type=complete できるようにする
  10. \(^o^)/ やたー!とおた! (今ココ)
  11. SVN の HEAD で直っているかどうか確認する
  12. libs/regex/build/Jamfile.v2 のパッチ作るるるぅ〜