Skip to main content

Förstå Unix och Linux Command: make

My Corvette Sounds INSANE!! First Reactions to NEW Stage 3 TSP CAM! (Maj 2025)

My Corvette Sounds INSANE!! First Reactions to NEW Stage 3 TSP CAM! (Maj 2025)
Anonim

Syftet med tillverkningsverktyget är att automatiskt bestämma vilka delar av ett stort program som behöver kompileras och utfärda kommandona för att kompilera dem. Handboken beskriver GNU-implementeringen av make, som skrevs av Richard Stallman och Roland McGrath. Dessa exempel visar C-program eftersom de är vanligaste, men du kan använda gör med vilket programmeringsspråk som kompilatorn kan köras med ett kommandot Shell. Faktum är att det inte är begränsat till program. Du kan använda den för att beskriva en uppgift där vissa filer måste uppdateras automatiskt från andra när de andra ändras.

Notera: Denna sida är ett utdrag av dokumentationen av GNU make . Det uppdateras bara en gång eftersom GNU-projektet inte använder nroff. För fullständig, aktuell dokumentation, hänvisa till info filen make.info som är gjord av Texinfo källfilen make.texinfo.

Syntax och förberedelse av användbarhet

göra -f makefile alternativ … mål …

För att förbereda sig för att använda make måste du skriva en fil som heter makefile som beskriver relationerna mellan filer i ditt program och anger kommandon för uppdatering av varje fil. Vanligtvis uppdateras en körbar fil från objektfiler, som i sin tur görs genom att sammanställa källfiler.

När en lämplig makefile finns, varje gång du ändrar vissa källfiler, kommer det här enkla skalkommandot göra räcker för att utföra alla nödvändiga rekompileringar. Make-programmet använder makefile-databasen och de senaste ändringstiderna för filerna för att bestämma vilka filer som behöver uppdateras. För varje av dessa filer utfärdar den kommandon som är inspelade i databasen.

Verktyget gör körningar i makefile för att uppdatera ett eller flera målnamn, var namn är vanligtvis ett program. Om inte-f alternativet är närvarande, gör kommer leta efter makefilesGNUmakefile, makefile, ochMakefile, i den ordningen.

Normalt bör du ringa din makefile, antingen makefile eller Makefile. (Det rekommenderas att använda Makefile eftersom det visas framträdande nära början av en kataloglista, precis i närheten av andra viktiga filer somREADME.) Förnamnet kontrolleras, GNUmakefile, rekommenderas inte för de flesta makefiles. Du ska använda det här namnet om du har en makefile som är specifik för GNU-märket och kommer inte att förstås av andra versioner av tillverkning. Om makefile är -, standardinmatningen läses.

De göra verktyget uppdaterar ett mål om det beror på förkunskapsfiler som har ändrats sedan målet senast ändrades, eller om målet inte existerar.

alternativ

De -b och -m Alternativ ignoreras för kompatibilitet med andra versioner av tillverkning.

-C dir kommer att ändras till katalog dir innan du läser makefiles eller gör något annat. Om flera-C alternativ anges, varje tolkas i förhållande till föregående:-C/ -C etc är ekvivalent med-C / etc. Detta används vanligen med rekursiva invokationer av make.

De -d alternativet kommer att skriva ut felsökningsinformation utöver normal bearbetning. Felsökningsinformationen säger vilka filer som ska beaktas för att remaking, vilka filtider som jämförs och vilka resultat, vilka filer som faktiskt behöver återställas, vilka implicita regler som övervägs och vilka tillämpas - allting intressant om hur man bestämmer vad man ska göra .

De -e alternativ ger variabler som tas från miljöpreferensen över variabler från makefiles.

De -f fil alternativanvändning fil som en makefile.

De -jag alternativet ignorerar alla fel i kommandon som körs för att återskapa filer.

De -JAG dir alternativet anger en katalog dir att söka efter inkluderade makefiles. Om flera-JAG Alternativ används för att ange flera kataloger, katalogerna söks i den angivna ordern. Till skillnad från argumenten till andra flaggor av make, kataloger som ges med-JAG flaggor kan komma direkt efter flaggan:-Idir är tillåtet, liksom-Jag dir . Denna syntax är tillåten för kompatibilitet med C preprocessorns-JAG flagga.

De -j jobb alternativet anger antalet jobb (kommandon) att köra samtidigt. Om det finns mer än en-j alternativet, den sista är effektiv. Om-j alternativet ges utan argument, gör kommer inte att begränsa antalet jobb som kan köras samtidigt.

De -k Alternativet fortsätter så mycket som möjligt efter ett fel medan målet som misslyckades, och de som är beroende av det, inte kan återskapas, kan de andra beroendet av dessa mål bearbetas på samma sätt.

De -l och -l belastning alternativ anger att inga nya jobb (kommandon) ska startas om det finns andra jobb som körs och belastningsgenomsnittet är minstladda (ett flytande punktnummer). Inget argument tar bort en tidigare belastningsgräns.

De -n Alternativet skriver ut de kommandon som skulle utföras, men kör inte dem.

De -o fil alternativet återskapar inte fil även om den är äldre än dess beroenden och inte omarbjuder något på grund av förändringar i fil . I huvudsak behandlas filen som mycket gammal och dess regler ignoreras.

De -p Alternativet skriver ut databasen (regler och variabla värden) som följer av att läsa makefilerna. Den utförs då som vanligt eller som annat anges.Detta skriver också ut versionsinformationen från-v växla (se nedan). För att skriva ut databasen utan att försöka återskapa filer, användgöra -p -f / dev / null .

De -q alternativ sätter frågeställning. Kör inte några kommandon eller skriv ut någonting, returnera bara en utträdesstatus som är noll om de angivna målen redan är aktuella, oavsiktligt annars.

De -r alternativet eliminerar användningen av de inbyggda implicita reglerna. Också rensar ut standardlistan över suffixer för suffixregler.

De -s alternativet tystnar operationen. Det skriver inte ut kommandona när de körs.

De -S alternativet avbryter effekten av-k alternativ. Detta är aldrig nödvändigt utom i en rekursiv make var-k kan vara ärvt från toppnivå gör via MAKEFLAGS eller om du ställer in-k i MAKEFLAGS i din miljö.

De -t alternativet berör filer (markerar dem aktuella utan att verkligen ändra dem) istället för att köra sina kommandon. Detta används för att låtsas att kommandon gjordes för att lura framtida invokationer av make.

De -v alternativet skriver ut versionen av make-programmet plus en upphovsrätt, en förteckning över författare och ett meddelande om att det inte finns någon garanti.

De -w alternativet skriver ut ett meddelande som innehåller arbetsmappen före och efter annan behandling. Detta kan vara användbart för att spåra ner fel från komplicerade bonar av rekursivt märke kommandon.

De -W fil alternativ låtsas som målet fil har just ändrats. När den används med-n flagga, detta visar dig vad som skulle hända om du skulle ändra den filen. Utan-n, det är nästan detsamma som att köra aRör kommando på den givna filen innan körning gör, förutom att ändringstiden bara ändras i fantasin hos make.