BUILD(7)

名称
build - システムの構築方法についての情報

解説
FreeBSD システムおよびアプリケーションのソースコードは、異なる 3 つの ディレクトリに格納されています。 通常は、 /usr/src, /usr/doc, /usr/ports です。 /usr/src には “ベースシステム” のソースが含まれています。 ベースシステムとは、システムを使える 状態に構築し直すのに必要なものとして大雑把に定義されています。 /usr/doc にはシステムドキュメントのソースが含まれています。 ただし、マニュアルページは除きます。 /usr/ports は、サードパーティのアプリケーションを構築し、インストールするための 一貫したインタフェースを提供しているツリーです。

これら 3 つのディレクトリそれぞれに格納されているものを構築し インストールするには、 make(1) コマンドを使用します。 これら 3 つのディレクトリ、もしくはサブディレクトリ内のどこででも make(1) コマンドを実行すれば、 そのディレクトリ配下のサブディレクトリ内すべてで同一のコマンドを 発行したのと同じ効果があります。 ターゲットを指定しなければ、make コマンドを実行した ディレクトリ内にあるものを単純に構築します。 次のリストはその他のターゲットの名称およびアクションを示した ものです:

clean
    構築プロセス中で生成されたファイルをすべて消去します。

install
    このディレクトリに対する構築結果をインストールします。

update
    更新されたソースを /etc/make.conf で設定されている通りに取得します。

その他の /usr/src での make ターゲットは次のものがあります:

buildworld
    カーネル以外のすべてのものを再構築し、 /etc ディレクトリ内のファイルを設定してリリースします。

installworld
    buildworld で構築したものすべてをインストールします。

buildkernel
    カーネルとカーネルモジュールを再構築します。

installkernel
    カーネルとカーネルモジュールをインストールします。

reinstallkernel
    カーネルとカーネルモジュールを再インストールします。

kernel
    buildkernel と installkernel を続けたものと同義です。

ports の構築プロセスに関する情報については、 ports(7) を参照してください。

環境変数

TARGET_ARCH
    ターゲットとなるマシンプロセッサアーキテクチャ。 この環境変数は “uname -p” の出力と同じものです。 異なるアーキテクチャ用にクロスビルドするにはこの 環境変数を設定してください。

TARGET
    ターゲットとなるハードウェアプラットフォーム。 この環境変数は “uname -m” の出力と同じものです。 ターゲットアーキテクチャをクロスビルドするのに必要な 変数です。 例えば、PC98 マシン用にクロスビルドを行うには TARGET_ARCH=i386 と TARGET=pc98 が必要です。

NO_WERROR
    定義されている場合、警告が出ても構築が停止することはありません。 makefile が別のことを言ってきても停止しません。

DESTDIR
    生成したバイナリをインストールするディレクトリ階層を指します。

関連ファイル
/etc/make.conf
/usr/doc/Makefile
/usr/doc/share/mk/doc.project.mk
/usr/ports/Mk/bsd.port.mk
/usr/ports/Mk/bsd.sites.mk
/usr/share/examples/etc/make.conf
/usr/src/Makefile
/usr/src/Makefile.inc1

使用例
最新のソースからシステムを更新するのに “よい” とされている方法に関しては、 src/UPDATING の COMMON ITEMS セクションをぜひ参照してください。

i386 のホストで Alpha アーキテクチャ用のシステムをクロスビルド するには、次のコマンドシーケンスを使用できます:

    cd /usr/src
    make TARGET_ARCH=alpha buildworld
    make TARGET_ARCH=alpha DESTDIR=/clients/axp installworld

関連項目
cc(1), install(1), make(1), make.conf(5), ports(7), release(7), config(8), mergemaster(8), reboot(8), shutdown(8)

作者
Mike W. Meyer <mwm@mired.org> 。