Funktion för att kontrollera om en fil existerar med GNU Make
GNU makefiles låter ditt lilla företag lägga ut källkod som kan anpassa sin sammanställning till en specifik klient maskin och förebyggande upptäcka problem eller obehindrade programvaruberoende. Att kontrollera om vissa filer finns är centrala för GNU make-funktionen, och du kan välja mellan en av flera metoder för att göra just det.
regler
Ett sätt att kontrollera om en fil finns i din GNU-makefile innebär det inbyggda systemreglerna. Koden under syntaxen "mål: normala förutsättningar | order-only-requirements" utförs endast om filen eller filerna som anges som "mål" inte är nyare än de du anger i "normala förutsättningar" och om filerna du Ange i "order-only-requirements" finns. Om du använder syntaxen "mål: | order-only-requirements" och ange inte några filer till vänster om "|" symbolen kommer koden nedan bara att utföras om filen eller filerna du anger som "order-only-requirements" existerar.
Testfunktion
Kommandot "test -f" kan också kontrollera om en viss fil finns. Detta kommando tar ett filnamn som ett argument och returnerar sedan ett booleskt värde av "true" om den filsökväg du passerade kommandot existerar, och "false" om den inte finns där. Du kan integrera detta kommando i "om" uttalanden och andra kontrollfunktioner du placerar i makefilen för finkornad kontroll över hantering av antingen resultatet.
Kollar efter katalog
Regelmetoden eller kommandot "test -d" fungerar exakt som "test -f" -kommandot, bara det returnerar sant om sökvägen du angav som ett argument är en befintlig katalog istället för att kontrollera om argumentet är en fil . Om du kontrollerar förekomsten av en katalog där din makefile kommer att kompilera eller bygga filer, kommer kommandot "mkdir -p katalognamn" att försöka skapa en katalog med namnet du angav som "katalognamn", såvida inte det existerar redan. "-P" -argumentet hindrar mkdir från att kasta ett felmeddelande som gör att slutanvändaren tror att något har gått fel. Du kan då använda katalogen i din makefile-kod och veta att filen finns - eftersom den redan var där eller för att mkdir skapade den.
Robust Makefile
Olika klientsystemspaketpaket där din programvara beror på lite annorlunda katalogvägar. Om du antar en enda plats kan dina kunder emellertid få taggar som säger att de behöver ett programpaket som de redan har. Du kan minimera problemet genom att undersöka de olika systemen som används av din målklientbas och se till att din makefile kontrollerar flera möjliga platser för beroende programpaket.