Speciální makra NMAKE
NMAKE poskytuje několik speciálních maker, která představují různé názvy souborů a příkazy. Jedno použití pro některá z těchto maker je v předdefinovaných pravidlech odvozování. Stejně jako u všech maker rozlišují makra poskytovaná nástrojem NMAKE malá a velká písmena.
Makra názvů souborů
Makra názvu souboru jsou předdefinovaná jako názvy souborů zadaných v závislosti (nikoli jako úplné specifikace názvu souboru na disku). Tato makra nemusí být při vyvolání uzavřena do závorek; zadejte pouze $
, jak je znázorněno.
Makro | Význam |
---|---|
$@ |
Úplný název aktuálního cíle (cesta, základní název, přípona) je aktuálně zadaný. |
$$@ |
Úplný název aktuálního cíle (cesta, základní název, přípona) je aktuálně zadaný. Platné pouze jako závislé v závislosti. |
$* |
Cesta k aktuálnímu cíli a základní název minus přípona souboru. |
$** |
Všechny závislé na aktuálním cíli. |
$? |
Všechny závislé osoby s pozdějším časovým razítkem než aktuální cíl. |
$< |
Závislý soubor s pozdějším časovým razítkem než aktuální cíl Platné pouze v příkazech v pravidlech odvození. |
Chcete-li zadat část předdefinovaného makra názvu souboru, připojte modifikátor makra a uzavřete upravené makro do závorek.
Modifikátor | Výsledná část názvu souboru |
---|---|
D |
Adresář plus jednotky |
B |
Základní název |
F |
Základní název plus rozšíření |
R |
Jednotka plus název základního názvu |
Rekurzivní makra
Rekurzivní makra použijte k rekurzivnímu volání nástroje NMAKE. Rekurzivní relace dědí makra a informace příkazového řádku a Tools.ini
proměnné prostředí. Nedědí pravidla odvozování definované souborem pravidel nebo .SUFFIXES
.PRECIOUS
specifikace. Existují tři způsoby předání maker do rekurzivní relace NMAKE:
- Před rekurzivním voláním nastavte proměnnou
SET
prostředí pomocí příkazu. - Definujte makro v příkazu pro rekurzivní volání.
- Nebo definujte makro v
Tools.ini
souboru .
Makro | Definice |
---|---|
MAKE |
Příkaz použitý původně k vyvolání nástroje NMAKE. Makro $(MAKE) poskytuje úplnou cestu k nmake.exe . |
MAKEDIR |
Aktuální adresář při vyvolání nástroje NMAKE |
MAKEFLAGS |
Aktuálně se možnosti projeví. Používá se jako /$(MAKEFLAGS) . Tato /F možnost není zahrnutá. |
Příkazová makra a makra možností
Makra příkazů jsou předdefinovaná pro produkty Microsoftu. Makra možností představují možnosti pro tyto produkty a nejsou ve výchozím nastavení definovány. Obě se používají v předdefinovaných pravidlech odvozování a lze je použít v blocích popisu nebo v pravidlech odvození definovaných uživatelem. Makra příkazů lze předefinovat tak, aby představovala část nebo celý příkazový řádek, včetně možností. Makra možností generují řetězec null, pokud není definován.
Nástroj | Příkazové makro | Definováno jako | Makro Možnosti |
---|---|---|---|
Assembler maker | AS |
ml nebo ml64 |
AFLAGS |
Kompilátor jazyka C | CC |
cl |
CFLAGS |
Kompilátor C++ | CPP |
cl |
CPPFLAGS |
Kompilátor C++ | CXX |
cl |
CXXFLAGS |
kompilátor prostředků | RC |
rc |
RFLAGS |
Makra proměnné prostředí
NMAKE dědí definice maker pro proměnné prostředí, které existují před začátkem relace. Pokud byla proměnná nastavena v prostředí operačního systému, je k dispozici jako makro NMAKE. Zděděné názvy se převedou na velká písmena. Dědičnost nastane před předzpracováním. Pomocí možnosti /E můžete způsobit, že makra zděděná z proměnných prostředí přepíší všechna makra se stejným názvem v souboru pravidel.
Makra proměnných prostředí lze v relaci předefinovat a tím se změní odpovídající proměnná prostředí. Proměnné prostředí můžete také změnit pomocí příkazu SET. Změna proměnné prostředí v relaci pomocí příkazu SET ale nezmění odpovídající makro.
Příklad:
PATH=$(PATH);\nonesuch
all:
echo %%PATH%%
V tomto příkladu změníte PATH
odpovídající proměnnou PATH
prostředí , připojí \nonesuch
se k vaší cestě.
Pokud je proměnná prostředí definována jako řetězec, který by byl syntakticky nesprávný v souboru pravidel, není vytvořeno žádné makro a není generováno žádné upozornění. Pokud hodnota proměnné obsahuje znak dolaru ($), NMAKE ji interpretuje jako začátek vyvolání makra. Použití makra může způsobit neočekávané chování.