夏休みなのでbjam始めてみます 1日目
bjamが欲しいので、まずはboostをダウンロードして展開し、bjamをビルドします。そして、boostを展開したディレクトリをBOOST_ROOT環境変数に定義しておきます。BOOT_ROOTはbjamの動作上も必要です。
$ export BOOST_ROOT=/path/to/boost $ cd $BOOST_ROOT $ ./bootstrap
boost 1.47.0からbootstrapで作成されるbjamの実行ファイル名が、"bjam"と"b2"の2つになっています。1.47の段階ではこれらのファイルの内容は同一で単なるコピーのようですが、以降はbjamで統一します。
Mac環境で、Appleによって提供されていないgccを使う場合は、以下の修正を行う必要があります。(例えばMacports) -no-cpp-precompというオプションはAppleのgccにしか存在しないためです。(本当にこの修正で大丈夫なのか、よくわかんないですけど)
--- $BOOST_ROOT/tools/build/v2/tools/darwin.jam.org 2011-07-30 19:12:42.000000000 +0900 +++ $BOOST_ROOT/tools/build/v2/tools/darwin.jam 2011-07-30 19:12:49.000000000 +0900 @@ -498,7 +498,7 @@ flags darwin.compile OPTIONS <link>shared : -dynamic ; # Misc options. -flags darwin.compile OPTIONS : -no-cpp-precomp -gdwarf-2 -fexceptions ; +flags darwin.compile OPTIONS : -gdwarf-2 -fexceptions ; #~ flags darwin.link OPTIONS : -fexceptions ; # Add the framework names to use.
さて、a.cppとJamrootファイルを用意して適当にコンパイルしてみます。
a.cpp:
#include <iostream> int main() { std::cout << "Hello bjam\n"; return 0; }
Jamroot:
exe a : a.cpp ;
$ ls Jamroot a.cpp $ $BOOST_ROOT/bjam ...found 9 targets... ...updating 4 targets... common.mkdir bin/darwin-4.6 common.mkdir bin/darwin-4.6/debug darwin.compile.c++ bin/darwin-4.6/debug/a.o darwin.link bin/darwin-4.6/debug/a ...updated 4 targets... $ ./bin/darwin-4.6/debug/a Hello bjam
あ、2日目に続くかは謎です。