Visit Mozilla.org

Mac OS X Build Prerequisites

出典: MDC


Mac OS X 用の Mozilla のビルドは Mach-O ビルドです。これは gcc と Makefile を使ってビルドされます。それゆえ、Mac OS X 上でのビルド作業は Linux でのそれによく似ています。Terminal アプリケーション(/Applications/Utilities 内)の使い方に慣れておきましょう。追加の紹介して Mozilla を universal binaryとしてビルドする方法も利用できます。


CodeWarrior ベースの CFM ビルドシステムは古くなっています。Mozilla 1.3alpha 以降では動きません。

何か問題に出くわしたら Mozilla ビルド FAQ もしくは他の Mozilla build documentation を参照してください。

目次


[編集] 必要なハードウェア

特に特定のハードウェアが必要というわけではなく、 Mozilla がビルドに ソフトウェア として要求しているものに対してハードウェアを用意します。Mozilla のビルドには非常に長い時間がかかるので、推奨される開発環境と並んで最低限の環境をリストアップします。

  • CPU: PowerPC G3 以降、 PowerPC G5 か Intel CPU が推奨です。 Mozilla はすでにどちらの種類のプロセッサでも、両方に対応した Universal binary としてもビルドが可能です(Mac OS X Universal Binaries を参照)。
  • メモリ: 最小でも 256MB RAM。1GB を推奨します。
  • ディスク空き領域: デバッグ無しのビルドのためには少なくとも 1GB の空き容量が、 開発者向けデバッグビルドには少なくとも 2.5GB の空き容量が必要です。

[編集] 必要なソフトウェア

  • OS: Mac OS X 10.3.9 以降。Apple メニューにある ソフトウェア・アップデートを動かして最新版のリリース(現在は 1.0.3.9 と 10.4.10) にアップグレードをする事をお勧めします。10.1 (“Puma”) 上では Mozilla のビルドも実行もできません。Mac OS X 10.2 (“Jaguar”) 上で Mozilla ’s 1.8.0 および 1.8.1 branch を実行することはできますが、ビルドには最低でも 10.3 (“Panther”)が必要です。Mozilla 1.9 (現在の trunk) 以降では、ビルドと実行に Mac OS X 10.4 が必要です。詳細は、 Mac compatibility matrix を参照してください。

これらの要求されるソフトウェアをインストールするには、システムの管理者権限が必要でしょう。

  • 開発環境: Xcode Tools 1.5 かそれ以降。以前のバージョンの XcodeやDeveloper Tools はすでにサポートされていません。Xcode 2.0 は非推奨ですが、Xcode 2.1 かそれ以降であれば正しく機能します。テストされた Xcode の構成は Mac compatibility matrix でリスト化されています。クロス開発環境(SDKs)をインストールする事を推奨します。これは Xcode のインストーラで “カスタマイズ” をクリックする事で選択されます。Xcode を手に入れるもしくはアップグレードするには二つの方法があります:
    • ダウンロード: Apple からXcode をダウンロードします。 この方法であれば確実にあなたのコンピュータに最新版のツールを入れる事ができます。(無料の) Apple Developer Connection メンバーシップになる必要があります。Xcode のアップデート は現時点では ソフトウェア・アップデートによるインストールは行なわれないのに注意してください。
    • DVD もしくは CD: 多くの Mac や小売りバージョンの Mac OS X には Xcode のインストーラを含んだインストールディスクが含まれています。ディスクに Xcode もしくは Developer Tools があるか確認してみましょう。
  • パッケージの管理: パッケージ管理システムは厳密に必要というわけではありませんが、ビルドに必要なファイルをインストールするてっとり早い方法です。Mozilla のビルドと相性がよい二つのパッケージ管理システム、Fink と MacPorts (以前は DarwinPorts) があります。パッケージのインストールには時間がかかるでしょうが、これらのツールが作業を自動でやってくれます。
    • Fink. あなたの OS のリリースに合わせて最新バージョンのFink をダウンロードします。Fink は標準で/sw 以下にインストールされます。このインストーラは Fink の環境を設定し、これは新しいターミナルのウィンドウを開くと有効になっているでしょう。 あなたのコンピュータ上で Jaguar から Panther へのアップグレードのような OS のメジャーアップグレードをしているのであれば、 /sw ディレクトリを削除し、Fink と以下のパッケージを再インストールすることを勧めます。
    • MacPorts、以前は DarwinPorts という名前でした。 あなたの OS のリリースに一致する MacPorts インストーラをダウンロードします。MacPorts は標準で /opt/local 以下にインストールされます。MacPorts インストーラ実行後に shell の環境変数が新しいターミナルのウィンドウを開いた時に有効になるように設定されます。
  • libIDLGLib は Mozilla の IDL (interface definition language) のファイルパーサとして使われるライブラリです。これらはパッケージマネージャーを使ってインストールされるでしょう。管理者権限が必要ですので、 sudo コマンドに要求されたらあなたのパスワードを入力してください。
    • Fink を使っているなら、libIDL は ORBit のインストールに含まれます。
      $ sudo apt-get update
      $ sudo apt-get install orbit orbit-dev glib
    • MacPorts (DarwinPorts) を使っているのなら、 libIDL のインストールで GLib もインストールされます。
      $ sudo port sync
      $ sudo port install libidl
  • Shared Menus Cocoa FrameworkCamino をビルドする場合のみ要求されます。 SharedMenusCocoa のディスクイメージを ダウンロードし、 必要ならばStuffIt Expander を用いて展開し、さらに SharedMenusCocoa/build フォルダ内の SharedMenusCocoa.framework フォルダを /Library/Frameworks へコピーしてください。必ず SharedMenusCocoa の中を確認して、build フォルダの中に SharedMenusCocoa.framework があるかを確認します。もし、他のフォルダにある同じような名前のフォルダをコピーしていたら、Camino のビルドは成功しないでしょう。詳細は Camino-specific build instructions に、Intel やユニバーサルビルドで必要な追加の手順を含む、さらに多くの情報があります。
  • autoconf バージョン 2.13 は Mozilla の configure スクリプトを修正しようと考えている場合にのみ必要となります。Xcode をインストールすると /usr/bin に含まれる新しいバージョンの autoconf では、 Mozilla と互換性がありません (bug 104642)。
    • Fink を使うと、 autoconf は /sw/bin/autoconfとして配置されます。autoconf2.5 または autoconf2.54 パッケージはインストールしないでください。
      $ sudo apt-get install autoconf
    • MacPorts (DarwinPorts) を使うと、 autoconf は /opt/local/bin/autoconf213 として配置されます。他のドキュメントなどで autoconf を実行するように指示されている場合は autoconf213 と入力して実行する必要があります。末尾に 213 が付いていない autoconf のパッケージはインストールしないでください。
      $ sudo port install autoconf213


[編集] .mozconfig オプションとその他の調整

次に示すオプションは Mac OS X 向けの Mozilla のビルドに特化したものです。もっと共通なビルドオプションや .mozconfig ファイルの情報については、Configuring Build Options を参照してください。Universal binary をビルドするための情報は、Mac OS X Universal Binaries を参照してください。

  • コンパイラ: もし PowerPC 上で Mac OS X 10.4 (“Tiger”) かそれ以降を使い、1.8 branch 以前の作業をしているのであれば、システムの標準のコンパイラを gcc 3.3 に変更すべきです。このコンパイラは公式な PowerPC ビルドを作成するのに使われています。次に示すコマンドを使います:
    $ sudo gcc_select 3.3

    システム標準のコンパイラを変更する代わりとして、利用したい C と C++ のコンパイラを選択するために使う CCCXX 環境変数を configure を実行する時に指定する事で Mozilla のビルドに使うコンパイラを設定する事ができます。次のコマンドを Mozilla をビルドする前にターミナルで入力するか、あなたの .mozconfig ファイルに記述してください:

    export CC=gcc-3.3
    export CXX=g++-3.3

    Mozilla はいずれ (Xcode 2.1 かそれ以降をインストールをすると提供される) gcc 4.0 でビルドされるようになり、またいくらかの開発者たちはこの新しいコンパイラを好んでいるようです。gcc 4.0 でビルドされたアプリケーションは Mac OS X 10.3.9 かそれ以降でのみ動作します。公式な Intel ビルドは gcc 4.0 を用いて作成されています。 Intel ビルドは必ず gcc 4.0 を用いて作成されます (Apple の gcc 3.3 では Intel のバイナリを生成できません)が, Intel Mac 上で gcc 3.3 を用いて PPC の クロスコンパイル が可能です。現在の trunk (Mozilla 1.9) をビルドするには gcc 4.0 が必要です。

    Mac OS X の gcc 3.3 の最適化レベル -O3 では Mozilla をビルドをする事はできず、 どのコンパイラでもPowerPC上で -fast 最適化モードを選択するとビルドに失敗する結果となってしまう事に注意してください。

次のオプションは ac_add_options で定義を行ないます。これは .mozconfig ファイルに追加をする事を対象にした行となります。

  • Mac OS X SDK: これはシステムの header とライブラリのバージョンをビルド対象に対して選択する事で、あなたがビルドする製品が少し不完全な API が存在する古いシステムで動かす事を保証します。このオプションで SDK を選択する事で、 /usr/include, /usr/lib, そして /System/Library にある標準のライブラリを上書きします。 Mac OS X の SDK は Xcode のインストール でインストーラの カスタマイズ 画面から Cross Development を選択する事で、 /Developer/SDKs 以下にインストールされます。
    ac_add_options --with-macos-sdk=/path/to/SDK

    1.8.0 および 1.8.1 の公式な PowerPC ビルドでは /Developer/SDKs/MacOSX10.2.8.sdk を使用します。公式な Intel ビルドおよび trunk の PowerPC ビルドでは /Developer/SDKs/MacOSX10.4u.sdk を使用します。

    いくつかの framework (とりわけ AppKit) ではビルド時に使われている SDK に依存しているランタイムと違う振る舞いをするので注意してください。これは特定のプラットフォームもしくは特定のビルドでのみ見られるソースのバグとみなされます。

    Xcode 2.4 のインストーラに含まれる 10.2.8 SDK で Mozilla のビルドはできないでしょう。もし Xcode 2.4 をインストールしたなら、トラブルシューティング セクションの回避策を参照してください。

    特に Mac OS X 10.3 上で Xcode 1.5 がインストールされた環境でビルドする場合は、SDK の使用が強く推奨されます。
  • Deployment Target: このオプションはアプリケーションを動かせる最小の OS のバージョンを選択します。このオプションを正しく使うには、以下のコードを追加する必要があります。
    ac_add_options --enable-macos-target=version
    このオプションは非推奨です。1.8.0 および 1.8.1 branch における PowerPC ビルドの既定値は 10.3 です。Intel ビルドおよびすべてのプラットフォーム上の trunk における既定値は 10.4 です。公式ビルドはこれらの値を使用します。
  • Prebinding(事前結合): Mozill のビルドシステムでは、アプリケーションとライブラリを事前結合されたものとしてビルドする事ができます。これによって Mac OS X 10.3.3 とそれ以前のバージョンにおいて、アプリケーションの起動時間が早くなります。
    ac_add_options --enable-prebinding
    標準では事前結合されません。公式な PowerPC ビルドは事前結合されています。公式な Intel ビルドでは事前結合されていません。なぜなら 10.4 より前のリリースで動く Intel ビルドは存在しないからです。
  • 簡単な .mozconfig: この .mozconfig ファイルは PowerPC バージョンの Minefield (Firefox 相当のもの) をビルドに適したもので、非常に多くのコンピュータで動作します。必要なソフトウェアにあるほとんどの PowerPC Mac で動作するでしょう:
    export CC=gcc-3.3
    export CXX=g++-3.3
    . $topsrcdir/browser/config/mozconfig
    ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.3.9.sdk
    ac_add_options --enable-prebinding
    ac_add_options --disable-tests

    この .mozconfig ファイルは Intel バージョンの Minefield (Firefox 相当のもの) をビルドに適したもので、 Mac OS X 10.4 かそれ以降の Intel ベースの Mac でのみ動作するでしょう:

    . $topsrcdir/browser/config/mozconfig
    ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.4u.sdk
    ac_add_options --disable-tests


[編集] ビルド定義

Mac OS X 用のビルドのために以下のようにビルド定義が設定されています:

  • XP_MACOSX は定義済み
  • XP_UNIX は定義済み
  • XP_MAC は 未定義(XP_MAC はもはやサポートされておらず、少しづつソースツリーから削除されています (bug 281889 を参照)。これは Mac OS 9 での CFM (Mach-O ではない) ビルド用に使われていました)

Mac を除いた Unix プラットフォーム向けのコードを書く際には注意が必要です:

#if defined(XP_UNIX) && !defined(XP_MACOSX)

[編集] トラブルシューティング

  • Xcode 2.4 をインストールした後に、nsLookAndFeel.cpp で次のエラーと共に落ちます:
    error: `kThemeBrushAlternatePrimaryHighlightColor' undeclared (first use this function).

    Xcode 2.4 (build 8K1079) に含まれる 10.2.8 の SDK には、 Mozilla のビルドを妨げるバグがあります。 Apple にはこのバグを通知されており、 Radar 4671592 としてトラッキングされています。 Apple は Xcode 2.4.1 にて修正しました。

  • Mac OS X 10.3.9 上に QuickTime 7.0.4 をインストールした後、 libwidget_mac.dylib で次のエラーと共に落ちます:
    ld: /usr/lib/gcc/darwin/3.3/libstdc++.a(eh_personality.o) illegal reference to symbol: ___cxa_begin_catch defined in indirectly referenced dynamic library /usr/lib/libstdc++.6.dylib.

    この衝突の問題に対処するには、SDK を使う必要があるでしょう。MacOSX10.2.8.sdk を選択する(推奨)か、どうしても必要ならば MacOSX10.3.0.sdk を選ぶ事も可能です。この衝突を避けるには SDK を使う必要があります。MacOSX10.2.8.sdk を選択する(推奨) か、必要であれば MacOSX10.3.0.sdk を使うこともできます。SDK を使う詳しい紹介は .mozconfig オプションとその他の調整のセクションを参照してください。

    Apple は QuickTime 7.0.4 framework を Mac OS 10.3.9 かそれ以降にある libstdc++.6 共有ライブラリに誤ってリンクしてしまいましたが、このシステムのコンパイラ (gcc 3.3) とビルドツールは間違ってもこのライブラリにリンクされている事を期待していません。 gcc 3.3 では自身に静的にリンクされた libstdc++ を使う事を期待します。SDK にある QuickTime を仲介する framework ではこの問題は発生しません。

  • QuickTime SDK Update: もし QuickTime 7 をインストールもしくはアップデートをしたのなら、 QuickTime SDK のアップデートも必要になるでしょう。これはアップルメニューにある “ソフトウェア・アップデート”から手にいれられます。このアップデートはソフトウェア・アップデートが更新があると表示した時のみ必要となります。ビルドが Sound.r というファイルが見つからないという理由で落ちたのなら、このアップデートは必要でしょう。
  • Finkを使って、apt-get: command not found と表示された

    apt-get があなたの $PATH にありません。ターミナルを閉じて開き直して再度試してください。 もしエラーが続くのであれば、 Fink はあなたの環境で完全に設定できていないのかもしれません。次のステップを試してみましょう:

    • もし Mac OS X 10.3 以降の標準である bash シェルを使っているのであれば、~/.bashrc ファイルを編集して、次の行を追加します。初めのピリオドとスペースは無視しないでください。
      . /sw/bin/init.sh
    • もし tcsh シェルを使っているのなら、 ~/.tcshrc ファイルを編集して、次の行を追加します:
      source /sw/bin/init.csh
    • 適当なファイルへの編集が終わったら、ターミナルを閉じて開き直して再度試してください。
  • MacPorts (DarwinPorts) を使って, port: command not found と表示された

    port があなたの $PATH にありません。ターミナルを閉じて開き直して再度試してください。もしエラーが続くのであれば、 DarwinPorts はあなたの環境で完全に設定できていないのかもしれません。次のステップを試してみましょう:

    • もし Mac OS X 10.3 以降の標準である bash シェルを使っているのであれば、~/.bashrc ファイルを編集して、次の行を追加します:
      export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
    • もし tcsh シェルを使っているのなら、 ~/.tcshrc ファイルを編集して、次の行を追加します:
      setenv PATH "/opt/local/bin:/opt/local/sbin:$PATH"
    • 適当なファイルへの編集が終わったら、ターミナルを閉じて開き直して再度試してください。
  • Fink と Virex 7.2 を一緒に使っている: Fink と Virex 7.2 の間で衝突が発生します。両方とも /sw にファイルを配置するためです。もし Virex をインストールする必要があるのなら、最終バージョンの 7.2.1 へアップグレードする必要があります。これは Fink News (2003-04-16) に記述されています。
  • ビルドが widget/src/mac の中の libwidget.rsrc をビルドしている途中に止まります。

    ~/Library/Preferences/.GlobalPreferences.plist を削除または名前を変更してください。我々はこのファイルのどの設定がこの問題を引き起こしているのかまったく確認しておりません。もしこのファイルを消してしまうと、優先の言語設定や最近のプログラムのシステム設定が消滅してしまう事に注意してください。

  • ビルドで、 IDL の header が見つからないとエラーが出る: orbit 関係の配布物が Fink の apt-get によってインストールされているか、 あなたの .bashrc ファイルに /sw/bin/init.sh ファイルのソースもしくはあなたの .tcshrc ファイルに /sw/bin/init.csh ファイルのソースが編集されている事を確認してください。
  • ビルドでいくつか Shared Menus header が見つからないとエラーが出る: /Library/Frameworks にインストールした SharedMenusCocoa.framework を確認し、 framework の中のシンボリックリンクが問題ない事を確認してください。
  • dlfcn.h が見つからず、次のエラーが発生する。 nsTraceRefcnt.cpp:68: dlfcn.h: No such file or directory

    Fink から libdl.dylib が入っている事を確認してください。もし bash from Apple をインストールしたのであれば、これは libdl.dylib を提供しますが Mozilla などの新しいプログラムをコンパイルするのに必要な header (例えば dlfcn.h) は提供されません。解決策としては bash from Apple を削除して Fink から bash をインストールします。(Alex Stewart 氏はこの問題の調査をしていただき大変感謝しています)