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.
若您有关于 FreeBSD ports 系统的问题, 请发送电子邮件至 <ports@FreeBSD.org>。
关于此文档的任何问题, 请致函 <doc@FreeBSD.org>。