Ö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 dosya adları (diskteki tam dosya adı belirtimleri değil) olarak önceden tanımlanmıştır. Bu makroların çağrıldığında parantez içinde gösterilmesi gerekmezcl; yalnızca gösterildiği gibi bir $
belirtin.
Makro | Anlamı |
---|---|
$@ |
Geçerli hedefin tam adı (yol, temel ad, uzantı) şu anda belirtildiği gibi. |
$$@ |
Geçerli hedefin tam adı (yol, temel ad, uzantı) şu anda belirtildiği gibi. Yalnızca bağımlılıkta bağımlı olarak geçerlidir. |
$* |
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 vecldeğiştirilen makroyu parantez içinde açı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. olarak /$(MAKEFLAGS) kullanın. Seçenek /F uded içindecldeğil. |
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ı, komut satırının bir bölümünü veya tamamını temsil etmek için, uding seçeneklerindeclyeniden tanımlanabilir. Seçenekler makroları tanımsız bırakılırsa null dize oluşturur.
Araç | Komut makro | Farklı tanımlanmış | 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 |
Resource 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. Devralınan adlar uppercase'ye 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 olarak tanımlanırsa, makro oluşturulmaz ve uyarı oluşturulmaz. Bir değişkenin değeri dolar işareti ($) içeriyorsa, NMAKE bunu makro çağrısının başlangıcı olarak yorumlar. Makronun kullanılması beklenmeyen davranışlara neden olabilir.