追記 2006/08/07 :
解決策を編み出された方が現れました(^o^)/。
詳細は
UNIX に関するメモ等より!。
http://www.mozilla.org/build/unix-details.htmlとか 参考にしながら「.mozconfig」を以下の内容で作成した。
. $topsrcdir/browser/config/mozconfig ac_add_options --disable-debug ac_add_options --enable-optimize ac_add_options --enable-default-toolkit=gtk2
そして4.0時間程度待つ(Pentium II 375MHz, Memory 512MB, HD UW-SCSI)
c++ -o nsCanvasRenderingContext2D.o -c -DMOZILLA_INTERNAL_API -DOSTYPE=\"Linux2.4.36\" -DOSARCH=\"Linux\" -DBUILD_ID=0000000000 -D_IMPL_NS_LAYOUT -I../../../dist/include/xpcom -I../../../dist/include/string -I../../../dist/include/gfx -I../../../dist/include/layout -I../../../dist/include/widget -I../../../dist/include/dom -I../../../dist/include/js -I../../../dist/include/locale -I../../../dist/include/unicharutil -I../../../dist/include/webshell -I../../../dist/include/uriloader -I../../../dist/include/htmlparser -I../../../dist/include/necko -I../../../dist/include/view -I../../../dist/include/pref -I../../../dist/include/docshell -I../../../dist/include/xpconnect -I../../../dist/include/xuldoc -I../../../dist/include/caps -I../../../dist/include/editor -I../../../dist/include/imglib2 -I../../../dist/include/mimetype -I../../../dist/include/exthandler -I../../../dist/include/uconv -I../../../dist/include/intl -I../../../dist/include/plugin -I../../../dist/include/cairo -I../../../dist/include/libpixman -I../../../dist/include/content -I../../../dist/include -I../../../dist/include/nspr -I../../../dist/sdk/include -I/usr/X11R6/include -fPIC -I/usr/X11R6/include -fno-rtti-fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -O -I../../../dist/include/cairo -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/libpng12 -I/usr/include/freetype2 -I/usr/X11R6/include -I/usr/X11R6/include -DMOZILLA_CLIENT -include ../../../mozilla-config.h -Wp,-MD,.deps/nsCanvasRenderingContext2D.pp nsCanvasRenderingContext2D.cpp In file included from /usr/local/include/gtk-2.0/gdk/gdkcairo.h:25, from /usr/local/include/gtk-2.0/gdk/gdk.h:30, from nsCanvasRenderingContext2D.cpp:147: /usr/local/include/pango-1.0/pango/pangocairo.h:71: error: `cairo_font_type_t' was not declared in this scope /usr/local/include/pango-1.0/pango/pangocairo.h:73: error: `cairo_font_type_t' does not name a type /usr/local/include/pango-1.0/pango/pangocairo.h:73: error: extra `;' nsCanvasRenderingContext2D.cpp:198: 警告: 'PRBool FloatValidate(double, double, double)' defined but not used gmake[5]: *** [nsCanvasRenderingContext2D.o] エラー 1 gmake[5]: Leaving directory `/home/m-ito/tmp/mozilla/content/canvas/src' gmake[4]: *** [libs] エラー 2 gmake[4]: Leaving directory `/home/m-ito/tmp/mozilla/content/canvas' gmake[3]: *** [libs] エラー 2 gmake[3]: Leaving directory `/home/m-ito/tmp/mozilla/content' gmake[2]: *** [tier_9] エラー 2 gmake[2]: Leaving directory `/home/m-ito/tmp/mozilla' make[1]: *** [default] エラー 2 make[1]: Leaving directory `/home/m-ito/tmp/mozilla' make: *** [build] エラー 2早速、情報収集すると、こんなページが...。
.mozconfigを以下の様に修正(最下行に1行追加しただけ)。
. $topsrcdir/browser/config/mozconfig ac_add_options --disable-debug ac_add_options --enable-optimize ac_add_options --enable-default-toolkit=gtk2 ac_add_options --enable-system-cairo再度ビルド開始!
c++ -I/usr/X11R6/include -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -O -fPIC -shared -Wl,-z,defs -Wl,-h,libgklayout.so -o libgklayout.so nsLayoutModule.o nsContentHTTPStartup.o nsContentDLF.o nsLayoutStatics.o -Wl,--whole-archive ../../dist/lib/libgkbase_s.a ../../dist/lib/libgkgeneric_s.a ../../dist/lib/libgkforms_s.a ../../dist/lib/libgkstyle_s.a ../../dist/lib/libgkprinting_s.a ../../dist/lib/libgktable_s.a ../../dist/lib/libgkxulbase_s.a ../../dist/lib/libgkconbase_s.a ../../dist/lib/libgkconcvs_s.a ../../dist/lib/libgkconevents_s.a ../../dist/lib/libgkconhtmlcon_s.a ../../dist/lib/libgkconhtmldoc_s.a ../../dist/lib/libgkconxmlcon_s.a ../../dist/lib/libgkconxmldoc_s.a ../../dist/lib/libgkconxbl_s.a ../../dist/lib/libgkconxulcon_s.a ../../dist/lib/libgkconxuldoc_s.a ../../dist/lib/libgkview_s.a ../../dist/lib/libjsdombase_s.a ../../dist/lib/libjsdomevents_s.a ../../dist/lib/libjsurl_s.a ../../dist/lib/libjsdomstorage_s.a ../../dist/lib/libgkxultree_s.a ../../dist/lib/libgkxulgrid_s.a ../../dist/lib/libgkconxultmpl_s.a ../../dist/lib/libinspector_s.a ../../dist/lib/libgkmathmlcon_s.a ../../dist/lib/libgkmathmlbase_s.a ../../dist/lib/libgkcontentxtf_s.a ../../dist/lib/libgkxtfbase_s.a -Wl,--no-whole-archive -L../../dist/bin -L../../dist/lib -lgkgfx ../../dist/lib/libunicharutil_s.a -L../../dist/bin -lxpcom -lxpcom_core -L../../dist/bin -L../../dist/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -L../../dist/bin -lmozjs -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -L/usr/local/lib -lcairo -Wl,--version-script -Wl,../../build/unix/gnu-ld-scripts/components-version-script -Wl,-Bsymbolic -ldl -lm ../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xa89): In function `nsCanvasRenderingContext2D::Destroy()': : undefined reference to `XFreePixmap' ../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x1553): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)': : undefined reference to `XRenderFindStandardFormat' ../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x1579): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)': : undefined reference to `XListPixmapFormats' ../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x159c): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)': : undefined reference to `XFree' ../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x15df): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)': : undefined reference to `XCreatePixmap' collect2: ld はステータス 1 で終了しました gmake[4]: *** [libgklayout.so] エラー 1 gmake[4]: Leaving directory `/home/m-ito/tmp/mozilla/layout/build' gmake[3]: *** [libs] エラー 2 gmake[3]: Leaving directory `/home/m-ito/tmp/mozilla/layout' gmake[2]: *** [tier_9] エラー 2 gmake[2]: Leaving directory `/home/m-ito/tmp/mozilla' make[1]: *** [default] エラー 2 make[1]: Leaving directory `/home/m-ito/tmp/mozilla' make: *** [build] エラー 2なんやら、単純にlibX11が見えてない様子...。quick hackにて、
*** configure.ORG 2008-07-22 18:26:32.000000000 +0900 --- configure 2008-07-22 19:30:44.000000000 +0900 *************** *** 19330,19336 **** fi MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS ! MOZ_CAIRO_LIBS=$CAIRO_LIBS fi fi --- 19330,19337 ---- fi MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS ! ## MOZ_CAIRO_LIBS=$CAIRO_LIBS ! MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $CAIRO_LIBS $XLDFLAGS -lXrender $XLIBS -lfontconfig -lfreetype" fi fiの内容で configureスクリプトを修正。それでもって、再々ビルド開始! -> 結果OK
Cannot find mozilla runtime directory. Exiting.のエラーメッセージを出して、 root以外では実行できなかったので、以下の コマンドでパーミッションを設定し直した。
`firefox -P' で起動するとプロファイルマネージャが起動しますので、 適当な名前で新しいプロファイルを作成して下さい。
新しいプロファイルを使って firefox を起動する場合は、 `firefox -P [新しいプロファイル名称]' のように起動します。
*SeparateConversion.input: false *selectionShell.input: false *auxShell.input: falseを~/.Xresources等に記述すれば解消しました。
user_pref("xim.input_style", "over-the-spot");を入れておけば「その場変換(over-the-spot)」が出来たのですが、 なんとgtk+-2.x系ではover-the-spotがサポートされないようです。 kinput2を捨てて他のIMに変えればなんとかなるという情報もあるよう なのですが、現在調査中です。
ここで、エラー発生。
Using new (v1.7+) gecko-sdk checking for xpidl... no configure: error: xpidl compiler not found「xpidlが見つからない」と言ってる...。ちょっと調べてみて、直接xpidlのありかを 指定するといけると判断。
なんやら警告が出ている。
config.status: creating config.h /usr/local/gecko-sdk-2.0.0.18/gecko-sdk/bin/xpidl -w -m header -I -I Source -e Source/nsIScriptableMplayerPlugin.h Source/nsIScriptableMplayerPlugin.idl ** (process:16594): WARNING **: Parse of Source failed: Is a directoryが、とりあえず先に進んでみる。
やっぱり、エラー発生。
g++ -c -o plugin.o -Wall -DXP_UNIX -DMOZ_X11 -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include/plugin -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include/xpcom -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include/nspr -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include/string -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include/java -g -O2 -I/usr/X11R6/include -g -O2 -Iinclude -fPIC -DXPCOM_GLUE -DMOZILLA_STRICT_API -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/libpng12 -I/usr/include/freetype2 -I/usr/X11R6/include -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/libpng12 -I/usr/include/freetype2 -I/usr/X11R6/include -pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -DGTK_ENABLED Source/plugin.cpp In file included from Source/nsScriptablePeer.h:48, from Source/plugin.h:54, from Source/plugin.cpp:37: Source/nsIScriptableMplayerPlugin.h:28:60: macro "NS_DEFINE_STATIC_IID_ACCESSOR" requires 2 arguments, but only 1 given In file included from Source/nsScriptablePeer.h:48, from Source/plugin.h:54, from Source/plugin.cpp:37: Source/nsIScriptableMplayerPlugin.h:31: error: ISO C++ forbids declaration of `NS_DEFINE_STATIC_IID_ACCESSOR' with no type Source/nsIScriptableMplayerPlugin.h:31: error: expected `;' before "virtual" Source/nsIScriptableMplayerPlugin.h:123:64: macro "NS_DEFINE_STATIC_IID_ACCESSOR" requires 2 arguments, but only 1 given Source/nsIScriptableMplayerPlugin.h:126: error: ISO C++ forbids declaration of `NS_DEFINE_STATIC_IID_ACCESSOR' with no type Source/nsIScriptableMplayerPlugin.h:126: error: expected `;' before "virtual" make: *** [plugin.o] Error 1
xpidlの警告を無視してはいけませんでした。
Source/nsIScriptableMplayerPlugin.hのオリジナルソースのNS_DEFINE_STATIC_IID_ACCESSORマクロ定義が、 指定してるgecko-sdkの定義と食い違っているのが原因なのですが、 本来は、正しくxpidlが動作すれば、Source/nsIScriptableMplayerPlugin.hが正しい姿に再生成出来て問題ないはずです。 で、今一度、xpidlの警告メッセージをよく見ると、
〜 -I -I Source 〜とincludeディレクトリを指定するオプション(-I)の1つ目の指定が無いようです。 Makefileによると、GECKO_IDLDIRでgecko-sdkのidlディレクトリを指定すれば よさそうです。
今度は、xpidlの警告も無く、無事make出来ました。
. $topsrcdir/browser/config/mozconfig ac_add_options --disable-debug ac_add_options --enable-optimize ac_add_options --enable-default-toolkit=cairo-gtk2
; This file is in the UTF-8 encoding [Strings] TitleText=%MOZ_APP_DISPLAYNAME% Update InfoText=%MOZ_APP_DISPLAYNAME% is installing your updates and will start in a few moments(ここの部分の文字化けを削除する)
2011/09/29 追記 : firefox-7.0以降は、jri*.hが無いようなので、この作業は不要できません。でも、gecko-mediaplayer-1.0.4のビルドが出来たのでOKとしましょう(^^;。
ファイルを展開しています。しばらくお待ちください。コンピュータの設定によっては、時間がかかる場合があります。 このインストールには 156 MB の空きディスク容量が必要です。 インストール先ディレクトリの指定 - Adobe Reader 9.4.2 [/opt] /usr/local /usr/local 共通ファイルをインストールしています ... 完了 プラットフォーム依存ファイルをインストールしています ... 完了 ライブラリを設定しています...完了 デスクトップおよびメニューアイコンを設定しています...完了 ブラウザプラグインを設定しています...完了