8.6. 使用 SUB_FILESSUB_LIST

SUB_FILESSUB_LIST 这两个变量可以用来在 port 文件中使用某些动态的值, 例如 pkg-message 中的 installation PREFIX

SUB_FILES 变量, 可以指定需要自动进行修改的文件列表。 在 SUB_FILES 中的每一个 文件, 在 FILESDIR 目录中都必须有一个对应的 文件.in。 修改后的版本将保存在 WRKDIR。 在 USE_RC_SUBR (或已经过时的 USE_RCORDER) 中定义的文件会自动加入到 SUB_FILES 中。 对于 pkg-messagepkg-installpkg-deinstall and pkg-req, 对应的 Makefile 变量会被自动设置, 以指向处理过的版本。

SUB_LIST 这个变量的内容是一系列 VAR=VALUE 对。 SUB_FILES 所列出的文件中所有的 %%VAR%% 都将被替换为 VALUE。 系统自动定义了一些常用的替换对, 包括: PREFIXLOCALBASEDATADIRDOCSDIR, 以及 EXAMPLESDIR。 替换结果中所有以 @comment 开头的行, 都将在变量替换之后被删去。

下面的例子中, 将把 pkg-message 中的 %%ARCH%% 替换为系统所运行的架构名称:

SUB_FILES=     pkg-message
SUB_LIST=      ARCH=${ARCH}

注意, 在上述例子中, FILESDIR 里必须有 pkg-message.in 这个文件。

下面是一个正确的 pkg-message.in 例子:

Now it is time to configure this package.
Copy %%PREFIX%%/share/examples/putsy/%%ARCH%%.conf into your home directory
as .putsy.conf and edit it.

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

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

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