9.5.使用 SUB_FILES 和 SUB_LIST

SUB_FILES 和 SUB_LIST 在port文件中对动态值非常有用,比如在 pkg-message 中的安装 PREFIX 。

SUB_FILES 指定要自动修改的文件列表。 SUB_FILES 列表中的每个文件必须在 FILESDIR 中有一个对应的 file.in 文件。修改后的版本将被创建为 ${WRKDIR}/file。作为 USE_RC_SUBR 值定义的文件将自动添加到 SUB_FILES 中。对于文件 pkg-message、pkg-install 和 pkg-deinstall,相应的 Makefile 变量将自动设置为指向处理后的版本。

SUB_LIST 是一个 VAR=VALUE 对列表。对于每个对, %%VAR%% 将在 SUB_FILES 中列出的每个文件中被替换为 VALUE 。几个常见对将被自动定义: PREFIX 、 LOCALBASE 、 DATADIR 、 DOCSDIR 、 EXAMPLESDIR 、 WWWDIR 和 ETCDIR 。任何以 @comment 开头并跟有一个空格的行,在变量替换后将从结果文件中删除。

此示例将 %%ARCH%% 替换为包含在 pkg-message 中的系统架构。

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

请注意,对于此示例,pkg-message.in 必须存在于 FILESDIR 中。

良好 pkg-message.in 的一个例子:

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

最后更新于

FreeBSD 中文社区 2024