9.5.使用 SUB_FILES 和 SUB_LIST

SUB_FILESSUB_LIST 对于 port 文件中的动态值非常有用, 例如 pkg-message 中的安装 PREFIX

SUB_FILES 指定了一个要自动修改的文件列表。SUB_FILES 列表中的每个 file 都必须在 FILESDIR 中有一个相应的 file.in 。修改后的版本将被创建为 ${WRKDIR}/file 。定义为 USE_RC_SUBR 值的文件会自动加入 SUB_FILES 。对于 pkg-messagepkg-installpkg-deinstall 这些文件,相应的 Makefile 变量会自动设置为指向已处理的版本。

SUB_LIST 是一个 VAR=VALUE 对的列表。对于每一个配对,在 SUB_FILES 中列出的每个文件中,%%VAR%% 将被替换为 VALUE。我们自动定义了几个常见的配对。PREFIXLOCALBASEDATADIRDOCSDIREXAMPLESDIRWWWDIRETCDIR。任何以 @comment 开头,后面跟着空格的行,在进行变量替换后,都会从结果文件中删除。

这个例子将 %%ARCH%% 替换为 pkg-message 中的系统结构。

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%%/shared/examples/putsy/%%ARCH%%.conf into your home directory
as .putsy.conf and edit it.

最后更新于

FreeBSD 中文社区