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:
fileFonksiyon ç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 CMDdepolanan parametreler CMDFLAGSve 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)
>$@.inbir dosya modu olarak kullanıldığını söylemiyor ... ama kendi yolunda yararlı .. teşekkürler cuonglm ...