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
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-
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:
-
Simple
macros não contém o campo(opts)
. Neste caso, apenas a expansão recursiva das macros é realizada. -
Parametrized
macros contém o campo(opts)
. A seqüênciaopts
entre parênteses é passada paragetopt(3)
paraargc/argv
processamento 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:
-
fine
tem alcance local. Ela se aplica a uma parte específica de um arquivo da SPEC. O corpo de uma macrofine
é expandido quando usada. -
%global
tem 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.