我试图了解 Postgres 9.1 rpms 是如何在 CentOS/RHEL 6 上构建的,所以我正在查看源 rpms中的规范文件。
以下语法的作用/含义是什么?具体来说,问号和感叹号?
%{!?test:%define test 1}
%{!?plpython:%define plpython 1}
%{!?pltcl:%define pltcl 1}
%{!?plperl:%define plperl 1}
%{!?ssl:%define ssl 1}
%{!?intdatetimes:%define intdatetimes 1}
%{!?kerberos:%define kerberos 1}
%{!?nls:%define nls 1}
%{!?xml:%define xml 1}
%{!?pam:%define pam 1}
%{!?disablepgfts:%define disablepgfts 0}
%{!?runselftest:%define runselftest 0}
%{!?uuid:%define uuid 1}
%{!?ldap:%define ldap 1
我知道你可以用 定义一个宏变量%define <name>[(opts)] <value>
,我相信感叹号是一个逻辑否定运算符。我找不到关于问号的任何信息或上面的例子。似乎在定义宏变量之前进行了某种测试。
这是规范文件的粘贴。