This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.

bsd.port.mk の後に書くこと

15.6. bsd.port.mk の後に書くこと

.include <bsd.port.mk> の行の後には何も書かないようにしてください. 大抵の場合は Makefile の中程のどこかで bsd.port.pre.mk をインクルードして, 最後に bsd.port.pre.mk をインクルードすることによって避けることができます.

Note: pre.mk/post.mk のペアか bsd.port.mk だけのどちらかだけをインクルードし, 二つを混ぜないでください.

前者はいくつかの変数の定義だけをして Makefile でのテストに使用し, 後者は残りを定義します.

以下は bsd.port.pre.mk で定義される重要な変数です (これは, すべてではありません. 完全なリストは bsd.port.mk を参照してください).

変数名解説
ARCHuname -m で返される アーキテクチャ. (例, i386).
OPSYSuname -s で返される オペレーティングシステム (例, FreeBSD).
OSRELオペレーティングシステムの リリースバージョン (例., 2.1.5, 2.2.7).
OSVERSION数字形式のオペレーティングシステム のバージョン, 上記の __FreeBSD_version と同じです.
PORTOBJFORMATシステムのオブジェクト フォーマット (aout あるいは elf).
LOCALBASE``local'' ツリーのベース. (例, /usr/local/).
X11BASE``X11'' ツリーのベース. (例, /usr/X11R6/).
PREFIXports のインストール先 ( PREFIXについてを参照).

Note: 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
    .endif
FreeBSD ports システムに関する質問は <ports@freebsd.org> へ(英語で),
FreeBSD ports に関する日本語での議論は <ports-jp@jp.FreeBSD.org> へお願いします.
この文書の原文に関するお問い合わせは <doc@freebsd.org> へ(英語で),
日本語訳に関するお問い合わせは <doc-jp@jp.FreeBSD.org> へお願いします.