Dela via


Särskilda NMAKE-makron

NMAKE innehåller flera speciella makron som representerar olika filnamn och kommandon. En användning för vissa av dessa makron finns i de fördefinierade slutsatsdragningsreglerna. Liksom alla makron är makrona som tillhandahålls av NMAKE skiftlägeskänsliga.

Makron för filnamn

Filnamnsmakron är fördefinierade som filnamn som anges i beroendet (inte fullständiga filnamnsspecifikationer på disken). Dessa makron behöver inte omges av parenteser när de anropas. ange endast en $ som visas.

Makro Betydelse
$@ Det aktuella målets fullständiga namn (sökväg, basnamn, tillägg) som angetts för tillfället.
$$@ Det aktuella målets fullständiga namn (sökväg, basnamn, tillägg) som angetts för tillfället. Gäller endast som beroende i ett beroende.
$* Det aktuella målets sökväg och basnamn minus filnamnstillägg.
$** Alla beroenden av det aktuella målet.
$? Alla beroenden med en senare tidsstämpel än det aktuella målet.
$< Beroende fil med en senare tidsstämpel än det aktuella målet. Gäller endast i kommandon i slutsatsdragningsregler.

Om du vill ange en del av ett fördefinierat filnamnsmakro lägger du till en makromodifierare och omger det ändrade makrot inom parenteser.

Modifierare Resulterande filnamnsdel
D Enhet plus katalog
B Basnamn
F Basnamn plus tillägg
R Enhet plus katalog plus basnamn

Rekursionsmakron

Använd rekursionsmakron för att anropa NMAKE rekursivt. Rekursiva sessioner ärver kommandorads- och miljövariabelmakron och Tools.ini information. De ärver inte makefile-definierade slutsatsdragningsregler eller .SUFFIXES och .PRECIOUS specifikationer. Det finns tre sätt att skicka makron till en rekursiv NMAKE-session:

  • Ange en miljövariabel med ett SET kommando före det rekursiva anropet.
  • Definiera ett makro i kommandot för det rekursiva anropet.
  • Eller definiera ett makro i Tools.ini.
Makro Definition
MAKE Kommandot användes ursprungligen för att anropa NMAKE.

Makrot $(MAKE) ger den fullständiga sökvägen till nmake.exe.
MAKEDIR Aktuell katalog när NMAKE anropades.
MAKEFLAGS Alternativ som för närvarande gäller. Använd som /$(MAKEFLAGS). Alternativet /F ingår inte.

Kommandomakron och alternativmakron

Kommandomakron är fördefinierade för Microsoft-produkter. Alternativmakron representerar alternativ för dessa produkter och är odefinierade som standard. Båda används i fördefinierade slutsatsdragningsregler och kan användas i beskrivningsblock eller användardefinierade slutsatsdragningsregler. Kommandomakron kan omdefinieras så att de representerar en del av eller hela en kommandorad, inklusive alternativ. Alternativmakron genererar en null-sträng om den lämnas odefinierad.

Verktyg Kommandomakro Definieras som Alternativmakron
Makromonterare AS ml eller ml64 AFLAGS
C-kompilator CC cl CFLAGS
C++-kompilator CPP cl CPPFLAGS
C++-kompilator CXX cl CXXFLAGS
Resurskompilerare RC rc RFLAGS

Miljövariabelmakron

NMAKE ärver makrodefinitioner för miljövariabler som finns före sessionens start. Om en variabel har angetts i operativsystemets miljö är den tillgänglig som ett NMAKE-makro. De ärvda namnen konverteras till versaler. Arv sker före förbearbetning. Använd alternativet /E för att få makron som ärvts från miljövariabler att åsidosätta makron med samma namn i makefile.

Miljövariabelmakron kan omdefinieras i sessionen och detta ändrar motsvarande miljövariabel. Du kan också ändra miljövariabler med KOMMANDOT SET. Om du använder SET-kommandot för att ändra en miljövariabel i en session ändras dock inte motsvarande makro.

Till exempel:

PATH=$(PATH);\nonesuch

all:
    echo %%PATH%%

I det här exemplet ändras motsvarande miljövariabel PATHom du ändrar PATH . den lägger till \nonesuch till din sökväg.

Om en miljövariabel definieras som en sträng som skulle vara syntaktiskt felaktig i en makefil skapas inget makro och ingen varning genereras. Om en variabels värde innehåller ett dollartecken ($) tolkar NMAKE det som början på ett makroanrop. Att använda makrot kan orsaka oväntat beteende.

Se även

makron och NMAKE-