Funktion til at kontrollere, om en fil eksisterer med GNU Make

GNU makefiles lader din lille virksomhed udstyre kildekoden, der kan tilpasse sin kompilering til en bestemt klients maskine og forebyggende opdage problemer eller uberørt software afhængigheder. Kontrol for at se, om der findes visse filer, er centralt i GNU make-funktionen, og du kan vælge mellem en af ​​flere metoder til at gøre netop det.

Regler

En måde at kontrollere, om der findes en fil i din GNU makefile, indebærer det indbyggede regelsæt. Koden under syntaxen "Mål: Normale forudsætninger | Order-only-Requirements" udføres kun, hvis filen eller filerne, der er angivet som "Mål", ikke er nyere end dem, du angiver i "normale forudsætninger", og hvis de filer du Angiv i "ordre-kun-forudsætninger" eksisterer. Hvis du bruger syntaxen "mål: | ordre-kun-forudsætninger" og angiv ikke nogen filer til venstre i "|" symbol, vil koden nedenfor kun udføres, hvis filen eller filerne du angiver som "ordre-kun-forudsætninger" eksisterer.

Testfunktion

Kommandoen "test -f" kan også kontrollere, om der findes en bestemt fil. Denne kommando tager et filnavn som et argument, og returnerer derefter en boolsk værdi af "true", hvis den filsti du bestod kommandoen eksisterer, og "false", hvis den ikke er der. Du kan integrere denne kommando i "hvis" udsagn og andre kontrolfunktioner, du placerer i makefile, for finkornet kontrol over håndtering af enten resultatet.

Kontrol for katalog

Regelmetoden eller kommandoen "test -d" virker nøjagtigt som kommandoen "test -f", kun den returnerer sandt, hvis den vej du har angivet som et argument, er en eksisterende mappe i stedet for at kontrollere, om argumentet er en fil . Hvis du kontrollerer eksistensen af ​​en mappe, hvor din makefile vil kompilere eller bygge filer, vil kommandoen "mkdir -p directory-name" forsøge at oprette en mappe med det navn, du har angivet som "mappenavn", medmindre det eksisterer allerede. "-P" -argumentet forhindrer mkdir i at smide en fejlmeddelelse, der gør slutbrugeren i stand til at tro, at noget er gået galt. Du kan derefter bruge mappen i din makefile kode ved at vide, at filen eksisterer - fordi den allerede var der, eller fordi mkdir oprettede det.

Robust Makefile

Forskellige klientsystemer, der indeholder pakker, som din software afhænger af lidt forskellige katalogveje. Hvis du antager en enkelt placering, kan dine kunder imidlertid modtage makefiler, der fortæller dem, at de har brug for en softwarepakke, som de allerede har. Du kan minimere dette problem ved at undersøge de forskellige systemer, der bruges af din målklientbase, og sikre, at din makefile kontrollerer flere mulige steder for afhængige softwarepakker.

Populære Indlæg