4.2. Mais sobre macros
Esta seção cobre Macros RPM embutidos selecionados. Para uma lista exaustiva de tais macros, consulte a Documentação RPM.
4.2.1. Definindo suas próprias macros Copiar o linkLink copiado para a área de transferência!
A seção seguinte descreve como criar uma macro personalizada.
Procedimento
Inclua a seguinte linha no arquivo RPM SPEC:
%global <nome INTERNGREGUNA-[(opts)] <corpo>[(opts)] <corpo-
%global <nome INTERNGREGUNA-[(opts)] <corpo>[(opts)] <corpo-Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Todo o espaço em branco ao redor de \ é removido. O nome pode ser composto de caracteres alfanuméricos e o caractere _ e deve ter pelo menos 3 caracteres de comprimento. A inclusão do campo (opts) é opcional:
-
Simplemacros não contém o campo(opts). Neste caso, apenas a expansão recursiva das macros é realizada. -
Parametrizedmacros contém o campo(opts). A seqüênciaoptsentre parênteses é passada paragetopt(3)paraargc/argvprocessamento no início de uma invocação macro.
Os arquivos RPM SPEC mais antigos usam o padrão macro fine <name> <body>. As diferenças entre as macros fine e %global são as seguintes:
-
finetem alcance local. Ela se aplica a uma parte específica de um arquivo da SPEC. O corpo de uma macrofineé expandido quando usada. -
%globaltem escopo global. Aplica-se a todo um arquivo da SPEC. O corpo de uma macro%globalé expandido no momento da definição.
As macros são avaliadas mesmo se forem comentadas ou se o nome da macro for dado na seção %changelog do arquivo da SPEC. Para comentar uma macro, use %%. Por exemplo: %%global.
Recursos adicionais
Para informações abrangentes sobre as capacidades de macros, consulte a Documentação RPM.