RPM 规范文件中的 %arm
%arm in RPM spec file
我正在从源压缩包、补丁和 .spec 文件构建 RPM。我这样做是为了添加我的平台特定补丁。
我已阅读给定的 .spec 文件,并注意到其中有以下行:
%ifarch %{arm}
当我看到类似这样的行时,我有时会看到一个定义,例如,如下:
%global shared 0
后来把%shared当成0使用了,但是找不到%arm的定义。我猜它可能是预先定义的,或者在其他地方定义的(系统范围的?)。
.spec 文件中的 %arm 变量是什么意思?如果是预定义的,定义在哪里?
如果您查看 /usr/lib/rpm/macros
,arm
被定义为可能的 ARM 体系结构列表。所以那个宏说 "if the target architecture matches any of these, do this..."
%{arm} 只是一个 RPM 宏,就像所有其他 RPM 宏一样。
它扩展为某种实际值,要找到该值,运行命令
rpm --eval %{arm}
在我的系统上扩展到
armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
这似乎是我的开发环境支持的所有受支持的 arm 架构。
我正在从源压缩包、补丁和 .spec 文件构建 RPM。我这样做是为了添加我的平台特定补丁。
我已阅读给定的 .spec 文件,并注意到其中有以下行:
%ifarch %{arm}
当我看到类似这样的行时,我有时会看到一个定义,例如,如下:
%global shared 0
后来把%shared当成0使用了,但是找不到%arm的定义。我猜它可能是预先定义的,或者在其他地方定义的(系统范围的?)。
.spec 文件中的 %arm 变量是什么意思?如果是预定义的,定义在哪里?
如果您查看 /usr/lib/rpm/macros
,arm
被定义为可能的 ARM 体系结构列表。所以那个宏说 "if the target architecture matches any of these, do this..."
%{arm} 只是一个 RPM 宏,就像所有其他 RPM 宏一样。
它扩展为某种实际值,要找到该值,运行命令
rpm --eval %{arm}
在我的系统上扩展到
armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
这似乎是我的开发环境支持的所有受支持的 arm 架构。