.include <bsd.port.mk>
の行の後には何も書かないようにしてください。
大抵の場合は
Makefile の中程のどこかで
bsd.port.pre.mk をインクルードして、
最後に bsd.port.pre.mk
をインクルードすることによって避けることができます。
bsd.port.pre.mk/bsd.port.post.mk
のペアか bsd.port.mk
だけのどちらかだけをインクルードし、二つを混ぜないでください。
前者はいくつかの変数の定義だけをして
Makefile
でのテストに使用し、後者は残りを定義します。
以下は bsd.port.pre.mk
で定義される重要な変数です
(これは、すべてではありません。
完全なリストは bsd.port.mk を参照してください)。
| 変数名 | 解説 |
|---|---|
ARCH | uname -m
で返されるアーキテクチャ。(例、i386)。
|
OPSYS | uname -s
で返されるオペレーティングシステム
(例、FreeBSD)。 |
OSREL | オペレーティングシステムのリリースバージョン
(例、2.1.5,
2.2.7)。 |
OSVERSION | 数字形式のオペレーティングシステムのバージョン、
上記の __FreeBSD_version
と同じです。 |
PORTOBJFORMAT | システムのオブジェクトフォーマット
(elf あるいは aout
ただし、「最近の」 FreeBSD
のバージョンでは aout
は廃止予定になっています)。 |
LOCALBASE | 「local」 ツリーのベース。
(例、/usr/local/)。
|
X11BASE | 「X11」 ツリーのベース。
(例、/usr/X11R6/)。
|
PREFIX | ports のインストール先
(
PREFIXについてを参照)。
|
USE_IMAKE,
USE_X_PREFIX あるいは
MASTERDIR
などの変数を定義する必要がある場合には、
bsd.port.pre.mk
をインクルード前に定義してください。
他のものは bsd.port.pre.mk
の前でも後でもかまいません。
以下は bsd.port.pre.mk
の後に書けるものの例です。
# no need to compile lang/perl5 if perl5 is already in system
.if ${OSVERSION} > 300003
BROKEN= perl is in system
.endif
# only one shlib version number for ELF
.if ${PORTOBJFORMAT} == "elf"
TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}
.else
TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR}
.endif
# software already makes link for ELF, but not for a.out
post-install:
.if ${PORTOBJFORMAT} == "aout"
${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so
.endifBROKEN= と
TCL_LIB_FILE=
の後にスペースではなくタブを使うことを覚えていましたか?
:-)
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。