SpiderMonkeyのビルド

Javascriptエンジンを物色してみたところ
http://code.google.com/p/v8/ V8 JavaScript Engineというのを発見した。
のだがcygwinコンパイルするのは困難そうだったので見送り。

前から知っているhttps://developer.mozilla.org/En/SpiderMonkey/1.8 SpiderMonkeyを使ってみることにした。
久しぶりに見たらバージョンがひとつあがって1.8rc1になっていた。
1.7より速くなってちょっと機能が増えたらしい。


とりあえずビルドしてみる。
https://developer.mozilla.org/en/SpiderMonkey_Build_Documentation
に書いてあるとおりに

$ make -f Makefile.ref

とするとコンパイラにvc(cl.exe)が使われる。
今回はgccを使いたいので調べる。
http://yowaken.dip.jp/tdiary/20070913.html#p07
なるほど。

$ make -f Makefile.ref OS_ARCH=Linux

しかしターゲットのjsをはずすと
ライブラリのリンク時にundefined referenceが山のように発生。
memcpyとか基本的な関数に対してなのでリンカをldからgccに変えれば
よきに計らってくれるだろうと目星をつける。

$ make -f Makefile.ref OS_ARCH=Linux LD=gcc

ビルド成功。
さらに最適化のオプションを追加して

$  make -f Makefile.ref OS_ARCH=Linux LD=gcc BUILD_OPT=1

となった。