12.16. 避免使用 .error 结构

Makefile 中给出信号, 表示由于某种外界因素 (例如, 用户指定了无效的联编选项) 而无法安装的方法是将变量 IGNORE 设为一非空值。 这个值将被格式化, 并在用户执行 make install 是给出提示。

.error 实现这一目的是一种常见的误用。 这样做的问题是, 许多在 ports 树上运行的自动化工具会因此而失败。 最常见的情况见于联编 /usr/ports/INDEX 的过程 (参见 第 9.1 节 “运行 make describe)。 然而, 即使十分普通的命令, 例如 make maintainer, 在这种情况下也会失败。 这是不可接受的。

例 12.1. 怎样避免使用 .error

考虑有人在 make.conf 中设置了

USE_POINTYHAT=yes

的情形。 接下来的例子中, 第一个 Makefile 中的问题将导致 make index 失败, 而第二个则不会:

.if USE_POINTYHAT
.error "POINTYHAT is not supported"
.endif
.if USE_POINTYHAT
IGNORE=POINTYHAT is not supported
.endif

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.