この翻訳は不完全です。英語から この記事を翻訳 してください。
デフォルトオプションの状態で configure および make を実行しても、動作するビルドを作り上げることはできません。.mozconfig ファイルを使って、相応のリリースビルドを入手してください。ビルドの前に次のガイドをよく読み、順番に従ってください。工程を 1 つでも飛ばせば、ソフトウェアをビルドできないか、使い物にならないビルドができるでしょう。
.mozconfig 設定ファイルを使う
手動でコマンドラインオプションを使って configure
を実行することも可能ですが、推奨しません。代わりに、ソースディレクトリに .mozconfig ファイルを置いてください (mozilla/.mozconfig)。または HOME ディレクトリに .mozconfig ファイルを置いてください (~/.mozconfig)。
echo "# My first mozilla config" > .mozconfig
.mozconfig は 2 種類のオプションから成り立っています。
mk_add_options
接頭辞の付いたオプションはclient.mk
に渡され、通常は cvs チェックアウトやアップデートを制御するものです。ac_add_options
接頭辞の付いたオプションはconfigure
に渡され、ビルドプロセスに影響を及ぼします。
これらのオプションは ./configure
や make -f client.mk
が実行されるときに自動的に使用されます。
このページの下の方に .mozconfig ファイルの例がいくつかあります。
MOZCONFIG 環境変数を設定ファイルのフルパスに設定する方法もあります:
export MOZCONFIG=~/mozilla/mozconfig-firefox
この方法は、アプリケーションや設定ごとに異なる複数の .mozconfig ファイルを使い分けることができるので便利です。 この 'export' の例ではファイル名が .mozconfig ではないことに注意してください。実際に使用するファイルの名前がなんであれ、以下の例ではこのファイルのことを .mozconfig ファイルと呼びます。
オブジェクトディレクトリを用いてビルドする
mozilla をビルドする際にオブジェクトディレクトリを使用することを強く勧めます。これによってソースコードとオブジェクトファイルがディレクトリシステム内で混ざらなくなります。オブジェクトディレクトリを使うと、同じソースツリーから複数のアプリケーション(例えば Firefox と Thunderbird)をビルドすることができます。
オブジェクトディレクトリを使うことでソースツリー中の各 Makefile.in ファイルがオブジェクトディレクトリ内の Makefile に変わります。Makefile.in の親ディレクトリはオブジェクトディレクトリ内の対応する Makefile と同じ親ディレクトリになります。例えばファイル mozilla/modules/plugin/base/src/Makefile.in
の場合、オブジェクトディレクトリを @TOPSRCDIR@/obj-debug
とすると、ファイルおよびディレクトリパス mozilla/obj-debug/modules/plugin/base/src/Makefile
が作られます。この Makefile は mozilla/modules/plugin/base/src
ディレクトリ内のソースファイルを参照してくれます。
configure を手動で再実行する必要がある場合は、オブジェクトディレクトリ内から configure スクリプトの絶対パスを用いて作業を行ってください。例えば Win32 で実行する場合、かつソースツリーが /cygdrive/c/Projects/FIREFOX/mozilla
にある場合、手動で configure を実行する必要があるときには常にオブジェクトディレクトリ内から /cygdrive/c/Projects/FIREFOX/mozilla/configure
を実行することになります。
.mozconfig に次の行を追加することでオブジェクトディレクトリが有効になります。
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@
オブジェクトディレクトリを 'mozilla' ディレクトリの中に置かないようにしてください。そうしないと大量のビルドエラーが表示されるでしょう。
アプリケーションを選ぶ
- Mozilla Suite (SeaMonkey)
- 以下のオプションを指定してください。
ac_add_options --enable-application=suite # CVS から SeaMonkey をチェックアウトするために以下のオプションを使う。 mk_add_options MOZ_CO_PROJECT=suite
- ブラウザ (Firefox)
- .mozconfig ファイルで Firefox の デフォルトの mozconfig ファイル を読み込んでください。
. $topsrcdir/browser/config/mozconfig
今後ファイルの内容が変わるかもしれないので、ファイルの内容を mozconfig にコピーアンドペーストしないでください!
- メール (Thunderbird)
- .mozconfig ファイルで Thunderbird の デフォルトの mozconfig ファイル を読み込んでください。
. $topsrcdir/mail/config/mozconfig
今後ファイルの内容が変わるかもしれないので、ファイルの内容を mozconfig にコピーアンドペーストしないでください!
- スタンドアローンな Calendar (Sunbird)
- .mozconfig ファイルで Sunbird の デフォルトの mozconfig ファイル を読み込んでください。
. $topsrcdir/calendar/sunbird/config/mozconfig
今後ファイルの内容が変わるかもしれないので、ファイルの内容を mozconfig にコピーアンドペーストしないでください!
- XULRunner
- .mozconfig ファイルで XULRunner の デフォルトの mozconfig ファイル を読み込んでください。
. $topsrcdir/xulrunner/config/mozconfig
今後ファイルの内容が変わるかもしれないので、ファイルの内容を mozconfig にコピーアンドペーストしないでください!
ビルドオプションを選ぶ
選ぶべきビルドオプションは、どのアプリケーションをビルドするつもりなのか、そのビルドを何のために使うのかに依存します。ビルドを定期的に使用したいのであれば、余計なデバッグ情報を含まないリリースビルドが必要でしょう。ソースコードをハックしたい開発者ならば、余計なデバッグマクロを含んだ最適化されていないビルドが必要でしょう。
configure スクリプトに認識されるオプションの中には、組み込みなどの特別な目的のためのものであって、完全なスイートや XUL アプリケーションをビルドするためには使うべきではないものがたくさんあります。オプションの完全なリストを手に入れるには、./configure --help を実行してください。
目的のわからない configure オプションは使わないでください! 以下が非常に一般的なビルドオプションです。
最適化
- ac_add_options --enable-optimize
- デフォルトの最適化オプションを有効にします。
- ac_add_options --enable-optimize=-O2
- 特定の最適化オプションを指定します。ほとんどの場合、mozilla コードベースをよく知っているのでないならば希望の結果を得られません。
- ac_add_options --disable-debug
- 余計なデバッグマクロを無効にします。
- ac_add_options --disable-optimize
- 最適化を無効にします。デバッガでの解析を簡易化します。
- ac_add_options --enable-debug
- デバッグマクロや他のデバッグ専用コードを有効にします。ビルドは著しく遅くなりますが、パッチを書く際に大変有用です。
グラフィックスツールキット
- ac_add_options --enable-default-toolkit=gtk2|gtk|xlib|qt|cairo-gtk2|cairo-windows|windows|mac|cocoa|cairo-cocoa|os2|beos|photon
- グラフィックスツールキットを選択します。
トランク / 1.9 (Firefox 3) をビルドする場合、どのプラットフォームでもこのオプションは必要ありません。グラフィックスツールキットを手動で選択すると、まったく動かないか、バグだらけのビルドができあがる可能性があります。 The available toolkits differ from those listed above.
1.8 ブランチをビルドする場合、Windows、OS2、BeOS、Photon では自動的に正しいツールキットが選択されるので、これらのプラットフォームでは必要ありません。Mac でも古いブランチの Camino をビルドするのでなければ必要ありません(Camino は --enable-default-toolkit=cocoa を使用します)。
*nix プラットフォームではグラフィックスツールキットを選択します。GTK2 と GTK はともに十分にテストされています。xlib は tier-3 プラットフォーム であるとみなされています。Qt と cairo は実験的なのでバグがあるでしょう。
- ac_add_options --enable-xft
- XFT による高品位のフォントレンダリングを有効にします。--enable-default-toolkit=gtk2 としたときにのみ使用可能で、gtk2 を使う際には推奨します。このオプションはトランクには無くなりました (XFT は cairo-gtk2 に必須) 。
- ac_add_options --enable-freetype2
- freetype によるフォントレンダリングを有効にします。これは GTK ツールキットではデフォルトです。--enable-xft とは共存できません。トランクには適用されません。
コンポーネントの静的リンク
ac_add_options --enable-libxul
(デフォルト)- コア gecko コンポーネントを libxul という単一のライブラリとしてビルドします。再配置の実行回数を減らすことで起動時と実行時のパフォーマンスが改善します。
ac_add_options --enable-static --disable-libxul
- これらのオプションはより大きな単一の実行ファイルを作ります。このファイルは静的にリンクされたコンポーネントを保持します。
--enable-static
には--disable-libxul
が必須です。--enable-static
を使用するのであれば--disable-tests
も推奨します。このオプションは Firefox では非推奨です。libxul 設定ではまだビルドできない Thunderbird や SeaMonkey のためだけに存在しています。 ac_add_options --disable-static --disable-libxul
- これらのオプションはコンポーネントを別々の共有ライブラリにします。これによりデバッグやインクリメンタルコンパイルが大変簡単になりますが、結果として得られるビルドは遅くなります。
拡張機能
- ac_add_options --enable-extensions=default|all|ext1,ext2,-skipext3
extensions/
には多くのオプション的なコードがあります。これらの拡張機能の多くはブラウジング体験に不可欠なものであるとみなされています。スイート向け拡張機能のデフォルトのリストがありますが、それぞれのアプリケーション固有の mozconfig は異なったデフォルトセットを指定しています。全てのアプリケーションとは共存できない拡張機能もあります。例えば、- cookie は thunderbird と共存できません
- typeaheadfind はどのツールキットアプリケーション (Firefox、Thunderbird、Sunbird) とも共存できません
どの拡張機能がどのアプリケーションと共存可能かを知らないのであれば、--enable-extensions オプションを使ってはいけません。ビルドシステムが自動的に適当な拡張機能のデフォルトセットを選択してくれます。
テスト
- ac_add_options --disable-tests
- デフォルトでは多くの補助的なテストアプリケーションがビルドされます。これらはデバッグや mozilla のソースにパッチを当てるのに役立ちます。これらのテストアプリケーションを無効にすることでかなりビルド時間を短縮し、ディスクスペースを減らすことができます。
- ac_add_options --disable-mochitest
- 上と同じですが、UI を必要とする別のテストのためのものです。
その他のオプション
- ac_add_options --disable-crypto
- 暗号化機能はデフォルトで有効になっています。国によっては暗号化機能を持ったソフトウェアの使用や輸出が違法であることがあります。自分の国の暗号に関する法律について熟知しておいてください。
1.7 および aviary ブランチでは暗号化機能はデフォルトで無効になっていました。SSL、SMIME あるいは暗号化機能を必要とする他の機能が必要であれば
--enable-crypto
を指定する必要があります。 - ac_add_options --disable-javaxpcom(Java なし)
- XULRunner ではデフォルトで Java-XPCOM ブリッジ がビルドされます。これは JDK がインストールされていなければなりません。configure 中に
The header jni.h was not found. Set $JAVA_HOME or use --with-java-include-path
というエラーが発生した場合はac_add_options --disable-javaxpcom
を使用することで java 依存性を無効にすることができます。
.mozconfig ファイルの例
Firefox のリリース用デフォルト設定
. $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt ac_add_options --disable-tests
Thunderbird のデバッグビルド
. $topsrcdir/mail/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/tbird-debug mk_add_options MOZ_CO_PROJECT=mail,calendar ac_add_options --disable-optimize ac_add_options --enable-debug
SeaMonkey の最適化(非静的)ビルド
mk_add_options MOZ_CO_PROJECT=suite ac_add_options --enable-application=suite mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/suite-opt ac_add_options --enable-optimize ac_add_options --disable-debug
XULRunner の最小リリースビルド
mk_add_options MOZ_CO_PROJECT=xulrunner mk_add_options MOZ_OBJDIR=@topsrcdir@/obj-xulrunner ac_add_options --enable-application=xulrunner #ac_add_options --disable-javaxpcom
同一のソースツリーから複数のアプリケーションをビルドする
必要なソースをすべてチェックアウトしており、アプリケーションごとに 異なったオブジェクトディレクトリを使用 しているのであれば、同一のソースツリーから複数のアプリケーションをビルドすることができます。
複数の mozconfig ファイルを作成したり、または MOZ_BUILD_PROJECTS という make オプションを使用したりすることができます。
単一の mozconfig において MOZ_BUILD_PROJECTS を使う
MOZ_BUILD_PROJECTS を使用するには MOZ_OBJDIR および MOZ_BUILD_PROJECTS という make オプションを指定する必要があります。これはスペースで名前を区切ります。それぞれの名前は任意のディレクトリ名をとることができます。それぞれの名前についてトップレベルのオブジェクトディレクトリの下にサブディレクトリが作られます。そうしたら、指定した名前とともに ac_add_app_options を使用して各オブジェクトディレクトリに別々のアプリケーションが入るようにする必要があります。
例:
ac_add_options --disable-optimize --enable-debug ac_add_options --enable-default-toolkit=gtk2 --disable-freetype2 --enable-xft mk_add_options MOZ_OBJDIR=/home/amil082/mozilla_trunk/obj-@CONFIG_GUESS@ mk_add_options MOZ_BUILD_PROJECTS="xulrunner browser mail" mk_add_options MOZ_CO_PROJECT="xulrunner browser mail" ac_add_app_options browser --enable-application=browser ac_add_app_options xulrunner --enable-application=xulrunner ac_add_app_options mail --enable-application=mail
この mozconfig ファイルを使って 1 つのプロジェクトだけをビルドしたい場合は次のコマンドラインを使用します。
make -f client.mk build MOZ_CURRENT_PROJECT=browser
これでブラウザだけがビルドされます。
複数の mozconfig ファイルを使う
別の方法として、mozconfig ファイルを分けて作成することもできます。
例として、以下に Firefox と Thunderbird をビルドするためのステップを示します。はじめに 3 つの mozconfig ファイルを作る必要があります。
mozconfig-common:
mk_add_options MOZ_CO_PROJECT=browser,mail # ここに他の共通オプションを追加してください # 静的リリースビルドを作り、テストを無効にするなど ac_add_options --enable-optimize --disable-debug ac_add_options --disable-tests
mozconfig-firefox:
# 共通の mozconfig のインクルード . ./mozconfig-common # Firefox のビルド mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-static ac_add_options --enable-application=browser
mozconfig-thunderbird:
# 共通の mozconfig のインクルード . ./mozconfig-common # Thunderbird のビルド mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/thunderbird-static ac_add_options --enable-application=mail
以下のコマンドを実行してチェックアウトします。
export MOZCONFIG=/path/to/mozilla/mozconfig-common make -f client.mk checkout
以下のコマンドを実行して Firefox をビルドします。
export MOZCONFIG=/path/to/mozilla/mozconfig-firefox make -f client.mk build
以下のコマンドを実行して Thunderbird をビルドします。
export MOZCONFIG=/path/to/mozilla/mozconfig-thunderbird make -f client.mk build
configure オプションの完全なリスト
警告: 目的のわからない configure オプションは使わないでください。 デフォルトのオプションが存在するのには理由があります! mozconfig ファイルの設定が少ないほどビルドが成功する可能性は高くなります。
- --[enable/disable]-accessibility - tested and works well in shipping software. このオプションは初期のバージョンでは有効に出来ないため、不安定になるでしょう。詳しい情報は news.mozilla.org の mozilla.dev.accessibility ニュースグループを見てください。
- --[enable/disable]-activex
- --[enable/disable]-activex-scripting
- --[enable/disable]-application=APP
- --[enable/disable]-auto-deps
- --[enable/disable]-boehm - Boehm Garbage Collector は非常に古くなっています。
- --[enable/disable]-canvas
- --[enable/disable]-chrome-format=jar|flat|both|symlink
- --[enable/disable]-codesighs
- --[enable/disable]-compile-environment
- --[enable/disable]-composer
- --[enable/disable]-cookies
- --[enable/disable]-cpp-exceptions
- --[enable/disable]-cpp-rtti
- --[enable/disable]-crashreporter - デフォルトで有効ですが、Linux のビルドで問題が起こることがあります。詳しくは Linux Build Prerequisites を見てください。
- --[enable/disable]-crypto
- --[enable/disable]-ctl
- --[enable/disable]-dbus
- --[enable/disable]-debug-modules
- --[enable/disable]-debug[=DBG] - デバッグ出力やその他のコンパイルおよびリンク指示のためのマスタースイッチ。
- --[enable/disable]-debugger-info-modules
- --[enable/disable]-default-toolkit=TK
- --[enable/disable]-dtrace
- --[enable/disable]-eazel-profiler-support
- --[enable/disable]-efence
- --[enable/disable]-elf-dynstr-gc
- --[enable/disable]-extensions
- --[enable/disable]-feeds
- --[enable/disable]-freetypetest
- --[enable/disable]-glibtest
- --[enable/disable]-glitz
- --[enable/disable]-gnomeui
- --[enable/disable]-gnomevfs
- --[enable/disable]-help-viewer
- --[enable/disable]-image-encoders[={mod1,mod2,default,all,none}]
- --[enable/disable]-inspector-apis
- --[enable/disable]-install-strip
- --[enable/disable]-installer
- --[enable/disable]-insure
- --[enable/disable]-ipcd
- --[enable/disable]-javaxpcom
- --[enable/disable]-jemalloc
- --[enable/disable]-jprof
- --[enable/disable]-js-static-build
- --[enable/disable]-js-ultrasparc
- --[enable/disable]-jsd
- --[enable/disable]-jsloader
- --[enable/disable]-ldap
- --[enable/disable]-ldap-experimental
- --[enable/disable]-leaky
- --[enable/disable]-libIDLtest
- --[enable/disable]-libxul
- --[enable/disable]-logging
- --[enable/disable]-logrefcnt
- --[enable/disable]-long-long-warning
- --[enable/disable]-macos-target=VER
- --[enable/disable]-mailnews
- --[enable/disable]-mathml
- --[enable/disable]-md
- --[enable/disable]-mochitest
- --[enable/disable]-native-uconv
- --[enable/disable]-necko-disk-cache
- --[enable/disable]-necko-protocols[={http,ftp,default,all,none}]
- --[enable/disable]-necko-small-buffers
- --[enable/disable]-negotiateauth
- --[enable/disable]-official-branding
- --[enable/disable]-oji
- --[enable/disable]-old-abi-compat-wrappers
- --[enable/disable]-optimize
- --[enable/disable]-optimize=[OPT]
- --[enable/disable]-os2-high-mem
- --[enable/disable]-parental-controls
- --[enable/disable]-pedantic
- --[enable/disable]-perf-metrics
- --[enable/disable]-permissions
- --[enable/disable]-places
- --[enable/disable]-plaintext-editor-only
- --[enable/disable]-plugins
- --[enable/disable]-postscript
- --[enable/disable]-prebinding
- --[enable/disable]-pref-extensions
- --[enable/disable]-printing
- --[enable/disable]-profile-guided-optimization
- --[enable/disable]-profile-modules
- --[enable/disable]-profilelocking
- --[enable/disable]-profilesharing
- --[enable/disable]-quantify
- --[enable/disable]-rdf
- --[enable/disable]-reflow-perf
- --[enable/disable]-safe-browsing
- --[enable/disable]-shark
- --[enable/disable]-startup-notification
- --[enable/disable]-static
- --[enable/disable]-static-mail
- --[enable/disable]-storage
- --[enable/disable]-strip
- --[enable/disable]-svg
- --[enable/disable]-svg-foreignobject
- --[enable/disable]-system-cairo
- --[enable/disable]-system-hunspell
- --[enable/disable]-system-lcms
- --[enable/disable]-system-sqlite
- --[enable/disable]-tests
- --[enable/disable]-timeline 廃止 Gecko 8.0
- --[enable/disable]-trace-malloc
- --[enable/disable]-ui-locale=ab-CD
- --[enable/disable]-universalchardet
- --[enable/disable]-update-channel=CHANNEL
- --[enable/disable]-update-packaging
- --[enable/disable]-updater
- --[enable/disable]-url-classifier
- --[enable/disable]-v1-string-abi
- --[enable/disable]-view-source
- --[enable/disable]-webservices
- --[enable/disable]-wrap-malloc
- --[enable/disable]-xmlextras
- --[enable/disable]-xpcom-fastload
- --[enable/disable]-xpcom-lea
- --[enable/disable]-xpcom-obsolete
- --[enable/disable]-xpconnect-idispatch
- --[enable/disable]-xpctools
- --[enable/disable]-xpfe-components
- --[enable/disable]-xpinstall
- --[enable/disable]-xterm-updates
- --[enable/disable]-xtf
- --[enable/disable]-xul
- --[enable/disable]-zipwriter
- --bindir=DIR
- --build=BUILD
- --cache-file=FILE
- --datadir=DIR
- --exec-prefix=EPREFIX
- --help - configure 実行ファイルで利用できるオプションの一覧を出力します。
- --host=HOST - --host、--target、および --prefix オプションはクロスコンパイルに使用します。
- --includedir=DIR
- --infodir=DIR
- --libdir=DIR
- --libexecdir=DIR
- --localstatedir=DIR
- --mandir=DIR
- --no-create
- --oldincludedir=DIR
- --prefix=PREFIX - --host、--target、および --prefix オプションはクロスコンパイルに使用します。
- --program-prefix=PREFIX
- --program-suffix=SUFFIX
- --program-transform-name=PROGRAM
- --quiet
- --sbindir=DIR
- --sharedstatedir=DIR
- --srcdir=DIR
- --sysconfdir=DIR
- --target=TARGET - --host、--target、および --prefix オプションはクロスコンパイルに使用します。
- --version
- --with-PACKAGE[=ARG]
- --with-branding=dir
- --with-default-mozilla-five-home
- --with-distribution-id=ID
- --with-doc-include-dirs=DIRS
- --with-doc-input-dirs=DIRS
- --with-doc-output-dir=DIR
- --with-embedding-profile=default|basic|minimal
- --with-ft-exec-prefix=PFX
- --with-ft-prefix=PFX
- --with-glib-exec-prefix=PFX
- --with-glib-exec-prefix=PFX
- --with-glib-prefix=PFX
- --with-glib-prefix=PFX
- --with-insure-dirs=DIRS
- --with-insure-exclude-dirs=DIRS
- --with-java-bin-path=dir
- --with-java-include-path=dir
- --with-libIDL-exec-prefix=PFX
- --with-libIDL-prefix=PFX
- --with-libxul-sdk=PFX
- --with-macos-sdk=dir
- --with-nspr-exec-prefix=PFX
- --with-nspr-prefix=PFX
- --with-nss-exec-prefix=PFX
- --with-nss-prefix=PFX
- --with-pthreads
- --with-system-bz2[=PFX]
- --with-system-jpeg[=PFX]
- --with-system-nspr
- --with-system-nss
- --with-system-png[=PFX]
- --with-system-zlib[=PFX]
- --with-user-appdir=DIR
- --with-windows-version=WINVER
- --with-wrap-malloc=DIR
- --with-x
- --with-xulrunner-stub-name=appname
- --without-PACKAGE
- --without-libIDL
- --x-includes=DIR
- --x-libraries=DIR