Partilhar via


Operadores de pré-processamento de makefile

As expressões de pré-processamento makefile podem usar operadores que agem em valores constantes, códigos de saída de comandos, cadeias de caracteres, macros e caminhos do sistema de arquivos. Para avaliar a expressão, o pré-processador primeiro expande macros, executa comandos para, então, realizar as operações. As operações são avaliadas na ordem do agrupamento explícito entre parênteses, em seguida, na ordem da precedência do operador. O resultado é um valor constante.

O operador DEFINED é um operador lógico que age em um nome de macro. A expressão DEFINED(macroname) será verdadeira se macroname for definido, mesmo que não tenha um valor atribuído. DEFINEDem combinação com !IF ou !ELSE IF é equivalente a !IFDEF ou !ELSE IFDEF. Porém, diferentemente dessas diretivas, o DEFINED pode ser usado em expressões complexas.

O operador EXIST é um operador lógico que age em um caminho do sistema de arquivos. EXIST(caminho) é verdadeiro se caminho existe. O resultado de EXIST pode ser usado em expressões binárias. Se path contiver espaços, coloque-o entre aspas duplas.

Para comparar duas cadeias de caracteres, use o operador de igualdade (==) ou de desigualdade (!=). Coloque as cadeias de caracteres entre aspas duplas.

As constantes de inteiro podem usar os operadores unários na negação numérica (–), no complemento de um (~) e na negação lógica (!).

As expressões podem usar os operadores a seguir. Os operadores de precedência igual são agrupados, e os grupos são listados em ordem decrescente de precedência. Os operadores unários são associados ao operando à direita. Os operadores binários de precedência igual associam operandos da esquerda para a direita.

Operador

Descrição

DEFINED(macroname)

Produz um valor lógico para o estado de definição atual de macroname.

EXIST(path)

Produz um valor lógico para a existência de um arquivo em path.

!

NOT lógico unário.

~

Complemento de um unário.

-

Negação unária.

*

Multiplicação.

/

Divisão.

%

Módulo (pendências).

+

Adição.

-

Subtração.

<<

Mudança bit a bit para esquerda.

>>

Mudança bit a bit para direita.

<=

Menor que ou igual a.

>=

Maior que ou igual a.

<

Menor que.

>

Maior que.

==

Igualdade.

!=

Desigualdade.

&

AND bit a bit.

^

XOR bit a bit.

|

OR bit a bit.

&&

AND lógico.

||

OR lógico.

Dica

O operador XOR bit a bit (^) é igual ao caractere de escape, e o escape deverá ser feito (como ^^) quando ele for usado em uma expressão.

Consulte também

Conceitos

Expressões no pré-processamento de makefile