要声明具有多个flavors的port,请将 FLAVORS 添加到其 Makefile。 FLAVORS 中的第一个flavor是默认的flavor。
示例 1. 基本Flavors用法
如果一个port有一个“精简”从属port,可以移除从属port,并且可以将port转换为flavors,使用如下命令:
示例 2. 另一个基本 Flavors 使用
如果一个 port 有一个 -nox11 从属 port,则可以移除从属 port,并将 port 转换为 flavors:
示例 3. 更复杂的 Flavors 使用
这是在 devel/libpeas 中存在的内容的稍微编辑过的摘录,该port使用 Pythonflavors。 默认的 Python 2 和 3 版本分别为 2.7 和 3.6,它将自动获取 FLAVORS=py27 py36
这个port不使用 USE_PYTHON=distutils ,但无论如何都需要 Pythonflavors。 为了防止 FLAVOR 为空,这会导致 make(1)错误,在字符串比较中使用 ${FLAVOR:U} 而不是 ${FLAVOR} 。 Gnome Python gobject3 绑定有两个不同的名称,一个用于 Python 2,pygobject3,一个用于 Python 3,py3gobject3。 configure 脚本必须在${WRKSRC}中运行,但我们只对构建和安装软件的 Python 2 或 Python 3 部分感兴趣,因此请适当设置构建和安装基本目录。 关于正确的 Python 3 配置脚本路径名称的提示。 当使用 Python 3 构建时,打包列表会有所不同。 由于有三个可能的 Python 3 版本,请使用助手为所有三个设置 PLIST
为了更容易编写 Makefile,存在一些flavors助手。
这些助手列表将设置它们的变量:
flavor_PKGNAMEPREFIX
flavor_PKGNAMESUFFIX
flavor_PLIST
flavor_DESCR
这些助手列表将附加到它们的变量:
flavor_CONFLICTS
flavor_CONFLICTS_BUILD
flavor_CONFLICTS_INSTALL
flavor_PKG_DEPENDS
flavor_EXTRACT_DEPENDS
flavor_PATCH_DEPENDS
flavor_FETCH_DEPENDS
flavor_BUILD_DEPENDS
flavor_LIB_DEPENDS
flavor_RUN_DEPENDS
flavor_TEST_DEPENDS
示例 4. Flavor 特定 PKGNAME
由于所有软件包必须具有不同的软件包名称,flavors 必须更改它们的软件包名称,使用 flavor_PKGNAMEPREFIX 和 flavor_PKGNAMESUFFIX 可以轻松实现这一点: