From 50c10e22a2a094f9d46edd56eb64d12f7652246f Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Thu, 29 Apr 2021 11:14:49 -0400 Subject: Remove Mozilla/Developer_guide (#691) --- .../how_mozilla_s_build_system_works/index.html | 196 --------------------- .../developer_guide/build_instructions/index.html | 93 ---------- .../windows_prerequisites/index.html | 14 -- 3 files changed, 303 deletions(-) delete mode 100644 files/ja/mozilla/developer_guide/build_instructions/how_mozilla_s_build_system_works/index.html delete mode 100644 files/ja/mozilla/developer_guide/build_instructions/index.html delete mode 100644 files/ja/mozilla/developer_guide/build_instructions/windows_prerequisites/index.html (limited to 'files/ja/mozilla/developer_guide/build_instructions') diff --git a/files/ja/mozilla/developer_guide/build_instructions/how_mozilla_s_build_system_works/index.html b/files/ja/mozilla/developer_guide/build_instructions/how_mozilla_s_build_system_works/index.html deleted file mode 100644 index 9737c6a793..0000000000 --- a/files/ja/mozilla/developer_guide/build_instructions/how_mozilla_s_build_system_works/index.html +++ /dev/null @@ -1,196 +0,0 @@ ---- -title: How Mozilla's build system works -slug: Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works -tags: - - Build documentation - - Developing Mozilla - - 移行 -original_slug: How_Mozilla's_build_system_works ---- -

概要

- -

本ドキュメントは、Mozilla の GNU make ベースビルドシステムを必要とする Mozilla 開発者をターゲットとしています。 本ドキュメントでは、ビルドシステムの基本概念と用語ならびに、コンポーネントのコンパイルや jar ファイルの作成といった共通的作業をどのように行うかを解説しています。

- -

本書は Mozilla をただビルドしたい人を対象にはしていません。その場合はBuild Documentationを参照してください。

- -

概念

- -

Mozilla のビルドシステムは GNU Make をベースにしたシステムです。最も基本的なレベルでは、make はターゲットを自動生成するツールで、ターゲットごとにdependenciesrules を生成します。

- -

Mozilla プロジェクトでは、make はライブラリと実行モジュールのコンパイル、chrome の jar ファイル作成、関係ファイルのコピーに使用されます。我々は、2 パスのビルドシステムを使用しています:

- - - -

いずれのフェーズでも、ターゲットを make するだけです。これは、それぞれのディレクトリは export ターゲットとともにまず一度横断し、libs ターゲットとともに、再び横断します。 二段階のビルドは、モジュール間の循環的参照のために存在します。最初にすべてのヘッダファイルを export することで、あるモジュール(Aとする)は、別のモジュール(B)の public なヘッダファイルをインクルードしながら、モジュール(B)はモジュール(A)の public なヘッダファイルをインクルードできます。

- -

その他の重要なツールとして、configure が挙げられます。これは、ビルドの最初のステップに実行されます。configure スクリプトはシステムやコンパイラの特徴を決定し、オプションを生成します。configure スクリプトから実行される重要な製品が二つあります:

- - - -

configure スクリプトは bash シェルベースのものです。このスクリプトは M4 とともに書かれた configure.in と呼ばれるファイルから生成され、最終的なスクリプトを生成するために Autoconfを使って処理します。

- -

Makefile の基礎

- -

Makefile は、非常に複雑にもなり得ますが、Mozilla チームは、大半の Makefile をとてもシンプルにすべく、多数のビルトインルールを提供しています。make についての網羅的な解説は本説明の範囲を超えますので、こちら(GNU make)を参照してください。

- -

精通しておくとよいであろう概念の一つとして、make の変数が挙げられます。変数はVARIABLE = VALUE という構文で定義され、その値は$(VARIABLE) と記述することで参照されます。すべての変数は文字列です。

- -

Mozilla のソースコードに含まれる Makefile.in ファイルはすべて同じ基本的なフォーマットで記述されています。

- -
{{ page("/ja/docs/Standard_Makefile_Header") }}
- -
# ... Makefile の中心となる本体部分がここに入ります ...
-
- -
include $(topsrcdir)/config/rules.mk
-
-# ... 追加のルールがここに入ります ...
-
- - - -

この他によく使われる変数の一つとして、特定のビルドターゲットを指定しない DIRS があります。DIR は、現在のディレクトリを再帰的に組み込むためのサブディレクトリの一覧です。サブディレクトリは親ディレクトリの後に配置されます。以下に例を示します。

- -
DIRS = \
-       public \
-       resources \
-       src \
-       $(NULL)
-
- -

上記の例は、行結合の例でもあります。行の中の最後に現れるバックスラッシュ(訳注:通常の日本の環境では¥記号に見えることも多いので注意)は、変数定義が次の行にも続いていることを示します。行の継ぎ目の余分な空白は縮められます。終端の $(NULL) は表記に一貫性を持たせる手段です。これにより、行末のバックスラッシュの有無を気にせず行の追加・削除が行えます。

- -

Makefile examples

- - - -

ライブラリのビルド

- -

Mozilla のビルドにおけるライブラリは、主として3種に分けられます:

- - - -

Non-component shared libraries

- -

non-component shared library は、複数のコンポーネントが共有しなければならない共通コードがあり、それを XPCOM を通じて共有することが、適切でないもしくは不可能な場合に有用です。 一例として、libmsgbaseutil 向けの Makefile の一部を見てみましょう。これは、mailnews コンポーネント全体からリンクされます:

- -
DEPTH           = ../../..
-topsrcdir       = @top_srcdir@
-srcdir          = @srcdir@
-VPATH           = @srcdir@
-
-include $(DEPTH)/config/autoconf.mk
-
-MODULE          = msgbaseutil
-LIBRARY_NAME    = msgbaseutil
-EXPORT_LIBRARY = 1
-SHORT_LIBNAME   = msgbsutl
-
- -

上述した component の例との実際問題としての相違点は、IS_COMPONENT が設定されていない事だけである点に注意してください。この値を設定しない事によって、共有ライブラリが生成され、dist/bin にインストールされるでしょう。

- -

Static libraries

- -

上述の通り、静的ライブラリの主要な使用方法としては、大規模ライブラリ(主に component)のビルドの中間段階としての使用が挙げられます。これにより、複数のサブディレクトリにソースファイルを分散させて配置することができます。静的ライブラリは実行可能モジュールにもリンクされることがあります。例として、layout/base/src の Makefile の一部を以下に示します。

- -
DEPTH           = ../../..
-topsrcdir       = @top_srcdir@
-srcdir          = @srcdir@
-VPATH           = @srcdir@
-
-include $(DEPTH)/config/autoconf.mk
-
-MODULE          = layout
-LIBRARY_NAME    = gkbase_s
-
-# REQUIRES and CPPSRCS omitted here for brevity #
-
-# we don't want the shared lib, but we want to force the creation of a static lib.
-FORCE_STATIC_LIB = 1
-
-include $(topsrcdir)/config/rules.mk
-
- -

ここでは FORCE_STATIC_LIB = 1 というキーが設定されています。これにより、(unix の場合)libgkbase_s.a が、Windows の場合はgkbase_s.lib が生成され、dist/lib にコピーされます。では、コンポーネントを作成するために複数の静的ライブラリを合わせてリンクする方法をざっと見てみましょう。

- -
DEPTH           = ../..
-topsrcdir       = @top_srcdir@
-srcdir          = @srcdir@
-VPATH           = @srcdir@
-
-include $(DEPTH)/config/autoconf.mk
-
-MODULE          = layout
-LIBRARY_NAME    = gklayout
-EXPORT_LIBRARY = 1
-IS_COMPONENT    = 1
-MODULE_NAME     = nsLayoutModule
-
-CPPSRCS         = \
-                nsLayoutModule.cpp \
-                $(NULL)
-
-SHARED_LIBRARY_LIBS = \
-                $(DIST)/lib/$(LIB_PREFIX)gkhtmlbase_s.$(LIB_SUFFIX) \
-                $(DIST)/lib/$(LIB_PREFIX)gkhtmldoc_s.$(LIB_SUFFIX) \
-                $(DIST)/lib/$(LIB_PREFIX)gkhtmlforms_s.$(LIB_SUFFIX) \
-                $(DIST)/lib/$(LIB_PREFIX)gkhtmlstyle_s.$(LIB_SUFFIX) \
-                $(DIST)/lib/$(LIB_PREFIX)gkhtmltable_s.$(LIB_SUFFIX) \
-                $(DIST)/lib/$(LIB_PREFIX)gkxulbase_s.$(LIB_SUFFIX) \
-                $(DIST)/lib/$(LIB_PREFIX)gkbase_s.$(LIB_SUFFIX) \
-                $(DIST)/lib/$(LIB_PREFIX)gkconshared_s.$(LIB_SUFFIX) \
-                $(DIST)/lib/$(LIB_PREFIX)gkxultree_s.$(LIB_SUFFIX) \
-                $(DIST)/lib/$(LIB_PREFIX)gkxulgrid_s.$(LIB_SUFFIX) \
-                $(NULL)
-
-include $(topsrcdir)/config/rules.mk
-
- -

SHARED_LIBRARY_LIBS は、本共有ライブラリにリンクすべき静的ライブラリを並べて記述します。LIB_PREFIXLIB_SUFFIX を使用することで、すべてのプラットフォームで動作させることができることに注意してください。

- -

Jar ファイルをビルドする

- -

Jar ファイルは(XUL、JavaScript、CSSといった) chrome ファイルのパッケージングに使用します。Jar パッケージングについてのより詳細な情報は、{{ mediawiki.external('jar-packaging.html このドキュメント') }}で得られます。ここでは、Jar パッケージを行うために Makefile をどのように設定するかのみ述べます。以下に例を示します。

- -
DEPTH           = ../../../..
-topsrcdir       = @top_srcdir@
-srcdir          = @srcdir@
-VPATH           = @srcdir@
-
-include $(DEPTH)/config/autoconf.mk
-
-include $(topsrcdir)/config/rules.mk
- -

そうです。ここでは定義が必要な外部変数は使用されていません。Makefile.in と同じディレクトリに jar.mn ファイルがある場合、自動的に処理されるのです。jar.mn と chrome ファイルを含む resources ディレクトリを作成するのが通例ですが、ライブラリを作成するディレクトリに jar.mn を設置したいのであれば、これも動作します(処理されます)。

- -
-

著作情報

- - -
diff --git a/files/ja/mozilla/developer_guide/build_instructions/index.html b/files/ja/mozilla/developer_guide/build_instructions/index.html deleted file mode 100644 index e422ae0498..0000000000 --- a/files/ja/mozilla/developer_guide/build_instructions/index.html +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Build and Install -slug: Mozilla/Developer_guide/Build_Instructions -tags: - - Build documentation - - Developing Mozilla -translation_of: Mozilla/Developer_guide/Build_Instructions -translation_of_original: Build_and_Install ---- -

注意:最初にビルドオプションの設定をしてからビルドしてください!

- -

ビルド

- -

Mozilla のチェックアウトやビルドには必ず GNU make を使用してください。他の "make" プログラムは好ましくありません。Windows、Mac OS X および GNU/Linux では GNU make を実行するために "make" を使ってください。ほとんどの 非 GNU の unix では "gmake" を使ってください。

- -

Windows、Mac OS X および GNU/Linux では必ずソースディレクトリの最上部 ("mozilla") で make コマンドを実行してください。

- -
make -f client.mk build
-
- -

Mac OS X での注意:ソースの tar ボールを展開したときに作成されるソースディレクトリのパスにスペースが含まれないようにしてください。

- -

ほとんどの非 GNU の unix の場合

- -
$ gmake -f client.mk build
-
- -

手動で configure やビルドをしたい場合は、オブジェクトディレクトリに移動し、configure を実行し、make/gmake を実行してください。configure が .mozconfig ファイルで指定したオプションを拾います。

- -

できたビルドの実行

- -

できたビルドをビルドに使われたディレクトリから直接実行することができます。しかし、ビルドディレクトリにはビルドツリーへのシンボリックリンクが含まれます。共有したり移動したりできるスタンドアローンなビルドにするためには、インストールやパッケージングの作業が必要です。

- -

Windows と Linux

- -

macintosh 以外のビルドシステムでは、ビルドの完成品はobjdir /dist/bin にあります。POSIX プラットフォーム(BSD、GNU/Linux、Solaris)ではバイナリの "mozilla-bin" や "firefox-bin" ではなく、"mozilla" や "firefox" というファイルを実行してください。

- -

Mac OS X

- -

macintosh ではビルドシステムによってobjdir /dist/AppName .app にアプリケーションバンドルが生成されます。例えば、objdir /dist/Minefield.app です。

- -

--enable-debug 付きでビルドすると、アプリケーションはobjdir /dist/AppName Debug.app、例えばobjdir /dist/MinefieldDebug.app に配置されますので注意してください。

- -

Finder からアプリケーションバンドルを開いたり、またはコマンドラインから次のものを実行したりすることでアプリケーションを実行することができます。

- -
$ objdir/dist/AppName[Debug].app/Contents/MacOS/appname
-
- -

例えば

- -
$ objdir/dist/MinefieldDebug.app/Contents/MacOS/firefox
-
- -

ビルドのインストール

- -

POSIX プラットフォームではgmake install を実行することによってできたビルドをシステムにインストールすることができます。しかしながら、以下のステップに従って tarball を作り、それを展開したほうがいい場合がよくあります。

- -

ほとんどのアプリケーションでは、アプリケーション特有のディレクトリで make することでビルドの tarball や zip パッケージを作ることができます。

- - - -

実際の例 Firefox の最適化・静的ビルド 用の .mozconfig ファイルを使用する場合、

- - - -

こうすることで、ff-opt-static/dist ディレクトリ内に、どこにでも展開できる firefox-1.5.0.3.en-US.linux-i686.tar.gz ファイルができます。

- -

windows 用のインストーラを作るためには、上記のディレクトリで "installer" ターゲットを make してください。

- - - -

注意:Firefox や Thunderbird で使われる圧縮率の高いインストーラを作るためには追加のアプリケーションをインストールする必要があります。

- - - -

これらのユーティリティの両方に PATH が通っている必要があります。さらに、MOZ_INSTALLER_USE_7ZIP 環境変数を設定する必要があります。

- -
 
- -

{{ languages( { "en": "en/Build_and_Install", "es": "es/Compilar_e_instalar", "fr": "fr/Compilation_et_installation", "zh-cn": "cn/\u7f16\u8bd1\u4e0e\u5b89\u88c5" } ) }}

diff --git a/files/ja/mozilla/developer_guide/build_instructions/windows_prerequisites/index.html b/files/ja/mozilla/developer_guide/build_instructions/windows_prerequisites/index.html deleted file mode 100644 index 6a6dba127e..0000000000 --- a/files/ja/mozilla/developer_guide/build_instructions/windows_prerequisites/index.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Building with VC8 Express -slug: Mozilla/Developer_guide/Build_Instructions/Windows_Prerequisites -tags: - - Build documentation - - Developing Mozilla -original_slug: Building_with_VC8_Express ---- -

-

このページは破棄されました。標準の Windows ビルドに必要な環境は現在、Microsoft Visual C++ バージョン 8 Express Edition が使用されています。 -

-
-
-{{ languages( { "en": "en/Building_with_VC8_Express" } ) }} -- cgit v1.2.3-54-g00ecf