第7章 `MASTERDIR`
戻る |  | 次へ

## 第7章 `MASTERDIR`

その port の変数 (たとえば解像度とか紙のサイズなど) を 変えたりした、少しだけ違うバージョンを作成する必要があるときには、 ユーザが分りやすいように package ごとに別々のサブディレクトリを作成し、 できるだけ port 間でファイルを共有するようにしてください。 ほとんどの場合、うまく変数を使えば、一つを除くすべてのディレクトリには とても短い `Makefile` を置くだけで済みます。 その短い `Makefile` では、 `MASTERDIR` を使って、 残りのファイルがあるディレクトリを指定できます。 また、`PKGNAMESUFFIX` の 一部に変数に使って、package が別々の名前を持つようにしてください。

具体的な例を示すのが一番わかりやすいでしょう。 これは `japanese/xdvi300/Makefile` の一部です。

PORTNAME= xdvi PORTVERSION= 17 PKGNAMEPREFIX= ja- PKGNAMESUFFIX= ${RESOLUTION} : # default RESOLUTION?= 300 .if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \ ${RESOLUTION} != 300 && ${RESOLUTION} != 400 @${ECHO} "Error: invalid value for RESOLUTION: \"${RESOLUTION}\"" @${ECHO} "Possible values are: 118, 240, 300 (default) and 400." @${FALSE} .endif

`japanese/xdvi300` には `Makefile` の他に通常のパッチや、 package ファイル等が置かれています。 このディレクトリで `make` を実行すると、 デフォルトの解像度 (300) を使って、 普通に port のビルドを行ないます。

他の解像度に関していうと、 `xdvi118/Makefile` に 必要なのはこれだけです:

RESOLUTION= 118 MASTERDIR= ${.CURDIR}/../xdvi300 .include "${MASTERDIR}/Makefile"

(`xdvi240/Makefile` や `xdvi400/Makefile` も同様のものになります)。 `bsd.port.mk` は、 `MASTERDIR` の定義から `FILESDIR` や `SCRIPTDIR` 等の 通常のサブディレクトリが `xdvi300` 以下に存在することを理解します。 `RESOLUTION=118` の行が、 `xdvi300/Makefile` の `RESOLUTION=300` の行を上書きし、 port は解像度を 118 として作成されます。

戻る |  | 次へ
6.13. SDL の利用 | ホーム | 第8章 共有ライブラリのバージョン

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。