13.5.在 bsd.port.mk 之后写一些内容

不要在 .include <bsd.port.mk> 行之后写任何东西。通常可以通过将 bsd.port.pre.mk 放在 Makefile 中间的某个地方, 而将 bsd.port.post.mk 放在最后来避免这种情况。

包括 bsd.port.pre.mk/bsd.port.post.mk 对或者只包括 bsd.port.mk; 不要把这两种用法混在一起。

bsd.port.pre.mk 只定义了几个变量, 它们可以在 Makefile 的测试中使用, 而 bsd.port.post.mk 则定义了其他的变量。

下面是一些在 bsd.port.pre.mk 中定义的重要变量 (这并不是完整的列表, 请阅读 bsd.port.mk 以了解完整的列表)。

变量说明

ARCH

uname -m 返回的架构(例如,i386)。

OPSYS

操作系统类型,由 uname -s 返回(例如,FreeBSD)。

OSREL

操作系统的发行版本(例如,2.1.52.2.7)。

OSVERSION

操作系统的数字版本;与 __FreeBSD_version 相同。

LOCALBASE

“local”树的基础 (例如,/usr/local)

PREFIX

port 自身安装的位置 (参见关于 PREFIX更多内容)。

当需要使用 MASTERDIR 时, 一定要在包括 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

BROKEN= 后面一定要用制表符而不是空格。

最后更新于

FreeBSD 中文社区