その 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 として作成されます。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。