Burada üç alakasız kullanım vardır @
.
İçinde $@
, karakter bir kuralda kullanılabilen otomatik bir değişkenin@
adıdır . Bu değişkenin değeri, kuralın oluşturduğu hedeftir.
Bir @
reçete (komut) satırının en başında kullanıldığında, sekme karakterinden hemen sonra, komutun yürütülmek üzereyken yazdırılmamasına neden olur .
@
Başka bir yerdeki karakter özel değil.
Böylece, örneğin, inşa etmek için program
:
file
Fonksiyon çağrılır. Hedefin bağımlılıklarını ( $^
otomatik değişken) dosyaya yazar program.in
.
Değişkende depolanan her komut, değişkende CMD
depolanan parametreler CMDFLAGS
ve ekstra parametre ile birlikte yürütülür @program.in
. Bunun ne olduğuna bağlı CMD
.
Komut rm program.in
önce yazdırılmadan yürütülür.
Birkaç komut, bir parametreden başlayarak, @
daha fazla parametre okunacağı dosyayı gösteren bir parametreyi ele alır. DOS'un komut satırı uzunluğu üzerinde sıkı bir sınırı olduğu ve komutun çıktısını komut satırına enterpolasyon yapmanın bir yolu olmadığı için ortaya çıkan bir DOS kuralıdır. Unix dünyasında nadirdir, çünkü Unix'in bu sınırlamaları yoktur. Tarifin etkisi muhtemelen aynı
$(CMD) $(CMDFLAGS) $(OBJECTS)
>$@.in
bir dosya modu olarak kullanıldığını söylemiyor ... ama kendi yolunda yararlı .. teşekkürler cuonglm ...