RPM 2.4.104 introduces fully recursive spec file macros.
Simple macros do straight text substitution.
During macro expansion, both flags and arguments are available as macros which are deleted at the end of macro expansion. In addition, macros can be nested, hiding the previous definition for the duration of the expansion of the macro which contains nested macros. All whitespace surrounding is removed. Within the body of a macro, there are several constructs that permit testing for the presence of optional parameters. X if the flag was present.