GNU Makefile kılavuzunda bu öneklerden bahsedilmektedir .
.ONESHELL sağlanırsa, özel önek karakterleri ('@', '-' ve '+') için tarifin yalnızca ilk satırı kontrol edilir.
Bu önekler ne işe yarıyor ve nerelerden bahsediliyor?
GNU Makefile kılavuzunda bu öneklerden bahsedilmektedir .
.ONESHELL sağlanırsa, özel önek karakterleri ('@', '-' ve '+') için tarifin yalnızca ilk satırı kontrol edilir.
Bu önekler ne işe yarıyor ve nerelerden bahsediliyor?
Yanıtlar:
Etiketli komut satırları için make davranışını kontrol ederler:
@
yürütülen komutun normal 'yankısını' bastırır.
-
, yürütülen komutun çıkış durumunu yoksay (normalde sıfır olmayan bir çıkış durumu derlemenin o kısmını durdurur).
+
make -n
komutlar normal olarak yürütülmediğinde ' bu komutu ' (veya 'make -t' veya 'make -q') altında çalıştır anlamına gelir . GNU Marka kılavuzunun POSIX spesifikasyonuna make
ve ayrıca §9.3'e bakınız .
+
Gösterimde bir (POSIX standart) genelleme fiili bir komut hattı ihtiva eden, burada (standart olmayan) bir mekanizma ${MAKE}
veya $(MAKE)
altında yürütülür make -n
.
( @
Tartışılmıştır §5.2 ; GNU'yu elle yapmak -
anlatılan §5.5 ve §5.7.1 kullanımından söz +
).
@
komut satırının konsola yankılanmasını engeller. Sen ile küresel yapabilir -s
veya--keep-silent
-
komut bir sebepten dolayı başarısız olsa bile devam etmesini söyler. Bunu -i
bayrak (veya --ignore-errors
) aracılığıyla global olarak yapabilirsiniz .
+
Siz sormadan önce familar değildim. Söyleyebileceğim yakın olarak, etkisini geçersiz kılan -n
, -t
ve -q
temelde aslında komutları çalıştırın değil markasını söyle hepsi. Yani +
ön tarafta bir çizgi olan zaten çalışır.
Resmi Gnu Make kılavuzunu okursanız, bunların tümü Bölüm 5'te belirtilmiştir . "Komutlar" bölümü olan kılavuzun eski kopyasında, ama du jour terimi artık "tarifler" gibi görünüyor.