Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
NMAKE udostępnia kilka specjalnych makr do reprezentowania różnych nazw plików i poleceń. Jednym z tych makr jest użycie wstępnie zdefiniowanych reguł wnioskowania. Podobnie jak we wszystkich makrach, w makrach udostępnianych przez NMAKE uwzględniana jest wielkość liter.
Makra nazwy pliku
Makra nazwy pliku są wstępnie zdefiniowane jako nazwy plików określone w zależności (nie pełne specyfikacje nazwy pliku na dysku). Te makra nie muszą być ujęte w nawiasy po wywołaniu; określ tylko $, jak pokazano.
| Makro | Znaczenie |
|---|---|
$@ |
Pełna nazwa bieżącego obiektu docelowego (ścieżka, nazwa podstawowa, rozszerzenie), zgodnie z bieżącymi danymi. |
$$@ |
Pełna nazwa bieżącego obiektu docelowego (ścieżka, nazwa podstawowa, rozszerzenie), zgodnie z bieżącymi danymi. Prawidłowe tylko jako zależność zależna. |
$* |
Ścieżka bieżącego obiektu docelowego i nazwa podstawowa minus rozszerzenie pliku. |
$** |
Wszystkie zależnych od bieżącego celu. |
$? |
Wszystkie zależności z późniejszym znacznikiem czasu niż bieżący element docelowy. |
$< |
Plik zależny z późniejszym znacznikiem czasu niż bieżący element docelowy. Prawidłowe tylko w poleceniach w regułach wnioskowania. |
Aby określić część wstępnie zdefiniowanego makra nazwy pliku, dołącz modyfikator makra i dołącz zmodyfikowane makro w nawiasach.
| Modyfikator | Wynikowa część nazwy pliku |
|---|---|
D |
Dysk plus katalog |
B |
Nazwa podstawowa |
F |
Nazwa podstawowa i rozszerzenie |
R |
Dysk plus katalog plus nazwa podstawowa |
Makra rekursji
Użyj makr rekursji, aby wywołać rekursywnie NMAKE. Rekursywne sesje dziedziczą makra wiersza polecenia i zmiennej środowiskowej oraz Tools.ini informacje. Nie dziedziczą reguł wnioskowania zdefiniowanych przez plik make ani .SUFFIXES.PRECIOUS specyfikacji. Istnieją trzy sposoby przekazywania makr do cyklicznej sesji NMAKE:
- Ustaw zmienną środowiskową
SETza pomocą polecenia przed wywołaniem cyklicznym. - Zdefiniuj makro w poleceniu dla wywołania cyklicznego.
- Możesz też zdefiniować makro w pliku
Tools.ini.
| Makro | Definicja |
|---|---|
MAKE |
Polecenie używane pierwotnie do wywoływania NMAKE. Makro $(MAKE) daje pełną ścieżkę do nmake.exe. |
MAKEDIR |
Bieżący katalog po wywołaniu narzędzia NMAKE. |
MAKEFLAGS |
Obecnie obowiązują opcje. Użyj jako /$(MAKEFLAGS). Opcja /F nie jest dołączona. |
Makra poleceń i makra opcji
Makra poleceń są wstępnie zdefiniowane dla produktów firmy Microsoft. Makra opcji reprezentują opcje dla tych produktów i są domyślnie niezdefiniowane. Oba są używane w wstępnie zdefiniowanych reguł wnioskowania i mogą być używane w blokach opisu lub regułach wnioskowania zdefiniowanych przez użytkownika. Makra poleceń można ponownie zdefiniować, aby reprezentować część lub cały wiersz polecenia, w tym opcje. Makra opcji generują ciąg o wartości null, jeśli pozostawiono niezdefiniowane.
| Narzędzie | Makro polecenia | Zdefiniowane jako | Makro opcje |
|---|---|---|---|
| Asembler makr | AS |
ml lub ml64 |
AFLAGS |
| Kompilator języka C | CC |
cl |
CFLAGS |
| Kompilator C++ | CPP |
cl |
CPPFLAGS |
| Kompilator C++ | CXX |
cl |
CXXFLAGS |
| Kompilator zasobów | RC |
rc |
RFLAGS |
Makra zmiennych środowiskowych
NMAKE dziedziczy definicje makr dla zmiennych środowiskowych, które istnieją przed rozpoczęciem sesji. Jeśli zmienna została ustawiona w środowisku systemu operacyjnego, jest dostępna jako makro NMAKE. Dziedziczone nazwy są konwertowane na wielkie litery. Dziedziczenie następuje przed przetwarzaniem wstępnym. Użyj opcji /E, aby spowodować, że makra dziedziczone ze zmiennych środowiskowych zastępują wszystkie makra o tej samej nazwie w pliku make.
Makra zmiennych środowiskowych można ponownie zdefiniować w sesji. Spowoduje to zmianę odpowiedniej zmiennej środowiskowej. Zmienne środowiskowe można również zmienić za pomocą polecenia SET. Użycie polecenia SET w celu zmiany zmiennej środowiskowej w sesji nie powoduje jednak zmiany odpowiedniego makra.
Na przykład:
PATH=$(PATH);\nonesuch
all:
echo %%PATH%%
W tym przykładzie zmiana zmienia PATH odpowiadającą mu zmienną środowiskową PATH; dołącza \nonesuch ją do ścieżki.
Jeśli zmienna środowiskowa jest zdefiniowana jako ciąg, który będzie składniowo niepoprawny w pliku make, żadne makro nie zostanie utworzone i nie zostanie wygenerowane żadne ostrzeżenie. Jeśli wartość zmiennej zawiera znak dolara ($), NMAKE interpretuje ją jako początek wywołania makra. Użycie makra może spowodować nieoczekiwane zachowanie.