Luabindビルドしましょうか(Windows用)

Luabindは使っていたんですが、「やっぱりビルドしなきゃダメだろ」と思いやってみることに。

今回の話はWindows上で、D:\Systemの中にLuaとかLuabindとかBoostが入っていることにしてます。
今回はDLL版のライブラリはビルドしません(別にいらないと思った)ので、その辺はまた各自で。
Lua自体はバイナリ配布版(ver5.1.4)を、Boostはver1.45.0を使ってます。
VisualStudio2010を使用しています。

bjamを入手

LuabindのINSTALLフォルダに書かれていることを素直に実行します。
まず、Boost Jamをダウンロードします。Boostと一緒でBoost.orgからダウンロードできます。
解凍して出てきたファイルを全部Luabindのフォルダに入れます。
今回の場合はD:\System\luabind\luabind-0.9.1の中ですね。

ビルド

Boostのビルドと同じようにVisualStudioコマンドプロンプトで行います。
D:\System\luabind\luabind-0.9.1へ移動します。
ここで早速ビルドしたいのですが、その前にLuaとBoostのパス設定が必要です。
LUA_PATHとBOOST_ROOTを環境変数として設定しなきゃいけないので、今回は一時的な設定としてsetコマンドを使います。

> set LUA_PATH=D:\System\Lua\5.1
> set BOOST_ROOT=D:\System\boost\boost_1_45_0

後は、bjamでビルドします。
デフォルトだとビルド後のライブラリ名がboostと違って末尾に*_s_mt.libとかって名前で付かないので手動でつけます。

> bjam --toolset=msvc-10.0 link=static runtime-link=static debug stage    <- MTd版
> bjam --toolset=msvc-10.0 link=static runtime-link=shared debug stage    <- MDd版
> bjam --toolset=msvc-10.0 link=static runtime-link=static release stage  <- MT版
> bjam --toolset=msvc-10.0 link=static runtime-link=shared release stage  <- MD版

ここで前者の2つのコマンドを実行するとluabind-0.9.1上のstageフォルダ内にlibluabindd.libが、後者の2つでlibluabind.libができると思うのでこれを分かるように名前を変更します。
後はライブラリとヘッダをプロジェクトのパスに通して終わりです。

[参考]筆者がつけた名前

参考までに、どういう名前にしたかだけ書いておきます。

libluabind_s_mt.lib   // MT
libluabind_s_md.lib   // MD
libluabind_s_mtd.lib  // MTd
libluabind_s_mdd.lib  // MDd