7.2.使用 FLAVORS
要声明一个 port 具有多种 flavors, 应在其 Makefile 中加入 FLAVORS
。FLAVORS
中的第一个 flavor 是默认的 flavor。
技巧
像这样定义
FLAVOR
有助于简化 Makefile 的逻辑:
重要
为了将 flavors 与选项区分开来,后者总是大写字母,flavors 名称 只能 包含小写字母、数字和下划线
_
。
例子1. 基本的 Flavors 用法
如果一个 port 有一个“精简”的从属 port ,可以去掉这个从属 port ,然后用以下方法将该 port 转换为 flavors:
例子2. 另一个基本的 Flavor 用法
如果一个 port 有一个
-nox11
的从属 port ,可以去掉这个从属 port ,然后用以下方法将该 port 转换为 flavors:
例子3. 更复杂的 Flavors 使用方法
这里是一个使用使用 Python flavors 的 port对 devel/libpeas 中的内容进行了略微编辑的摘录。由于默认的 Python 2 和 3 版本是 2.7 和 3.6, 它将自动获得
FLAVORS=py27 py36
此 port 没有使用
USE_PYTHON=distutils
,但还是需要 Python flavors。为了防止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
。
7.2.1. Flavors 帮助器
为了使 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. 指定
PKGNAME
的Flavor由于所有的包都必须有不同的包名,flavors必须改变它们的包名,用
_flavor PKGNAMEPREFIX
和_flavor PKGNAMESUFFIX
很容易实现。
最后更新于