Delen via


Speciale NMAKE-macro's

NMAKE biedt verschillende speciale macro's die verschillende bestandsnamen en opdrachten vertegenwoordigen. Een van deze macro's wordt gebruikt in de vooraf gedefinieerde deductieregels. Net als alle macro's zijn de macro's van NMAKE hoofdlettergevoelig.

Bestandsnaammacro's

Bestandsnaammacro's zijn vooraf gedefinieerd als bestandsnamen die zijn opgegeven in de afhankelijkheid (niet volledige bestandsnaamspecificaties op schijf). Deze macro's hoeven niet tussen haakjes te worden geplaatst wanneer ze worden aangeroepen; geef alleen een $ op, zoals wordt weergegeven.

Macro Betekenis
$@ De volledige naam van het huidige doel (pad, basisnaam, extensie), zoals momenteel is opgegeven.
$$@ De volledige naam van het huidige doel (pad, basisnaam, extensie), zoals momenteel is opgegeven. Alleen geldig als afhankelijk van een afhankelijkheid.
$* Het pad van het huidige doel en de basisnaam minus de bestandsextensie.
$** Alle afhankelijken van het huidige doel.
$? Alle afhankelijke personen met een latere tijdstempel dan het huidige doel.
$< Afhankelijk bestand met een latere tijdstempel dan het huidige doel. Alleen geldig in opdrachten in deductieregels.

Als u een deel van een vooraf gedefinieerde bestandsnaammacro wilt opgeven, voegt u een macroaanpassing toe en plaatst u de gewijzigde macro tussen haakjes.

Modifier Resulterend bestandsnaamonderdeel
D Station plus map
B Basisnaam
F Basisnaam plus extensie
R Station plus map plus basisnaam

Recursiemacro's

Gebruik recursiemacro's om NMAKE recursief aan te roepen. Recursieve sessies nemen macro's van opdrachtregel- en omgevingsvariabelen en Tools.ini informatie over. Ze nemen geen door makefile gedefinieerde deductieregels of .SUFFIXES en .PRECIOUS specificaties over. Er zijn drie manieren om macro's door te geven aan een recursieve NMAKE-sessie:

  • Stel een omgevingsvariabele in met een SET opdracht vóór de recursieve aanroep.
  • Definieer een macro in de opdracht voor de recursieve aanroep.
  • Of definieer een macro in Tools.ini.
Macro Definitie
MAKE De opdracht die oorspronkelijk is gebruikt om NMAKE aan te roepen.

De $(MAKE) macro geeft het volledige pad naar nmake.exe.
MAKEDIR Huidige map toen NMAKE werd aangeroepen.
MAKEFLAGS Opties die momenteel van kracht zijn. Gebruiken als /$(MAKEFLAGS). De optie /F is niet opgenomen.

Opdrachtmacro's en optiesmacro's

Opdrachtmacro's zijn vooraf gedefinieerd voor Microsoft-producten. Optiesmacro's vertegenwoordigen opties voor deze producten en zijn standaard niet gedefinieerd. Beide worden gebruikt in vooraf gedefinieerde deductieregels en kunnen worden gebruikt in beschrijvingsblokken of door de gebruiker gedefinieerde deductieregels. Opdrachtmacro's kunnen opnieuw worden gedefinieerd om een deel of alle opdrachtregels weer te geven, inclusief opties. Met optiesmacro's wordt een null-tekenreeks gegenereerd als deze niet is gedefinieerd.

Werktuig Opdrachtmacro Gedefinieerd als Macro Opties
Macroassembly AS ml of ml64 AFLAGS
C Compiler CC cl CFLAGS
C++ Compiler CPP cl CPPFLAGS
C++ Compiler CXX cl CXXFLAGS
Resourcecompilator RC rc RFLAGS

Macro's met omgevingsvariabelen

NMAKE neemt macrodefinities over voor omgevingsvariabelen die vóór het begin van de sessie bestaan. Als een variabele is ingesteld in de omgeving van het besturingssysteem, is deze beschikbaar als een NMAKE-macro. De overgenomen namen worden geconverteerd naar hoofdletters. Overname vindt plaats vóór de voorverwerking. Gebruik de optie /E om ervoor te zorgen dat macro's die zijn overgenomen van omgevingsvariabelen, eventuele macro's met dezelfde naam in het makefile overschrijven.

Macro's met omgevingsvariabelen kunnen opnieuw worden gedefinieerd in de sessie en hierdoor wordt de bijbehorende omgevingsvariabele gewijzigd. U kunt ook omgevingsvariabelen wijzigen met de opdracht SET. Als u de opdracht SET gebruikt om een omgevingsvariabele in een sessie te wijzigen, wordt de bijbehorende macro echter niet gewijzigd.

Bijvoorbeeld:

PATH=$(PATH);\nonesuch

all:
    echo %%PATH%%

In dit voorbeeld wijzigt u PATH de bijbehorende omgevingsvariabele PATH; het toevoegt \nonesuch aan uw pad.

Als een omgevingsvariabele is gedefinieerd als een tekenreeks die syntactisch onjuist is in een makefile, wordt er geen macro gemaakt en wordt er geen waarschuwing gegenereerd. Als de waarde van een variabele een dollarteken ($) bevat, interpreteert NMAKE deze als het begin van een macroaanroep. Het gebruik van de macro kan onverwacht gedrag veroorzaken.

Zie ook

macro's en NMAKE-