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
となった。