事前定義変数

bjam_grammarに事前定義変数を追加しました。
差分
以前のバージョンと違い、今回はLinuxでも動かないとダメなので、JAMUNAME等POSIX用の機能にも対応しています。


さて、事前定義変数を実装していて奇妙な仕様を見つけました。
bootstrap.jamで、

if $(JAM_VERSION:J="") < 030112
{
    ECHO "error: Boost.Jam version 3.1.12 or later required" ;
    EXIT ;
}

というチェックがあるのですが、JAM_VERSIONは「03 1 14」のようなリストなので、連結すると「03114」です。(4桁目の0が抜けている)
これでは正しい比較ができないように思えます。
しかし、バグというわけではないようで、3.1.11以前は「03 01 11」のような形式であったため、ちゃんと比較できるのです。
きっとハックな理由があったんだと思います。