Mozilla Navigatorをビルドしてみる
(1998年6月3日版)
Modified: 13 Jun 1998
Netscape Navigator 5.0、通称、Mozilla(モジラ) Navigatorのソースコードをビルドができましたので紹介します。
www.mozilla.com のサイトをみたら6月3日版が出ていましたので、ビルドしてみることにしました。
私が行った環境は、Windows NT4.0で、MSVC5.0(いわゆる、Microsoft Visual Studio 5.0に同梱されている、Microsoft Visual C++ 5.0)、を使って行いました。
前提条件の確認
ダウンロードと解凍
ビルドの手順概要
環境変数の設定
ツールのビルド
私が経験したエラ-(1)
Mozilla本体のビルド
私が経験したエラ-(2)
ビルド中の様子や注意
- CPUは、133MHz以上のPentium以上
私は、PentiumPro の 200MHzで行いました。
- ディスクの空き容量: NTFSの場合、250MB、FATの場合、500MB
ZIPファイルが、17MB。解凍後は、59MBになりました。ビルドが終わると、241MBになっていました。
- メインメモリ: ビルドするためには、64MB以上。デバッグするなら、128MB必要
私は、128MBの環境で行いました。
- OSは、NT4.0またはNT3.51
運がよければWin95でもビルドできるかもしれないそうです。私は、NT4.0で行いました。
- MSVC(Microsoft Visual C++ 4.2または5.0)が必要
私は、MSVC5.0で行いました。ServicePack3 で更新したものです。
確認していませんが、VisualStudioのServicePack3 を充てておかないとうまくコンパイルできないそうです。
MSVC以外の、BorlandのCではできません。正確にいうと、ビルドするためには相当の知識と時間が必要です。
以下から、ダウンロードします。以前のものとは、URLがちょっと変わっています。
http://www.mozilla.org/download-mozilla.htmlここは重かったので、list of mirror site(以下)から、日本のサイトを開きます。
http://www.mozilla.org/mirrors.htmlその中で、私は、以下からWindowsNT用をダウンロードしました。また、ツールも新しくなっているようなので、合わせてダウンロードしました。
http://sunsite.sut.ac.jp/pub/archives/WWW/mozilla/mozilla/source/
- mizilla-19980603_tar.gz 3-Jun-98 16,482,458(バイト)
- wintools.zip 3-Jun-98 1,072,324(バイト)
の2つをダウンロードします。
6月3日版は、WindowsとUNIXで共通のソースになっており、ZIPでなく、GZ で圧縮されています。
UNIXツールの入手
解凍するためには、gzip と、tar という2つのUNIXツールが必要です。
このファイルを圧縮するツールは、WindowsNTには標準でついていないので、別途入手しなくてはなりません。
入手先は、同じページに書いてありますが、有料のようですので、私は以下から入手しました。
Virtually UNIX
http://www.itribe.net/virtunix/そこの、
http://www.itribe.net/virtunix/mystuff.htmlのページに、「Unix 95 Collection Version 7」 というところをクリックすると、ダウンロードできます。
ダウンロードしたファイルは、UNIX95_7.ZIP のファイル名で、約1MBです。これを解凍して、32-bit のツールに、PATH を設定します。
これらは、すべて、コマンドプロンプトで動作するソフトです。
この中に、解凍するためのソフト、gzip.exe と、tar.exe があります。
Mozillaを解凍する
まず、コマンドプロンプトから、
D:\mozilla> gunzip mozilla-19980603_tar.gz
終了すると、mozilla-19980603_tar.gz の圧縮が解かれ、mozilla-19980603.tar になっています。サイズは、約73MBになっていました。
今度は、tar.exe で、中身を取り出します。
D:\mozilla> tar xvf mozilla-19980603.tar
これで、ディレクトリが作られ、ソースコードが全部開きました。
最後のほうで、permitionのエラーが大量に出ますが、ビルドするには差し支えないので無視してかまいません。
ツールをビルドする
ツールは、従来通り、ZIPですから解凍します。
wintools.zip は、NTで動作する、UNIXのコマンドです。
私は、wintools.zip を、
D:\mozilla
mozilla-19980603_tar.gz を、
D:\mozilla
に解凍しました。
以降の説明は、これが前提になっています。
NTFSであれば、解凍後、D:\mozilla のディレクトリを圧縮しておくことをすすめます。ビルドの時間はあまり変わりませんし、なんといってもディスクの容量が半分ですみます。
ビルド(コンパイル&リンク)するのに、NTFSで、250MB。FATだと、500MBのハードディスクの空き容量が必要だそうです。
解凍後は、以下の手順で行います。
- まず、環境変数の設定をします。
慎重に、一つづつ設定します。ビルドの失敗の原因は、99%この環境変数の設定間違い、しかもスペル間違いなどのつまらない間違いによるものです。
- Mozlllaのツールのビルドを行います。
1分くらいで終了します。
- Mozillaのビルドを行います。
私の場合、50分かかりました。
以上で終了です。以下、順次詳しく説明します。
普通、MSVCでビルドするには、Visual StudioというGUIを起動し、マウスで、メニューからコンパイル、ビルドを選択して、exeを作りますが、Mozillaを作る場合は、内部のコンパイラやリンカを直接使って行います。
Visual C++5.0 は、正しくインストールされていることが前提です。Visual C++5.0を、デフォルトでインストールしておれば、Visual C++5.0に対する設定は何も要りません。
「コントロールパネル」の「システム」を起動し、「環境」タグを選択し、以下の環境変数を設定します。
「コマンドプロンプト」を開いて、set MOZ_BITS=32 のように、設定しても構いませんが、ここの方法で行うと、永久に保存されますので、この方法をお勧めします。
下のほうの、「変数」とかかれたテキストボックスと、「値」と書かれたテキストボックスに、以下の変数と、値を入れます。
変数
値
コメント
MOZ_BITS 32 MOZ_DEBUG 1 デバッグ版を作るときだけですが、セットしておきましょう MOZ_GOLD 1 MOZ_MEDIUM 1 MOZ_NT 351 NT3.51のときだけセットします。つまり、NT4.0では設定しません。 MOZ_OUT D:\mozilla\bin 指定しない場合、D:\mozilla\bin\x86dbg に作られます。
MOZ_DEBUGを設定しなかった場合、D:\mozilla\bin\x86relに作られます。MOZ_SRC D:\mozilla ソースコードを解凍した場所。 MOZ_TOOLS D:\mozilla_tools\windows wintools.zipを解凍した場所に、windows\bin\x86というディレクトリがあるので、そこを指定します。つまり、gmakeなどのexeを作るツールの場所を指定します。 NO_SECURITY 1 NSPR20 1 _MSC_VER 1100 MSVC++5.0以降でコンパイルする場合設定します。
そうでない場合設定しません。
私がソースを解凍した場所は、D:\mozilla で、OSは、WindowsNT4.0(SP3)、MSVC++5.0でコンパイルしましたので、上のように、黒い文字の変数だけ設定しました。つまり、NT4.0では、MOZ_NT は設定してはいけません。
MOZ_TOOLS を設定した後、D:\mozilla_tools\windows\bin\x86 の内容を、D:\mozilla_tools\windows\bin にコピーしておきます。
以下が、環境変数の設定方法です。MOZ_BITS=32 を設定している画面です。
設定したら、一字一句、きちんと確認しましょう。余分なスペースが入っていないこともしかと確認しましょう。そうしないと、一文字の違いで、うまくビルドができなくて悩むことになります。
下のほうのリストボックスで確認します。
(以下の画面は、4月8日版のものですから、MOZ_SRCやMOZ_TOOLSの設定がちょっと違います)
設定後、「OK」または「適用」ボタンを押した後、「コマンドプロンプト」からSETコマンドで、環境変数の確認もできます。
C:\mozilla> SET<return>
「コマンドプロンプト」(通称、「DOS窓」)を開きます。ここで、
- D:\mozilla\mozilla\config にディレクトリを移動して、
- nmake /f makefile.win /A を実行します。
nmake /f makefile.win と、/A をつけないと、NMAKEは何も実行しないで実行が終わってしまします。この原因は、配布されているツールは、すでにコンパイルされているので、NMAKEは何も実行する必要がないからです。ここでは、あえて、/Aを付加して、自分の環境でコンパイルしなおします。
以下が、実行の記録です。
D:\mozilla\mozilla\config>nmake /f makefile.win /A Microsoft (R) Program Maintenance Utility Version 1.62.7022 Copyright (C) Microsoft Corp 1988-1997. All rights reserved. Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86 Copyright (C) Microsoft Corp 1984-1997. All rights reserved. makecopy.c Microsoft (R) 32-Bit Incremental Linker Version 5.10.7303 Copyright (C) Microsoft Corp 1992-1997. All rights reserved. /out:makecopy.exe makecopy.obj Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86 Copyright (C) Microsoft Corp 1984-1997. All rights reserved. mangle.c Microsoft (R) 32-Bit Incremental Linker Version 5.10.7303 Copyright (C) Microsoft Corp 1992-1997. All rights reserved. /out:mangle.exe mangle.obj Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86 Copyright (C) Microsoft Corp 1984-1997. All rights reserved. mantomak.c Microsoft (R) 32-Bit Incremental Linker Version 5.10.7303 Copyright (C) Microsoft Corp 1992-1997. All rights reserved. /out:mantomak.exe mantomak.obj Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86 Copyright (C) Microsoft Corp 1984-1997. All rights reserved. bin2rc.c Microsoft (R) 32-Bit Incremental Linker Version 5.10.7303 Copyright (C) Microsoft Corp 1992-1997. All rights reserved. /out:bin2rc.exe bin2rc.obj Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86 Copyright (C) Microsoft Corp 1984-1997. All rights reserved. makecopy.c Microsoft (R) 32-Bit Incremental Linker Version 5.10.7303 Copyright (C) Microsoft Corp 1992-1997. All rights reserved. /out:makecopy.exe makecopy.obj Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86 Copyright (C) Microsoft Corp 1984-1997. All rights reserved. mangle.c Microsoft (R) 32-Bit Incremental Linker Version 5.10.7303 Copyright (C) Microsoft Corp 1992-1997. All rights reserved. /out:mangle.exe mangle.obj Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86 Copyright (C) Microsoft Corp 1984-1997. All rights reserved. mantomak.c Microsoft (R) 32-Bit Incremental Linker Version 5.10.7303 Copyright (C) Microsoft Corp 1992-1997. All rights reserved. /out:mantomak.exe mantomak.obj Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86 Copyright (C) Microsoft Corp 1984-1997. All rights reserved. bin2rc.c Microsoft (R) 32-Bit Incremental Linker Version 5.10.7303 Copyright (C) Microsoft Corp 1992-1997. All rights reserved. /out:bin2rc.exe bin2rc.obj D:\mozilla\mozilla\config>一分程度で終了します。
うまくできない場合、実行するディレクトリを間違っているか、環境変数の設定間違いです。
この段階で私が経験したエラーです。
D:\mozilla\mozilla\config>nmake /f makefile.win /A
Microsoft (R) Program Maintenance Utility Version 1.62.7022
Copyright (C) Microsoft Corp 1988-1997. All rights reserved.
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
D:\mozilla\mozilla\config>これは、
MOZ_TOOLS が、D:\mozilla_tools\windows\bin\x86
になっていました。
D:\mozilla_tools\windows\bin\x86 の内容を、D:\mozilla_tools\windows\bin にコピーして、
MOZ_TOOLS が、D:\mozilla_tools\windows
としたらうまくできました。
カレントディレクトリを、一つ上の、D:\mozilla\mozilla に移動し、nmake /f client.mak を実行します。
以下が実行開始直後です。
(以下の画面は、4月29日版です。カレントディレクトリの表示がちょっと違います。)
私が経験したエラーです。
ビルドは、割とスムースにできます。途中でエラーが出る原因は、環境設定の間違いにつきます。
これは、NSPR20 の値を、1にするところを、NSPRO20 を1としてましたので、以下のエラーが出ました。
(mozillaの1998年4月8日版のときに出たエラーです。)
これは、MOZ_SRCの設定を間違えたときに出ました。つまり、D:\ とすべきなのに、D:\mozilla としていたためです。
(mozillaの1998年4月29日版のときに出たエラーです。)
WindowsNT4.0 の場合、MOZ_NT は設定しないこと。
説明書、winbuild.htm に、MOZ_NT=351 とあるので、思わず、MOZ_NT=400 と設定してしてしまいます。WindowsNT4.0の場合は、MOZ_NTを設定をしてはいけません。
ビルドがうまくスタートすると、以下のように、文字いっぱいの画面になります。
途中で、「warning」 とか、「警告」とか、「データが失われているかもしれません」 などと出るので不安になりますが、エラーで止まってしまわない限り、じーーーーと待ちましょう。
私は、PentiumProの200MHz(Gateway G6-200)ですが、50分かかりました。
(以下の画面は、実際には、1998年4月8日版のものです。)
正常に終了すると、以下のようになりました。(以下の画面は、実際には、1998年4月29日版のものです。)
MOZ_OUT を、D:\mozilla\bin に指定しましたので、D:\mozilla\bin\x86dbg に、mozilla.exe ができています。
実行してみた結果は、「自分でビルドしたMozillaを使ってみる」を参照してください。