MAKE(1) | Brugerkommandoer | MAKE(1) |
make - GNU's make-værktøj til vedligeholdelse af grupper af programmer
make [TILVALG]... [MÅL]...
Formålet med make værktøjet er automatisk at afgøre hvilke dele af et stort program som behøver at blive genoversat, og at udføre kommandoerne til at genoversætte dem. Manualen beskriver GNU's implementation af make, som er skrevet af Richard Stallman og Roland McGrath, og i øjeblikket vedligeholdes af Paul Smith. Vores eksempler viser C-programmer, da de er de almindeligste, men du kan bruge make med ethvert programmeringssprog, hvis oversætter kan køres fra en skalkommando. Faktisk er make ikke begrænset til programmer. Du kan bruge det til at beskrive enhver opgave hvor nogle filer skal opdateres automatisk udfra andre filer, når disse andre filer ændres.
For at kunne bruge make, skal du skrive en fil kaldet makefilen som beskriver forbindelserne mellem filerne i dit program og angiver kommandoerne til at opdatere hver fil. I et program er den kørbare fil typisk opdateret fra objektfiler, som igen er lavet ved at oversætte kildetekstfiler.
Når først der er en passende makefil, vil denne enkle kommado:
være nok til at gennemføre alle nødvendige genoversættelser. Programmet make bruger makefilens beskrivelse og tiderne for filernes sidste ændring til at afgøre hvilke af filerne, der skal opdateres. For hver af disse filer udfører programmet de kommandoer, der er noteret i makefilen.
make udfører kommandoer i makefilen for at opdatere et eller flere mål, som typisk er programmer. Hvis der ikke er angivet et -f tilvalg, vil make kigge efter makefilerne GNUmakefile, makefile og Makefile i den rækkefølge.
Normalt bør du kalde din makefil enten makefile eller Makefile. (Vi anbefaler Makefile fordi det vil få en fremtrædende plads i begyndelsen af en katalogfilliste, i nærheden af andre vigtige filer såsom README). Det første tjekkede navn, GNUmakefile, er ikke anbefalet for de fleste makefiler. Du bør bruge det navn hvis du har en makefil som er specifik til GNU's make, og som ikke kan forstås af andre versioner af make. Hvis makefilen er `-', læses standard-inddata.
make opdaterer et mål hvis det afhænger af forudsatte filer som er blevet ændret efter at målet sidst var ændret, eller hvis målet ikke eksisterer.
GNU make afslutter med en status nul hvis alle makefiler blev fortolket med succes og ingen mål, der blev bygget, fejlede. En status på en vil blive returneret hvis flaget -q blev brugt og make afgør, at et mål skal genbygges. En status på to vil blive returneret, hvis der opstår fejl.
Hele dokumentationen for make bliver vedligeholdt som Texinfo manual. Hvis info and make programmerne er korrekt installeret på dit system vil komandoen
bør give dig adgang til den fulde manual. Derudover er manualen også tilgængelig på nettet på https://www.gnu.org/software/make/manual/html_node/index.html
Ved at bruge tilvalget -j kan brugeren instruere make til at afvikle opgaver parallelt. Ved at angive et numerisk argument for -j kan brugeren angive en øvre grænse for antallet af parallelle opgaver.
Når byggemiljøet er sådan at en make på topniveau igangsætter sub-makes (for eksempel en stil hvor hver undermappe indeholder sin egen Makefil), så ved ingen individuel instans af make hvor mange opgaver, der afvikles parallet, så at holde antallet af opgaver under den øvre grænse ville være umulig uden kommunikation mellem alle instanser af make under afvikling. Mens løsninger som at have topniveauets make til at fungere som en central styring er mulig, eller brug af andre synkroniseringsmekanismer såsom delt hukommelse eller sokler kan oprettes, så bruger den nuværende implementering en simpel delt datakanal.
Denne datakanal oprettes af topniveauets make-proces og sendes videre til alle sub-makes. Topniveauets makeprocesskriver N-1 en-byte symboler ind i datakanalen (Topniveauets make antages at reservere et symbol for sig selv). Når enhver af make-processerne (inklusive topniveauets make skal afvikle en ny opgave, så læser den en byte fra den delte datakanal. Hvis der ikke er nogen symboler tilbage, så må den vente på, at et symbol skrives tilbage til datakanalen. Når opgaven er færdig skriver make-processen et symbol tilbage til datakanalen (og dermed, hvis symbolerne var opbrugt, fjernes blokeringen på den første make-proces, der ventede på et symbol). Da kun N-1-symboler blev skrevet ind i datakanalen, så kan kun N opgaver afvikles på ethvert givent tidspunkt.
Hvis jobbet til afvikling ikke er en sub-make, så vil make lukke jobserverens datakanalfildeskriptorer før igangsættelse af kommandoerne, så at kommandoen ikke kan påvirke jobserver, og kommandoen ikke finder nogen usædvanlige fildeskriptorer.
Se kapitlet "Problems and Bugs" i The GNU Make Manual .
Denne manualside er skrevet af Dennis Morse fra Stanford University. Den er yderligere blevet opdateret af Mike Frysinger. Den er blevet omorganiseret af Roland McGrath. Vedligeholdt af Paul Smith.
Ophavsret © 1992-1993, 1996-2016 Free Software Foundation, Inc. Denne fil er en del af GNU make.
GNU Make er et frit program; du kan videredistribuere og/eller ændre programmer under betingelserne i GNU General Public License som udgivet af Free Software Foundation; enten version 3 af licensen, eller (efter dit valg) enhver nyere version.
GNU Make er distriburet i håbet om, at programmet vil være nyttigt, men UDEN NOGEN GARANTI; selv uden den underforstående garanti i SALGBARHED eller EGNETHED FOR ET BESTEMT FORMÅL. Se GNU Generel Public License for yderligere detaljer.
Du bør have modtaget en kopi af GNU General Public License sammen med dette program. Hvis ikke, se http://www.gnu.org/licenses/.
Oversættere af denne manual til dansk Byrial Ole Jensen <byrial@vip.cybercity.dk> og Joe Hansen <joedalton2@yahoo.dk>
Denne oversættelse er gratis dokumentation; læs GNU General Public License version 3 eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR.
Hvis du støder på fejl i oversættelsen af denne vejledning, skal du sende en besked til debian-l10n-danish@lists.debian.org.
28 februar 2016 | GNU |