Windows固有のハマリが2つ。
・nmakeでmakeできない。
・self containing escriptになってるのを動かそうとしたら、escriptが下のようなメッセージを出してrebarを実行してくれない
C:\HOGEHOGE>escript rebar
escript: Failed to open file: C:\HOGEHOGE\escript.escript
というわけで、それぞれのとりあえずの解決。
・nmakeでmakeできない。
本体のビルド作業だけなら bootstrap.bat を実行すればよいので、makeではなく
C:\rebar> bootstrap.bat
のようにすればOKです。
・escriptがエラーを出してrebarを実行してくれない
上の手順でビルドして作られた「rebar」ファイルだけを持ってくれば動くはずなのですが、今度はescriptがうまく動かない。。。
解決してしまえばシンプルでした。
動かない > C:\HOGEHOGE> escript rebar
動く! > C:\HOGEHOGE> escript.exe rebar
Franco Lombardoさんのこちらのエントリ(英語)にあるように、escriptを"escript.exe" として起動してあげないと、引数のファイルを読みに行ってくれないようです。
escriptのソースは読んでませんが、argv[0]が自分のファイル名(escript.exe)でない場合は、escript.exeが「argv[1]ではなく、argv[0]が実行すべきescriptファイルだ」と判断して、argv[0]そのもの、もしくはargv[0]に".escript"を付加したファイルを探しに行く、という動作になっているものと思われます。これ自体は妥当な動きなので「escript.exe」で実行するようにすればいいだけですね。
というわけで、
C:\> copy \rebar\rebar \HOGEHOGE
C:\> cd \HOGEHOGE
C:\> escript.exe rebar
という流れで、Windowsでもrebarの準備ができました^^
※補足
ビルドされたrebarファイルですが、Windowsで作ってもLinuxで作っても同じようにUnixのスクリプトファイル形式(#!で始まるあれ)で出力されます。というわけで、Erlangのバージョンが同じならLinux環境でビルドしたものをそのまま使うことも可能ですね。