Make - Linux Command - Unix naredba

make - GNU čine korisnost za održavanje skupina programa

Sinopsis

napraviti [ -f makefile ] [opciju] ... cilj ...

Upozorenje

Ova je stranica ekstrakt dokumentacije GNU makea. Ažurira se samo povremeno jer GNU projekt ne koristi Nrff. Za cjelovitu, trenutnu dokumentaciju pogledajte Up.info datoteku koja je izrađena od Texinfo izvorne datoteke make.texinfo .

Opis

Svrha korisni programi je odrediti automatski koji komadi velikog programa treba recompilirati i izdati naredbe za njihovo kompajliranje. Priručnik opisuje GNU implementaciju makea , koju su napisali Richard Stallman i Roland McGrath. Naši primjeri pokazuju C programe budući da su najčešći, ali možete koristiti izradu s bilo kojim programskim jezikom čiji se prevodilac može pokrenuti pomoću naredbe ljuske. U stvari, make nije ograničeno na programe. Možete ga koristiti za opisivanje bilo kojeg zadatka gdje se neke datoteke moraju ažurirati automatski od drugih kada god se ostale mijenjaju.

Da biste se pripremili za upotrebu, morate napisati datoteku pod nazivom makefile koja opisuje odnose između datoteka u vašem programu i navodi naredbe za ažuriranje svake datoteke. U programu, obično se izvršna datoteka ažurira iz objekta datoteka, koje se pak čine sastavljanjem izvornih datoteka.

Jednom kada postoji prikladan makefile, svaki put kada promijenite neke izvorne datoteke, ova jednostavna naredba ljuske:

napraviti

dovoljno je izvršiti sve potrebne rekompilacije. Program make koristi podatkovnu bazu makefile i zadnje vrijeme izmjene datoteka kako bi odlučio koji se od datoteka treba ažurirati. Za svaku od tih datoteka izdaje naredbe zabilježene u bazi podataka.

napraviti izvršavanje naredbi u makefileu za ažuriranje jednog ili više ciljnih imena , gdje je naziv obično program. Ako ne postoji opcija -f , make će tražiti makefiles GNUmakefile , makefile i Makefile u tom redoslijedu.

Obično biste trebali nazvati makefile ili makefile ili Makefile . (Preporučujemo Makefile jer se pojavljuje vidljivo blizu početka popisa telefonskog imenika, u blizini drugih važnih datoteka kao što je README .) Prvo ime označeno, GNUmakefile , nije preporučljivo za većinu makefiles. Ovaj naziv trebali biste upotrebljavati ako imate makefile koji je specifičan za GNU make , a druge inačice makea neće biti razumljive. Ako makefile je `- ', pročitajte standardni unos.

ažurirajte cilj ako ovisi o preduvjetnim datotekama koje su izmijenjene jer je zadnja promjena cilja ili ako cilj ne postoji.

OPCIJE

-b

-m

Te se opcije zanemaruju za kompatibilnost s drugim verzijama izrade .

-C dir

Promijenite u direktorij direktorija prije nego što pročitate makefile ili radite bilo što drugo. Ako je navedeno više opcija -C , svaki se interpretira u odnosu na prethodnu: -C / -C itd jednak je -C / etc. To se obično koristi s rekurzivnim pozivima za izradu .

-D

Ispišite informacije o uklanjanju pogrešaka uz normalnu obradu. Podaci o uklanjanju pogrešaka navode koje se datoteke preuzimaju, za koje vrijeme se uspoređuju i s kojim rezultatima, koje se datoteke zapravo trebaju preuređivati, koja se implicitna pravila uzimaju u obzir i koji se primjenjuju - sve što je zanimljivo o načinu odlučivanja Što uraditi.

-e

Dajte varijablama koje su preuzete iz prioriteta okoliša iznad varijabli od makefiles.

-f datoteku

Koristite datoteku kao makefile.

-i

Zanemari sve pogreške u naredbama koje se izvršavaju za preusmjeravanje datoteka.

-I dir

Određuje direktorij direktorija za pretraživanje za uključene makefile. Ako se za određivanje nekoliko direktorija koristi nekoliko opcija -I , mape se pretražuju u navedenom redoslijedu. Za razliku od argumenata ostalim zastavama makea , direktori s flagovima -I mogu doći neposredno nakon zastave: -I dir je dopušteno, kao i -I dir. Ova sintaksa dopuštena je za kompatibilnost s oznakom "preprocesor" -I .

-j poslove

Određuje broj radnih mjesta (naredbi) za istovremeni rad. Ako postoji više od jedne opcije, zadnja je na snazi. Ako se opcija -j dade bez argumenata, make neće ograničiti broj zadataka koji se mogu izvoditi istodobno.

-k

Nastavite što je više moguće nakon pogreške. Dok se cilj koji nije uspio, a oni koji ovise o njoj, ne mogu se vratiti, ostale zavisnosti tih ciljeva mogu se obraditi svejedno.

-l

Opterećenje

Određuje da nijedan novo radno mjesto (naredbe) ne bi trebalo započeti ako postoje drugi radovi koji rade i da je prosječni teret barem opterećen (broj s pomičnim zarezom). Bez argumenta uklanja prethodno ograničenje opterećenja.

-n

Ispišite naredbe koje će biti izvršene, ali nemojte ih izvršavati.

-u datoteku

Nemojte obraditi datoteku čak i ako je stariji od njezinih ovisnosti i ne preuzimajte ništa zbog promjena u datoteci . U osnovi, datoteka se tretira kao vrlo staro i pravila se ignoriraju.

-p

Ispišite bazu podataka (pravila i varijable vrijednosti) koje proizlaze iz čitanja makefila; zatim izvršite kao i obično ili kako je drugačije navedeno. Ovo također ispisuje informacije o verziji koje daje -v prekidač (vidi dolje). Da biste ispisali bazu podataka bez pokušaja obnove bilo kakvih datoteka, koristite make -p -f / dev / null.

Q

`` Modus pitanja ''. Nemojte pokrenuti nikakve naredbe, niti ispisivati ​​ništa; samo vratite izlazni status koji je nula ako su navedeni ciljevi već ažurirani, a ne i drugačije.

-r

Uklonite upotrebu ugrađenih implicitnih pravila. Također izbrišite zadani popis sufiksa za pravila sufiks.

-s

Tihi rad; nemojte ispisivati ​​naredbe dok se izvršavaju.

-S

Otkažite učinak opcije -k . To nikada nije potrebno osim u rekurzivnoj izvedbi gdje -k može biti naslijeđeno od vrhunske izvedbe putem MAKEFLAGS ili ako ste postavili -k u MAKEFLAGS u vašem okruženju.

-t

Dodirnite datoteke (označite ih do danas bez da ih stvarno promijenite) umjesto da izvršite njihove naredbe. Ovo se koristi za pretvaranje da su zapovijedi učinjene, kako bi se zavarale buduće pozive na make .

-v

Ispišite inačicu make programa plus autorska prava, popis autora i obavijest da nema jamstva.

-w

Ispišite poruku koja sadrži radni imenik prije i poslije druge obrade. To može biti korisno za praćenje pogrešaka iz složenih gnijezda rekurzivnih naredbi.

-W datoteku

Pretpostavimo da je ciljna datoteka upravo izmijenjena. Kada se upotrebljava s oznakom -n , to vam pokazuje što bi se dogodilo ako biste trebali izmijeniti tu datoteku. Bez -n , gotovo je jednako pokretanju dodirne naredbe na datoj datoteci prije pokretanja izvođenja , osim što se vrijeme izmjene mijenja samo u mašti izrade .