我正在从源tarball,补丁和.spec文件构建RPM。我这样做是为了添加我的平台特定补丁。
我已经阅读了给定的.spec文件,并注意到有以下行:
%ifarch %{arm}
当我看到类似的线条时,我有时会看到一个定义,例如,如下:
%global shared 0
稍后,%shared用作0.但是,我找不到%arm的定义。我猜想它可能是预先定义的,或者在其他地方定义(系统范围的?)。
%arm变量在.spec文件中的含义是什么?如果是预先定义的,那么定义在哪里?
答案 0 :(得分:0)
如果查看/usr/lib/rpm/macros
,arm
被定义为可能的ARM体系结构列表。所以宏说的是,如果目标架构匹配任何,请执行此操作..."
答案 1 :(得分:0)
%{arm}只是一个RPM宏,就像所有其他RPM宏一样。
它扩展到某种实际值,找到该值,运行命令
rpm --eval %{arm}
在我的系统上扩展为
armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
这似乎是我的开发环境支持的所有支持的arm架构。