Boost.Build v2(CVS HEAD)での挙動

Boost.Build v2について、日本語の文献は非常に少ないですが、id:Cryoliteさんが詳述([id:Cryolite:20060205#p1])していました。そこで、その記述を、Boost C++ Librariesの2006/02/11現在のCVS HEADを用いて検証してみました。私が検証した環境は、以下のとおりです。

Jamfileについて

唯一、引っかかったのは、パスを正規化するところです。現在は、[id:Cryolite:20060205#p1]で修正されています。

boost-root = [ modules.peek : BOOST_ROOT ] ; # 環境変数 BOOST_ROOT の値を取得
boost-root = [ path.make : $(boost-root) ] ; # パスを正規化

とありましたが、私が試したところ、

$ bjam
Jamfile:11: in load-aux
*** argument error
* rule path.make ( native )
* called with: (  : $(BOOST_ROOT) )
* missing argument native
$(BOOST_ROOT)/tools/build/v2/util/path.jam:42:see definition of rule 'make' being called
$(BOOST_ROOT)/tools/build/v2/build/project.jam:312: in load-jamfile
$(BOOST_ROOT)/tools/build/v2/build/project.jam:68: in load
$(BOOST_ROOT)/tools/build/v2/build/project.jam:164: in project.find
$(BOOST_ROOT)/tools/build/v2/build-system.jam:142: in load
$(BOOST_ROOT)/tools/build/v2/kernel/modules.jam:261: in import
$(BOOST_ROOT)/tools/build/v2/kernel/bootstrap.jam:121: in boost-build
$(BOOST_ROOT)/tools/build/v2/boost-build.jam:2: in module scope

となります。そこで、$(BOOST_ROOT)/tools/build/v2/util/path.jamを参照して、path.makeの定義を調べたところ、

#
#    Converts the native path into normalized form.
#
rule make ( native )
{
    return [ make-$(os) $(native) ] ;
}

となっていました。どうも、コロンが余計のようです。そこで、path.makeの呼び出し行を、

boost-root = [ path.make $(boost-root) ] ; # パスを正規化

と変更したところ、動くようになりました。なお、Windows環境でどうなるかは、私がWindowsの開発環境を構築していないので、よくわかりません。

unit-test-frameworkについて

run hello.cpp                                  # run ルールについては下記参照
    /boost/test//boost_unit_test_framework     # boost_unit_test_framework ライブラリを直接引っ張ってくる
  ;

上記の指定の仕方でも動くのですが、$(BOOST_ROOT)/Jamfile.v2には、

alias unit_test_framework : libs/test/build//boost_unit_test_framework ;

の記述があります。そこで、

run hello.cpp
    /boost//unit_test_framework
  ;

と簡略指定してもよいようです。実際、Boost C++ Librariesからみてどちらがより好ましいのかは、よくわかりません。