Özel NMAKE makroları
NMAKE, çeşitli dosya adlarını ve komutları temsil eden birkaç özel makro sağlar. Bu makrolardan bazıları için kullanılanlardan biri önceden tanımlanmış çıkarım kurallarındadır. Tüm makrolar gibi, NMAKE tarafından sağlanan makrolar da büyük/küçük harfe duyarlıdır.
Dosya Adı Makroları
Dosya adı makroları, bağımlılıkta belirtilen önceden tanımlanmış as dosya adlarıdır (diskteki tam dosya adı belirtimleri değildir). Bu makroların çağrıldığında parantez içine alınması gerekmez; yalnızca gösterileni $
as belirtin.
Makro | Anlamı |
---|---|
$@ |
Geçerli hedefin tam adı (yol, temel ad, uzantı), as şu anda belirtilmiş. |
$$@ |
Geçerli hedefin tam adı (yol, temel ad, uzantı), as şu anda belirtilmiş. Yalnızca as bir bağımlılıkta bağımlı olan geçerli. |
$* |
Geçerli hedefin yolu ve temel adı eksi dosya uzantısı. |
$** |
Geçerli hedefin tüm bağımlıları. |
$? |
Geçerli hedeften daha sonraki bir zaman damgasına sahip olan tüm bağımlılar. |
$< |
Geçerli hedeften daha sonraki bir zaman damgasına sahip bağımlı dosya. Yalnızca çıkarım kurallarındaki komutlarda geçerlidir. |
Önceden tanımlanmış dosya adı makrosunun bir bölümünü belirtmek için, bir makro değiştirici ekleyin ve değiştirilen makroyu parantez içine alın.
Değiştirici | Sonuçta elde edilen dosya adı bölümü |
---|---|
D |
Sürücü artı dizin |
B |
Temel ad |
F |
Temel ad ve uzantı |
R |
Sürücü artı dizin artı temel ad |
Özyineleme makroları
NMAKE'yi özyinelemeli olarak çağırmak için özyineleme makrolarını kullanın. Özyinelemeli oturumlar komut satırı ve ortam değişkeni makrolarını ve Tools.ini
bilgilerini devralır. Derleme dosyası tanımlı çıkarım kurallarını veya .SUFFIXES
ve .PRECIOUS
belirtimlerini devralmıyorlar. Özyinelemeli NMAKE oturumuna makro geçirmenin üç yolu vardır:
- Özyinelemeli çağrıdan önce komutuyla bir
SET
ortam değişkeni ayarlayın. - Özyinelemeli çağrı için komutta bir makro tanımlayın.
- Veya içinde
Tools.ini
bir makro tanımlayın.
Makro | Tanım |
---|---|
MAKE |
Başlangıçta NMAKE'yi çağırmak için kullanılan komut. Makro, $(MAKE) yolunun tamamını nmake.exe verir. |
MAKEDIR |
NMAKE çağrıldığında geçerli dizin. |
MAKEFLAGS |
Şu anda etkin olan seçenekler. as/$(MAKEFLAGS) adresini kullanın. Seçenek /F dahil değildir. |
Komut makroları ve seçenek makroları
Komut makroları Microsoft ürünleri için önceden tanımlanmıştır. Seçenekler makroları bu ürünlerin seçeneklerini temsil eder ve varsayılan olarak tanımlanmamıştır. Her ikisi de önceden tanımlanmış çıkarım kurallarında kullanılır ve açıklama bloklarında veya kullanıcı tanımlı çıkarım kurallarında kullanılabilir. Komut makroları, seçenekler de dahil olmak üzere bir komut satırının bir bölümünü veya tamamını temsil etmek için yeniden tanımlanabilir. Seçenekler makroları tanımsız bırakılırsa null dize oluşturur.
Araç | Komut makro | Tanımlanan as | Seçenekler makro |
---|---|---|---|
Makro Derleyicisi | AS |
ml veya ml64 |
AFLAGS |
C Derleyicisi | CC |
cl |
CFLAGS |
C++ Derleyicisi | CPP |
cl |
CPPFLAGS |
C++ Derleyicisi | CXX |
cl |
CXXFLAGS |
Kaynak Derleyicisi | RC |
rc |
RFLAGS |
Ortam değişkeni makroları
NMAKE, oturum başlamadan önce var olan ortam değişkenleri için makro tanımlarını devralır. İşletim sistemi ortamında bir değişken ayarlandıysa, bir NMAKE makrosunda kullanılabilir as . Devralınan adlar büyük harfe dönüştürülür. Devralma ön işlemeden önce gerçekleşir. Ortam değişkenlerinden devralınan makroların derleme dosyasında aynı ada sahip makroları geçersiz kılabilir hale getirmesine neden olmak için /E seçeneğini kullanın.
Ortam değişkeni makroları oturumda yeniden tanımlanabilir ve bu, karşılık gelen ortam değişkenini değiştirir. Ortam değişkenlerini SET komutuyla da değiştirebilirsiniz. Ancak bir oturumdaki ortam değişkenini değiştirmek için SET komutunun kullanılması ilgili makroyu değiştirmez.
Örneğin:
PATH=$(PATH);\nonesuch
all:
echo %%PATH%%
Bu örnekte, değişiklik PATH
ilgili ortam değişkenini PATH
değiştirir; yolunuz sonuna eklenir \nonesuch
.
Ortam değişkeni, bir derleme dosyasında söz dizimsel olarak yanlış olabilecek bir dize tanımlandıysa as , makro oluşturulmaz ve uyarı oluşturulmaz. Bir değişkenin değeri dolar işareti ($) içeriyorsa, NMAKE bunu as makro çağrısının başlangıcı olarak yorumlar. Makronun kullanılması beklenmeyen davranışlara neden olabilir.