Definire una macro NMAKE
Una macro NMAKE viene definita usando questa sintassi:
macro_name=string
Il macro_name è una combinazione di lettere, cifre e caratteri di sottolineatura () con distinzione tra maiuscole e minuscole (_
) fino a 1.024 caratteri. Il macro_name può contenere una macro richiamata. Se macro_name è costituito interamente da una macro richiamata, la macro richiamata non può essere null o non definita.
La stringa può essere qualsiasi sequenza di zero o più caratteri. Una stringa Null contiene zero caratteri o solo spazi o schede. La stringa può contenere una chiamata di macro.
Caratteri speciali nelle macro
Un segno di numero (#
) dopo una definizione specifica un commento. Per specificare un numero letterale di accesso a una macro, usare un cursore (^
) per eseguirne l'escape, come in ^#
.
Un segno di dollaro ($
) specifica una chiamata di macro. Per specificare un valore letterale $
, usare $$
.
Per estendere una definizione a una nuova riga, terminare la riga con una barra rovesciata (\
). Quando la macro viene richiamata, la barra rovesciata e il carattere di nuova riga seguente vengono sostituiti con uno spazio. Per specificare una barra rovesciata letterale alla fine della riga, precederla con un carattere di escape (^
) o seguirla con un identificatore di commento (#
).
Per specificare un carattere di nuova riga letterale, terminare la riga con un carattere di escape (^
) di inserimento, come nell'esempio seguente:
CMDS = cls^
dir
Macro Null e non definite
Le macro null e non definite si espandono a stringhe Null, ma una macro definita come stringa Null viene considerata definita nelle espressioni di pre-elaborazione. Per definire una macro come stringa Null, non specificare caratteri tranne spazi o schede dopo il segno di uguale (=
) in una riga di comando o in un file di comando e racchiudere la stringa o la definizione Null tra virgolette doppie (" "
). Per annullare la definizione di una macro, utilizzare !UNDEF
. Per altre informazioni, vedere Direttive di pre-elaborazione makefile.
Definizione delle macro
Definire macro in una riga di comando, in un file di comando, in un makefile o nel Tools.ini
file.
In un makefile o nel Tools.ini
file, ogni definizione di macro deve essere visualizzata su una riga separata e non può iniziare con uno spazio o una scheda. Gli spazi o le schede intorno al segno di uguale vengono ignorati. Tutti i caratteri stringa sono letterali, incluse le virgolette circostanti e gli spazi incorporati.
In un file della riga di comando o di comando gli spazi e le schede delimitano gli argomenti e non possono racchiudere il segno di uguale. Se la stringa include spazi o schede incorporati, racchiudere la stringa stessa o l'intera macro tra virgolette doppie (" "
).
Precedenza nelle definizioni delle macro
Se una macro ha più definizioni, NMAKE usa la definizione di precedenza più alta. L'elenco seguente mostra l'ordine di precedenza, dal più alto al più basso:
Macro definita nella riga di comando
Macro definita in un makefile o in un file di inclusione
Macro variabile di ambiente ereditata
Macro definita nel
Tools.ini
file
Utilizzare /E
per fare in modo che le macro ereditate dalle variabili di ambiente eseseguono l'override delle macro makefile con lo stesso nome. Usare !UNDEF
per eseguire l'override di una riga di comando.