GNU Make İle Bir Dosyanın Var Olduğunu Kontrol Etme İşlevi
GNU makefiles, küçük işletmelerinizin derlemesini belirli bir müşterinin makinesine uyarlayabilen kaynak kodunu çıkarmasına ve problemleri veya karşılanmayan yazılım bağımlılıklarını önleyici bir şekilde saptamasına izin verir. Belirli dosyaların var olup olmadığını kontrol etmek GNU make fonksiyonunun merkezinde olup, bunu yapmak için birkaç yöntemden birini seçebilirsiniz.
kurallar
GNU makefile'inizde bir dosya olup olmadığını kontrol etmenin bir yolu, onun yerleşik kural sistemini içerir. "Target: normal-prerequisites | only-only-prerequisites" sözdiziminin altındaki kod, yalnızca "target" olarak belirtilen dosya veya dosyalar "normal-önkoşullar" da belirttiğinizden daha yeni değilse ve siz de "yalnızca sipariş-önkoşullar" da belirtin. Eğer "target: | order-only-prerequisites" sözdizimini kullanıyorsanız ve "|" 'nin sol tarafına dosya belirtmeyin. sembolünde, aşağıdaki kod yalnızca "yalnızca sipariş-önkoşullar" olarak belirttiğiniz dosya veya dosyalar mevcutsa çalışır.
Test İşlevi
"Test -f" komutu ayrıca belirli bir dosyanın var olup olmadığını kontrol edebilir. Bu komut bir dosya adını argüman olarak alır, daha sonra komutu ilettiğiniz dosya yolu varsa "true" ve Boolean değerini döndürür. Bu komutu "if" ifadelerine ve makefile herhangi bir sonucu işlemek için ince taneli kontrol için yerleştirdiğiniz diğer kontrol işlevlerine entegre edebilirsiniz.
Dizin denetleniyor
Kural yöntemi veya "test -d" komutu tam olarak "test -f" komutuyla aynı şekilde çalışır, bağımsız değişken olarak sağladığınız yol varolan bir klasör olup olmadığını denetlemek yerine, yalnızca değişken olur . Makefile dosyanızın derleneceği veya oluşturulacağı bir dizinin varlığını kontrol ediyorsanız, "mkdir -p dizin adı" komutu, "dizin adı" olarak belirttiğiniz adla bir dizin oluşturmaya çalışır. zaten var. "-P" argümanı mkdir dosyasının son kullanıcının bir şeylerin ters gittiğini düşünmesini sağlayan bir hata mesajı atmasını önler. Daha sonra, dosyanın var olduğunu bilerek makefile kodunuzdaki dizini kullanabilirsiniz - çünkü zaten oradaydı ya da mkdir onu yarattı.
Sağlam Makefile
Farklı istemci sistemleri, yazılımınızın biraz farklı dizin yollarına bağlı olduğu paketleri depolar. Bununla birlikte, tek bir yer varsa, müşterileriniz zaten sahip oldukları bir yazılım paketine ihtiyaç duyduklarını söyleyen makefiles alabilirler. Hedef müşteri tabanınız tarafından kullanılan farklı sistemleri araştırarak bu sorunu en aza indirebilir ve makefile dosyanızın bağımlı yazılım paketleri için olası birçok konumu kontrol etmesini sağlayabilirsiniz.