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

# 15.7 `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
__FreeBSD_version の値 | Up | 付加的な文書のインストール

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