rpm macro magic help

Sandro Mani manisandro at gmail.com
Fri Nov 1 15:09:06 UTC 2013


On 01.11.2013 16:07, Dridi Boukelmoune wrote:
> On Fri, Nov 1, 2013 at 3:59 PM, Sandro Mani <manisandro at gmail.com> wrote:
>> Hi,
>>
>> I'm trying to do some rpm macro magic:
>>
>> %define do_build() \
>> mkdir build_win%{1}_%{2}; \
>> (cd build_win%{1}_%{2}; \
>> %{mingw%{1}_qmake_%{2}} 'PREFIX=%{mingw%{1}_prefix}' 'TARGET=quazip-%{2}'
>> ../libquazip; \
>> %{mingw%{1}_make} %{?_smp_mflags}; \
>> )\
>> %{nil}
> According to the guidelines you should use %global instead of %define.
>
Oh right, true.
>> Problem: when I call i.e. "%do_build 32 qt4", %{mingw%{1}_qmake_%{2}} gets
>> expanded to %{mingw32_qmake_qt4} but that macro does then not get expanded
>> to /usr/bin/mingw32-qmake-qt4. So basically it ends up trying to call the
>> command %{mingw32_qmake_qt4} which does not exist.
>>
>> So, is there anyway to use macros inside macros and have the resulting thing
>> correctly expanded? :)
> Have you tried the %{expand:...} macro ? I've seen it in the docs but
> never actually used it.
>
> Something like %{expand:%%{mingw%{1}_qmake_%{2}}} I suppose.
>
Yep that did it :)

Sandro


More information about the devel mailing list