FreeBSD port 作成者のためのハンドブック
Prev | Chapter 15. やっていいことといけないこと | Next

# 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` を参照してください).

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

Prev | Home | Next
OS の種類やバージョンの識別 | Up | 付加的な文書のインストール

FreeBSD ports システムに関する質問は、(英語で) <ports@FreeBSD.org> へ、
この文書の原文に関するお問い合わせは、(英語で) <doc@FreeBSD.org> までお願いします。