SUB_FILES 和 SUB_LIST 这两个变量可以用来在 port 文件中使用某些动态的值, 例如 pkg-message 中的 installation PREFIX。
用 SUB_FILES 变量, 可以指定需要自动进行修改的文件列表。 在 SUB_FILES 中的每一个 文件, 在 FILESDIR 目录中都必须有一个对应的 文件.in。 修改后的版本将保存在 WRKDIR。 在 USE_RC_SUBR (或已经过时的 USE_RCORDER) 中定义的文件会自动加入到 SUB_FILES 中。 对于 pkg-message、 pkg-install、 pkg-deinstall and pkg-req, 对应的 Makefile 变量会被自动设置, 以指向处理过的版本。
SUB_LIST 这个变量的内容是一系列 VAR=VALUE 对。 SUB_FILES 所列出的文件中所有的 %%VAR%% 都将被替换为 VALUE。 系统自动定义了一些常用的替换对, 包括: PREFIX、 LOCALBASE、 DATADIR、 DOCSDIR, 以及 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.