夏休みなのでbjam始めてみます 2日目
1日目と同日公開ですが、2日目です。はい。デフォルトのvariantがdebugなので、ぼーっとしてると遅いバイナリを作ってしまいそうで怖いですね。3日目に続くかは謎です。
variantオプション
bjamはデフォルトでdebugモードでビルドされます。ビルドモードを変更するにはbjamの引数にvariantオプションを渡すか、単にdebugやreleaseと引数に加えます。なお、コンパイルオプションその他を一杯表示させるには、 -d+2 オプションを渡します。逆に、出力を最小限にしたい場合は-d0を渡します。
Debug:
$ $BOOST_ROOT/bjam -d+2 debug [略] "g++-mp-4.6" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -dynamic -gdwarf-2 -fexceptions -fPIC -c -o "bin/darwin-4.6/debug/a.o" "a.cpp" [略]
Release:
$ $BOOST_ROOT/bjam -d+2 variant=release [略] "g++-mp-4.6" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -dynamic -gdwarf-2 -fexceptions -fPIC -DNDEBUG -c -o "bin/darwin-4.6/release/a.o" "a.cpp" [略]
なお、variantは複数指定できるので、releaseとdebugを同時にビルドできます。
Debug+Release:
$ $BOOST_ROOT/bjam -d+2 debug release [略] "g++-mp-4.6" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -dynamic -gdwarf-2 -fexceptions -fPIC -c -o "bin/darwin-4.6/debug/a.o" "a.cpp" [略] "g++-mp-4.6" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -dynamic -gdwarf-2 -fexceptions -fPIC -DNDEBUG -c -o "bin/darwin-4.6/release/a.o" "a.cpp" [略]
-j オプション
GNU Makeと同様に-jオプションを指定すると、平行ビルドで実行されます。多数のコアがあるマシンで実行する場合は、ビルド時間が短縮される可能性があります。
boost本体レベルの規模となると物理8コアのマシンで、ビルド時間が-jなしで604秒、-j8付きで93.8秒となり、8倍とはいきませんが、6倍程度高速化されています。