Check whether a macro is undefined or has a specific value
Marco
listaddr at gmail.com
Tue Aug 16 16:26:49 UTC 2011
2011/8/16 Daniel Neuberger <daniel.neuberger at gmail.com>:
> On 08/16/2011 07:22 AM, Marco wrote:
>>
>> as the subject says: If macro %{__foo} is defined and has value 1, I'd
>> like to do something; otherwise (undefined or value != 1), skip.
>
> See the section about defining conditional macros:
> http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch10s06.html#id508811
>
> Here's an example that's similar to what you're talking about:
>
> %define _default_release 1
> %define _release
> %{!?_svn_last_rev:%{_default_release}}%{?_svn_last_rev:%{_svn_last_rev}}
>
> I only know how to check for definition, not equality, but it shouldn't be
> too hard to make that work for you.
Thanks. I don't need to define another macro based on the value of
%{__foo}. However based on your suggestion, I think I can do this,
which seems to work:
%if %{?__foo:1}%{!?__foo:0}
%if "%{__foo}" == "1"
echo "foo is defined and is 1"
%else
echo "foo is defined, but has some other value: %{__foo}"
%endif
%else
echo "foo is not defined"
%endif
Does this look correct/reliable enough or is there a better way to do
what I'm trying to do? Thanks.
More information about the Rpm-list
mailing list