Mozilla Thunderbird ビルドガイド


1. 概要

これは、Visual StudioもMSDNもないけど、WindowsでThunderbirdをビルドしたいという人のための、 太っ腹Microsoftから無料で公開されているソフトウェアだけを使ってmsvc版Mozillaをビルドするためのガイドです。
Visual C++を使わなくても、gcc(mingw)でもThunderbirdのビルドは出来ます。 しかしながら、gcc版ではEnigmailが使えないなど、一部の機能が制限されます。 また、現在ではWin32-gccのビルドは積極的にサポートされていないため、 新バージョンやNightlyではビルドできなくなる可能性もあります。
そこで、ここではMicrosoftから無料で公開されているVisual C++ Toolkit 2003 + Platform SDK + .NET SDKを使ってmsvc版のThunderbirdをビルドするための手順を紹介します。
現状、リテール版のVisual Studioなしで完全にビルドできるのはThunderbirdだけです。 FirefoxやMozilla suiteはcomsupp.libが無いため、そのままではビルドできません。

2. ソフトウェアの準備

ファイルリスト

WindowsでのThunderbirdのビルドには次のソフトウェアが必要です。
コンパイラ・リンカ
  • Visual C++ Toolkit 2003
  • Microsoft .NET Framework 1.1
  • Microsoft .NET SDK 1.1
Platform SDK
  • Core SDK
  • Internet Development SDK
アセンブラ
  • MASM32
その他
  • Glib
  • LibIDL
  • wintools
UNIX互換コマンド群(cygwin)
  • ash
  • coreutils
  • diffutils
  • fileutils
  • findutils
  • gawk
  • grep
  • make
  • perl
  • sed
  • unzip
  • zip
ちなみに、gccでビルドする場合には次のcygwinパッケージを追加します。
日々更新される最新のソースコードをダウンロードしたり、 コンフィグファイルを自分でいじったり、 パッチを当てたりしたいときは次のパッケージを追加します。

インストールの手順

コンパイラ・リンカ

まず下記URLからMicrosoftのコンパイラ等を含む開発環境をダウンロードしてきます。
Visual C++ Toolkit 2003のダウンロードページではユーザ登録をするかどうか尋ねてきますが、 とくに必要が無いと思ったら登録する必要はありません。
全てダウンロードが終わったら、次の順番でインストールします。
  1. dotnetfx.exeで.NET Framework 1.1をインストール
  2. langpack.exeでNET Framework 1.1 日本語 Language Packをインストール
  3. setup.exeで.NET Framework 1.1 SDKをインストール
  4. VCToolkitSetup.exeでVisual C++ Toolkit 2003をインストール
全て標準のフォルダにインストールするのが無難です。 フォルダを変更した場合は覚えておいて下さい。

Platform SDK

Windows SDK updateのページからSDKをダウンロードします。 Windows updateと同じで、Internet Explorerでないとアクセスできません。 ActiveXを使いますので、有効にして下さい。 またポップアップブロック機能が有効になっている場合は、 途中でwww.microsoft.comに対して機能解除し、リロードする必要があります。
必要なSDKは次の通りです。
Internet Explorerで上記URLを開き、左上あたりのDownloadメニューからInstallを開きます。 必要なSDKを選択し、Start Installationを押すとインストールが始まります。

アセンブラ

アセンブラはMASM32を使います。 下記URLからダウンロードして下さい。
m32v82r.zipをダウンロードして解凍し、install.exeを実行します。 インストールは次の手順で進みます。
  1. インストール先のドライブを選択します。 C:を選択すると、c:\masm32にインストールされます。
  2. c:のmasm32に入れて良いか?と確認されるのでOKを押します。
  3. さらに次のウィンドウでInstallをクリックします。
  4. コマンドラインが出るので、何か適当にキーを押すとインストールが始まります。
  5. 「続けるには何かキーを押してください」と出るので、キーを押します。
  6. インストール成功のウィンドウが出るので、そのウィンドウを選択して何かキーを押します。
  7. Readmeが独自のエディタで表示されるので、それを確認します。
  8. 最後に残ったインストーラはCloseで閉じます。

その他

その他に、Windowsでビルドするためのサポートプログラム集であるwintoolsが必要です。 また、cl 7.1用のGlibとLibIDLが必要です。 下記URLからファイルをダウンロードして下さい。
必要なファイルは次の3つです。
wintools.zipを展開し、セットアップします。 セットアップ先のフォルダを作成し、環境変数MOZ_TOOLSを設定してからinstall.batを実行します。 コマンドラインから次のように入力します。
mkdir c:\moz_tools
set MOZ_TOOLS=c:\moz_tools
cd buildtools\windows
install.bat
次にvc71-glib-1.2.10-bin.zipとvc71-libIDL-0.6.8-bin.zipを展開します。 どちらもvc71フォルダ以下にbin, doc, include, libのフォルダがあり、 それぞれにファイルが入っています。 上書きコピーでこの2つを纏めて、c:\vc71に配置して下さい。
いずれのフォルダも、フォルダ名は任意ですが、そのパスにスペースを含んではいけません。 たとえばProgram Files以下に置いてはいけません。

cygwin

MozillaのビルドではUNIXのコマンド(make, cp, mv, rmなど)やシェルスクリプトが使われるので、 UNIX互換環境が必要となります。 そのために、WindowsでUNIX環境を作るためのcygwinをインストールします。 cygwinは次のURLで入手します。
右のほうにあるInstall cygwin nowをクリックして、setup.exeをダウンロードし、実行します。 インストール手順は次の通りです。
  1. セットアップのタイトルが表示されるので、次へ
  2. インストール元はInstall from Internetを選択して、次へ
  3. インストール先、テキストファイルタイプなどを設定して、次へ
  4. ファイルを一時的にダウンロードするフォルダを設定して、次へ
  5. プロキシを使う場合は設定して、次へ
  6. サーバリストが表示されるので、近いところをひとつ選択して、次へ
  7. インストールするパッケージをリストに基づいて選択し、次へ
  8. 自動でダウンロード、インストールが始まるので、終わるまで待つ
インストール先は標準(c:\cygwin)のままにしておくのが無難ですが、 変更する場合も例によってスペースを含めないパスにして下さい。 インストールするユーザやテキストファイルタイプの設定はいずれを選んでも、 Thunderbirdのビルドには関係ありません。 サーバ選択のところで複数のサーバを選択すると、選択したものを全てテストしてから、 一番速かったサーバが選ばれるみたいです。 日本国内であればringサーバを一つ二つ選んでおけばよいでしょう。
インストールする必要があるパッケージは次のとおりです。
右上のViewボタンを押して、リストをFull表示にすれば分かり易いでしょう。 左から2列目をクリックして選択を切り替えます。 いくつかのパッケージはすでに選択されているはずです。 クリックするたびに最新バージョン、一つ前のバージョン、インストールしない、が切り替わります。

作業フォルダ

ソースコードを格納する作業フォルダを作成しておきましょう。 ここではc:\srcにします。 どこでも良いですが、パスにスペースを含めないこと、 cygwinの中に配置してはいけないことに注意して下さい。

3. 環境変数の設定

環境変数の設定がもっともややこしいところです。 これを間違えると深い穴にはまります。
ここまでの作業で、フォルダ構成は次のようになっていると仮定します。 フォルダ名を変更した場合は適宜読み替えて下さい。
この場合、環境変数は次のように設定します。 この内容をvc71.batに保存してc:\srcに置いておきます。
cygwinがエラーを出したとき、日本語だと文字化けするので、LANGはenにしておきます。 vc71はmoz_toolsより先に来る必要があります。 masm32は一番最後に来るようにします。 不要なPATH、INCLUDE、LIBがあるとautoconfが環境認識に失敗することがあるので、 set PATHの最後に%PATH%など付けないようにします。

4. ソースコードの展開

では、Thunderbirdのソースコードを引っ張ってきましょう。 cvsを使うと最新のソースコードが入手できますが、得てして最新のツリーはバグだらけです。 最悪の場合、ビルドできない状態になっている場合もあります。 ですので、初めてビルドするときには、確実にビルドできる安定版をダウンロードして使います。
ここではThunderbird 1.0を使います。 次のURLからダウンロードして下さい。
thunderbird-1.0-source.tar.bz2をダウンロードします。
ダウンロードしたら、c:\srcに置いて、コマンドラインを開いて下さい。 まずvc71.batを実行して環境変数を設定します。 それからbunzip2、tarを使ってファイルを解凍します。
cd \src
vc71.bat
bunzip2 < thunderbird-1.0-source.tar.bz2 | tar vx
これでMozillaのソースコードがc:\src\mozilla以下に展開されました。 コマンドラインは開いたままにしておいて下さい。 コマンドラインを閉じた場合は、以下の作業を始める前にc:\srcでvc71.batを実行しなおします。

5. コンフィグとビルド

.mozconfig

.mozconfigファイルを次のように作成します。
Explorerからだとドットで始まるファイルを作成出来ません。 コマンドラインから次のように入力して空のファイルを作ることができます。
touch .mozconfig
.mozconfigファイルはテキストエディタで編集します。

ビルド

では、いよいよビルドを始めましょう。 コマンドラインから次のように入力して下さい。
cd \src\mozilla
make -f client.mk build
ビルドにはひたすら時間がかかります。 Celeron 1.3GHz + 512MB RAM + 100GB HDDで3時間ぐらいだったと思います。 Linuxのカーネルなんかよりよっぽど時間がかかります。

6. 参考URL

Visual C++ 2003 Toolkitを利用したビルドについて、次のURLを参考にしました。

7. 途中で止まる場合

cl : Command line warning D4002 : ignoring unknown option '/home/user/mozilla/config/mkdepend/cppsetup.c'
cl : Command line error D2003 : missing source filename
ソースコードをcygwinフォルダの外側に配置してやり直します。 または、c:\homeにc:\cygwin\homeを指すリパースポイントを作成します。
nspr4_s.libあたりで止まる
パスの順序が間違っているか、余計なパスがあります。 Visual C++関連がパスの前の方に来るようにして下さい。
atlbase.hが無い
C:\Program Files\Microsoft SDK\include\Win64\atlをパスに追加します。
Shlwapi.hが無い
Platform SDKのInternet Development SDKを入れます。
LINK : fatal error LNK1181: cannot open input file 'odbc32.lib'
Platform SDKのMicrosoft Data Access Componentsを入れます。

戻る