Partilhar via


Definir uma macro do NMAKE

Uma macro do NMAKE é definida usando essa sintaxe:

macro_name=string

O macro_name é uma combinação de letras, dígitos e sublinhados (_) que diferencia maiúsculas de minúsculas, com até 1.024 caracteres de comprimento. O macro_name pode conter uma macro invocada. Se macro_name consistir inteiramente em uma macro invocada, a macro que está sendo invocada não poderá ser nula nem indefinida.

A cadeia de caracteres pode ser qualquer sequência de zero ou mais caracteres. Uma cadeia de caracteres nula contém zero caracteres ou apenas espaços ou tabulações. A cadeia de caracteres pode conter uma invocação de macro.

Caracteres especiais em macros

Um sinal de número (#) após uma definição especifica um comentário. Para especificar um sinal de número literal em uma macro, use um cirncunflexo (^) para escapá-lo, como em ^#.

Um sinal de cifrão ($) especifica uma invocação de macro. Para especificar um $ literal, use $$.

Para estender uma definição para uma nova linha, termine a linha com uma barra invertida (\). Quando a macro é invocada, a barra invertida e o caractere de nova linha que a segue são substituídos por um espaço. Para especificar uma barra invertida literal no final da linha, preceda-a com uma escape de circunflexo (^) ou coloque um especificador de comentário (#) após ela.

Para especificar um caractere de nova linha literal, termine a linha com uma escape de circunflexo (^) como neste exemplo:

CMDS = cls^
dir

Macros nulas e indefinidas

As macros nulas e indefinidas se expandem para cadeias de caracteres nulas, mas uma macro definida como uma cadeia de caracteres nula é considerada definida em expressões de pré-processamento. Para definir uma macro como uma cadeia de caracteres nula, não especifique nenhum caractere, exceto espaços ou tabulações, após o sinal de igual (=) em uma linha de comando ou um arquivo de comando, e coloque a cadeia de caracteres ou a definição nula entre aspas duplas (" "). Para indefinir uma macro, use !UNDEF. Para obter mais informações, confira Diretivas de pré-processamento do Makefile.

Em que local definir macros

Defina macros em uma linha de comando, um arquivo de comando, um makefile ou um arquivo Tools.ini.

Em um makefile ou arquivo Tools.ini, cada definição de macro deve aparecer em uma linha separada e não pode começar com um espaço ou uma tabulação. Espaços ou tabulações ao redor do sinal de igual são ignorados. Todos os caracteres da cadeia de caracteres são literais, incluindo aspas e espaços inseridos no entorno.

Em uma linha de comando ou um arquivo de comando, espaços e tabulações delimitam argumentos e não podem ficar em volta do sinal de igual. Se a cadeia de caracteres tiver espaços ou tabulações inseridos, coloque a própria cadeia de caracteres ou a macro inteira entre aspas duplas (" ").

Precedência em definições de macro

Se uma macro tiver várias definições, o NMAKE usará a definição de precedência mais alta. A lista a seguir mostra a ordem de precedência, da mais alta para a mais baixa:

  1. Uma macro definida na linha de comando

  2. Uma macro definida em um arquivo makefile ou include

  3. Uma macro de variável de ambiente herdada

  4. Uma macro definida no arquivo Tools.ini

  5. Uma macro predefinida, como CC e AS

Use /E para fazer com que as macros herdadas de variáveis de ambiente substituam as macros do makefile com o mesmo nome. Use !UNDEF para substituir uma linha de comando.

Confira também

Macros e NMAKE