doc/ja_JP.eucJP/man/man7/build.7
Kazuo Horikawa 286fbe26c7 Catch up with 5.0-CURRENT-20021105-JPSNAP.
mmroff.1 came from mmroff.7.

Following changes will be delivered later: groff_www.7, groff_char.7,
groff_ms.7 and roff.7.

File removed can also be found at following location:
ftp://daemon.jp.freebsd.org/pub/FreeBSD-jp/man-jp/work/contrib/
2002-12-09 03:41:44 +00:00

234 lines
6.4 KiB
Groff

.\" Copyright (c) 2000
.\" Mike W. Meyer
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/share/man/man7/build.7,v 1.20 2002/03/20 14:33:37 ru Exp %
.\"
.\" $FreeBSD$
.Dd March 15, 2002
.Dt BUILD 7
.Os
.Sh 名称
.Nm build
.Nd システムの構築方法についての情報
.Sh 解説
.Fx
システムおよびアプリケーションのソースコードは、異なる 3 つの
ディレクトリに格納されています。通常は、
.Pa /usr/src ,
.Pa /usr/doc ,
.Pa /usr/ports
です。
.Pa /usr/src
には
.Dq "ベースシステム"
のソースが含まれています。ベースシステムとは、システムを使える
状態に構築し直すのに必要なものとして大雑把に定義されています。
.Pa /usr/doc
にはシステムドキュメントのソースが含まれています。ただし、マニュアル
ページは除きます。
.Pa /usr/ports
は、サードパーティのアプリケーションを構築し、インストールするための
一貫したインタフェースを提供しているツリーです。
.Pp
これら 3 つのディレクトリそれぞれに格納されているものを構築し
インストールするには、
.Xr make 1
コマンドを使用します。これら 3 つのディレクトリ、もしくは
サブディレクトリ内のどこででも
.Xr make 1
コマンドを実行すれば、
そのディレクトリ配下のサブディレクトリ内すべてで同一のコマンドを
発行したのと同じ効果があります。
ターゲットを指定しなければ、make コマンドを実行した
ディレクトリ内にあるものを単純に構築します。
次のリストはその他のターゲットの名称およびアクションを示した
ものです:
.Bl -tag -width indent-two
.It Cm clean
構築プロセス中で生成されたファイルをすべて消去します。
.It Cm install
このディレクトリに対する構築結果をインストールします。
.It Cm update
更新されたソースを
.Pa /etc/make.conf
で設定されている通りに取得します。
.El
.Pp
その他の
.Pa /usr/src
での make ターゲットは次のものがあります:
.Bl -tag -width indent-two
.It Cm buildworld
カーネル以外のすべてのものを再構築し、
.Pa /etc
ディレクトリ内のファイルを設定してリリースします。
.It Cm installworld
.Cm buildworld
で構築したものすべてをインストールします。
.It Cm world
.Cm buildworld
.Cm installworld
を足したものです。
.It Cm buildkernel
カーネルとカーネルモジュールを再構築します。
.It Cm installkernel
カーネルとカーネルモジュールをインストールします。
.It Cm reinstallkernel
カーネルとカーネルモジュールを再インストールします。
.It Cm upgrade
.Xr a.out 5
システム (2.2.X/3.0) から
.Xr elf 5
を用いた新しい
方法のものにアップグレードします。
.It Cm most
ユーザコマンドを構築します。ライブラリやインクルードファイルは
含みません。
.It Cm installmost
ユーザコマンドをインストールします。ライブラリやインクルードファイルは
含みません。
.It Cm aout-to-elf
システムを
.Xr a.out 5
形式から
.Xr elf 5
形式にアップグレードします。
.It Cm aout-to-elf-build
システムを
.Xr a.out 5
形式から
.Xr elf 5
形式に
アップグレードするために必要なものをすべて構築します。
.It Cm aout-to-elf-install
.Cm aout-to-elf-build
によって構築されたものをすべてインストールします。
.It Cm move-aout-libs
.Xr elf 5
形式のライブラリが入ったサブディレクトリのそれぞれに存在する
.Pa aout
サブディレクトリに
.Xr a.out 5
形式のライブラリを移動します。
.El
.Pp
ports の構築プロセスに関する情報については、
.Xr ports 7
を参照してください。
.Sh 環境変数
.Bl -tag -width ".Va TARGET_ARCH"
.It Va TARGET_ARCH
ターゲットとなるマシンプロセッサアーキテクチャ。
この環境変数は
.Dq Nm uname Fl p
の出力と同じものです。
異なるアーキテクチャ用にクロスビルドするにはこの
環境変数を設定してください。
.It Va TARGET
ターゲットとなるハードウェアプラットフォーム。
この環境変数は
.Dq Nm uname Fl m
の出力と同じものです。
ターゲットアーキテクチャをクロスビルドするのに必要な
変数です。
例えば、PC98 マシン用にクロスビルドを行うには
.Va TARGET_ARCH Ns = Ns Li i386
.Va TARGET Ns = Ns Li pc98
が必要です。
.It Va NO_WERROR
定義されている場合、警告が出ても構築が停止することはありません。
makefile が別のことを言ってきても停止しません。
.It Va DESTDIR
生成したバイナリをインストールするディレクトリ階層を指します。
.El
.Sh 関連ファイル
.Bl -tag -width ".Pa /usr/share/examples/etc/make.conf" -compact
.It Pa /etc/make.conf
.It Pa /usr/doc/Makefile
.It Pa /usr/doc/share/mk/doc.project.mk
.It Pa /usr/ports/Mk/bsd.port.mk
.It Pa /usr/ports/Mk/bsd.sites.mk
.It Pa /usr/share/examples/etc/make.conf
.It Pa /usr/src/Makefile
.It Pa /usr/src/Makefile.inc1
.El
.Sh 使用例
最新のソースからシステムを更新するのには
次のようにするのが
.Dq よい
とされています:
.Bd -literal -offset indent
make buildworld
make buildkernel KERNCONF=FOO
make installkernel KERNCONF=FOO
make installworld
mergemaster
.Ed
.Pp
.Dq Li FOO
のところは、カーネルを構築する際に必要となるカーネル設定ファイル名で
置き換える必要があります。
この代わりに、
.Pa /etc/make.conf
ファイル中にある
.Va KERNCONF
変数を構築するカーネル名に設定することができます。
この場合、
.Cm buildkernel
および
.Cm installkernel
コマンドの
.Va KERNCONF Ns = Ns Li FOO
の部分は省略可能です。
.Pp
これらのコマンドの実行後は、システムをリブートする必要があります。
リブートしないと、再構築されたプログラムの多く (
.Xr ps 1
.Xr top 1
等) は、まだ動作している古いカーネルでは動かない可能性が
あります。
.Pp
i386 のホストで Alpha アーキテクチャ用のシステムをクロスビルド
するには、次のコマンドシーケンスを使用できます:
.Bd -literal -offset indent
cd /usr/src
make TARGET_ARCH=alpha buildworld
make TARGET_ARCH=alpha DESTDIR=/clients/axp installworld
.Ed
.Sh 関連項目
.Xr cc 1 ,
.Xr install 1 ,
.Xr make 1 ,
.Xr make.conf 5 ,
.Xr ports 7 ,
.Xr release 7 ,
.Xr mergemaster 8 ,
.Xr reboot 8 ,
.Xr shutdown 8
.Sh 作者
.An Mike W. Meyer Aq mwm@mired.org
です。