Mozillaビルド記録 cygwinのセットアップ WindowsでのMozillaのビルドにはcygwinが必要。 PlamOS SDKと一緒にインストールされたcygwinを利用するが、 足りないファイルがあるのでいくつか追加する。 次のURLの右の所にある[Install cygwin now]の setup.exeを使って必要ファイルをインストールする。 http://www.cygwin.com/ インストールフォルダはc:\PalmOSCygwinのままにした。 サーバ選択の時にサーバを日本のringサーバに切り替えると、 ダウンロードは劇的に速くなる。 次のURLで示されているとおりに、必要なパッケージを選択する。 http://www.mozilla-japan.org/build/win32.html パッケージインストールするには、Skipの所をクリックしてInstallに変更する。 カテゴリ順だとドコに何があるか判らないのでファイル名順にする。 完全なファイルリストは次の通り。 * ash * diffutils * fileutils * findutils * gawk * grep * make * perl * sed * sh-utils * textutils * unzip * zip * binutils * gcc * gcc-mingw * mingw-runtime * w32api * cvs 必要なら、autoconfも含めておけば良いらしいが、今回は入れてない。 さらにWindows用のMozillaビルドツールがいるのでインストールする。 ftp://ftp.mozilla.org/pub/mozilla/source/wintools.zip 例どおりにCのルートに置くのが無難。 コマンドラインからセットアップする。 set MOZ_TOOLS=c:\moz_tools mkdir c:\moz_tools cd 〜\wintools\windows\setup.bat これでwintoolsからc:\moz_toolsにファイルがコピーされる。 ビルド時に参照されるので、%MOZ_TOOLS%/binにパスを設定しておく。 path %path%;c:\moz_tools\bin ソースコードのダウンロード 次のページを参考に作業する。 http://www.mozilla-japan.org/cvs.html コマンドラインから。 まずホームディレクトリのパスを設定する。 また、cvsのデフォルト設定で圧縮レベルを3にしておく。 set HOME=c:\PalmOSCygwin\home\Administrator Administratorで常用? そりゃWindows 2000だもの。 vi .cvsrc [.cvsrcファイルの内容] cvs -z3 次にMozillaのサーバからソースコードをダウンロードする。 まずログイン。 set CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot cvs login password: anonymous (エコーされない) ここで.cvspassが無いとかのメッセージ出るけど問題ない。 コマンドラインに戻るのも問題ない。 最初にclient.mkファイルをチェックアウトし、 これを手懸かりに残りのソースコードを引きずり出す。 client.mkはダウンロードやビルドを自動化するmakefileで、また後でも使う。 cvs checkout mozilla/client.mk client.mkがダウンロードされたら、 makeコマンドでプロジェクト全体をダウンロードする。 cd mozilla make -f client.mk checkout MOZ_CO_PROJECT=suite この処理には半時間ほどかかる。 コーヒーでも紅茶でもお好きなものをご自分で。 ビルド ビルド時の環境変数の設定は次の通り。 DOSのコマンドラインから設定する。 set PATH=%path%;c:\moz_tools\bin set MOZ_TOOLS=c:\moz_tools set HOME=c:\PalmOSCygwin\home\Administrator ここでmozillaディレクトリに移動してmake -f makefile.winとすると、 次のURLを見ろ、と出る。 http://www.mozilla.org/build/win32.html しかしこのページだけでは情報が不足しているので注意……。 とりあえず、client.mkを使ってビルドしてみる。 cd c:\PalmOSCygwin\home\Administrator\mozilla make -f client.mk build リンカが存在しない、などと言われて途中で止まる。 色々調べてみたところ、ビルドには.mozconfigファイルが必要らしい。 次のページを参考に作製する。 http://www.mozilla-japan.org/build/configure-build.html vi .mozconfig [.mozconfigファイルの内容] CC=gcc CXX=g++ CPP=cpp AS=as LD=ld ac_add_options --disable-accessibility ac_add_options --disable-activex ac_add_options --disable-activex-scripting ac_add_options --disable-disk-cache ac_add_options --disable-dtd-debug ac_add_options --disable-installer ac_add_options --disable-mathml ac_add_options --disable-profilesharing ac_add_options --disable-tests ac_add_options --enable-crypto ac_add_options --enable-extensions=wallet ac_add_options --enable-image-decoders=icon,png,gif,jpeg ac_add_options --enable-necko-protocols=http,file,jar,viewsource,res,data ac_add_options --enable-optimize mk_add_options MOZ_CO_PROJECT=mail ac_add_options --enable-application=mail これで万全か? 再びビルド実行。 cd c:\PalmOSCygwin\home\Administrator\mozilla make -f client.mk build やはり、途中で止まる。 原因はnsinstallが\home\Administrator\mozilla\nsprpub\pr\include\md\ へアクセスしようとしているためらしい。 ホームディレクトリは\homeで決め打ちなのか? ならばNTFSのハードリンクを作製して回避しよう。 次のシェル拡張を使ってc:\homeをc:\PalmOSCygwin\homeにハードリンクする。 http://www.vector.co.jp/soft/winnt/util/se119776.html ビンゴ。 これでかなり進んだ。 が、やはり途中で止まる。 moz_tools内のincludeファイル関連のコンパイル中に、 トークンがどうのこうのと言っている。 改行コードの問題か? その通り。 下のURLを参考にしてヘッダファイル群の改行コードを変換する。 http://texturizer.net/mozilla/jp/firefox/build.html cd c:\moz_tools\include\ dos2unix *.h cd libIDL dos2unix.exe *.h これで、どうだ。 cd c:\PalmOSCygwin\home\Administrator\mozilla make -f client.mk build 今度こそ通ったらしい。 エラーを出さずにビルドが進んでいる。 上のページには4時間ぐらいかかる、と書いてあったので、そのまま寝る。 2時間後ぐらいに見たときにはまだ出来ていなかった。 6時間後に起きたときには完成していた。 完成した実行ファイル群はmozilla\dist\binに格納されている。 Thunderbird.exeをダブルクリックして動作確認。 おー、動くね。 プロファイルはバイナリパッケージ版で通常使用しているのがそのまま読み込まれた。 バイナリパッケージは日本語のものだけど、ビルドされたのは英語版。 とくに問題なく動いているので、成功してるのだろう。 良い良い。 追加: VC++でビルドする場合。 Visual C++ 6.0の場合。 Service Pack 5とProcessor Packを追加する必要がある。 http://download.microsoft.com/download/vstudio60ent/SP5/Wideband-Full/WIN98Me/JA/vs6sp5.exe http://download.microsoft.com/download/vb60ent/Update/6/W9X2KXP/EN-US/vcpp5.exe 環境変数を設定した後、vcvars32.batを実行して、 Visual C++の環境変数を設定する。 あとは同様に。 vcvars32.bat make -f client.mk build .NETコンパイラの場合はさらに設定が必要らしい。