mozilla
Your Search Results

    Configuring Build Options

     

    デフォルトオプションの状態で configure および make を実行しても、動作するビルドを作り上げることはできません。.mozconfig ファイルを使って、相応のリリースビルドを入手してください。ビルドの前に次のガイドをよく読み、順番に従ってください。工程を 1 つでも飛ばせば、ソフトウェアをビルドできないか、使い物にならないビルドができるでしょう。

    Build Documentation:

    .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 に渡され、ビルドプロセスに影響を及ぼします。

    これらのオプションは ./configuremake -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

    ドキュメントのタグと貢献者

    Contributors to this page: Taken, Kozawa, Taken Bot, trevorh, teoli, Shoot, Electrolysis, Mgjbot
    最終更新者: teoli,