T

Peclのspidermonkey

jsが入っているのにJavascriptのインタプリタ以外に使い道がないなあ、と思っていたらPeclにspidermonkeyというのが追加されていた。検索するともう記事が見つかったりして、楽しそうなのでさっそくインストール。PHP5.3beta0以上が必要なので、テスト環境のPHPもついでに更新。php.iniのextension_dirを

extension_dir=/usr/lib/php/exntesions/no-debug-non-zts-20090115

のように更新しておかないといけない。

で、pecl install spidermonkey-alphaを実行したら見事にこける。ヘッダファイルjsapi.hがないとのこと。でもそのファイルは/usr/include/直下にある。で、手動でspidermonkey拡張モジュールをダウンロードしてconfigureの中身を見ると、

for i in $PHP_SPIDERMONKEY /usr/local /usr; do
    for j in js mozjs; do
      test -f $i/include/$j/jsapi.h && SPIDERMONKEY_BASEDIR=$i 
&& SPIDERMONKEY_INCDIR=$i/include/$j && SPIDERMONKEY_LIBNAME=$j 
&& break
    done
    test -f $i/include/$j/jsapi.h && break
  done
  if test -z "$SPIDERMONKEY_INCDIR"; then
    { { echo "$as_me:$LINENO: error: jsapi.h not found. Please reinstall libjs." >&5
echo "$as_me: error: jsapi.h not found. Please reinstall libjs." >&2;}
   { (exit 1); exit 1; }; }
  fi

こんな箇所があり、spidermonkeyのヘッダファイルは/usr/includeか/usr/local/include直下ではなくその下のjsかmozjsディレクトリでないといけないらしい。なんなんだ。以前spidermonkeyをインストールしたときの手順に問題があるんだろうか。

まあ、ヘッダファイルはみんなjs*.hという名前だったので、さくっと

# mkdir /usr/include/js && cd /usr/include/js
# for i in `ls ../js*.h`; do ln -s $i `echo $i | sed "s/..\///"`; done
# pecl install spidermonkey-alpha

適当なことをやって、ようやくインストール完了。ちなみにmozjsにするとやっぱりpeclからのインストールは出来なかった。なぜだ?

Posted by on 3月 10, 2009 in Firefox, Javascript, Linux, PHP

コメントを残す