トップ «前の日(08-25) 最新 次の日(08-27)» 追記

Masa's blog

検索キーワード:

2010年08月26日 firefox-3.6.8 + mplayerplug-in

_ firefox-3.6.8 + mplayerplug-in

Slackware-13.1な環境でfirefox-3.6.8をビルドし、gecko-sdkもいつもの手法でインストールした。

次に、mplayerplug-in-daily.tar.gz を取得してビルドを実行

 $ GECKO_XPIDL=/usr/local/gecko-sdk-3.6.8/sdk/bin/xpidl GECKO_IDLDIR=/usr/local/gecko-sdk-3.6.8/sdk/idl ./configure --enable-gtk2 --with-gecko-sdk=/usr/local/gecko-sdk-3.6.8/sdk
 $ make

ところが、以下のエラー発生。

In file included from include/npplat.h:42,
                 from include/pluginbase.h:41,
                 from Source/plugin.h:53,
                 from Source/plugin.cpp:37:
include/npupp.h:62:17: error: jri.h: No such file or directory

そこで

cp /any_where/mozilla-1.9.2/sun-java/stubs/include/jri* /usr/local/gecko-sdk-3.6.8/sdk/include/

で、ざっくりとjri関係のヘッダーファイルをコピーし、再度ビルド実行したところ以下のエラー。

/usr/lib/gcc/i486-slackware-linux/4.4.4/include/jni_md.h:79: error: conflicting declaration 'typedef int jint'
/usr/local/gecko-sdk-3.6.8/sdk/include/jri_md.h:202: error: 'jint' has a previous declaration as 'typedef long int jint'

で、/usr/local/gecko-sdk-3.6.8/sdk/include/jri_md.h中の

typedef long                    jint;

をコメントアウト。

で、無事ビルドできた。

gecko-sdkのインストール方法をまとめると以下のように

# mkdir /usr/local/gecko-sdk-3.6.8
# cp -rL /any_where/mozilla-1.9.2/dist/sdk /usr/local/gecko-sdk-3.6.8/
# cp -rL/any_where/mozilla-1.9.2/dist/idl /usr/local/gecko-sdk-3.6.8/sdk/
# cp -rL /any_where/mozilla-1.9.2/dist/include /usr/local/gecko-sdk-3.6.8/sdk/
# cp /any_where/mozilla-1.9.2/sun-java/stubs/include/jri* /usr/local/gecko-sdk-3.6.8/sdk/include/

# vi /usr/local/gecko-sdk-3.6.8/sdk/include/jri_md.h

202: typedef long                    jint;  をコメントアウト

でも、どこかに正しいgecko-sdkのインストール方法がドキュメント化されてるんでしょうね...