Účelom pomôcky Make je automaticky určiť, ktoré časti veľkého programu sa musia kompilovať a vydávať príkazy na ich kompiláciu. Príručka popisuje implementáciu značky GNU, ktorú napísali Richard Stallman a Roland McGrath. Tieto príklady ukazujú programy C, pretože sú najbežnejšie, ale môžete použiť značku s ľubovoľným programovacím jazykom, ktorého kompilátor je možné spustiť pomocou príkazu shell. V skutočnosti, nie je obmedzená na programy. Môžete ho použiť na popísanie akejkoľvek úlohy, pri ktorej sa niektoré súbory musia aktualizovať automaticky od ostatných, kedykoľvek sa ostatné zmení.
Poznámka: Táto stránka je výňatkom z dokumentácie GNU make . Aktualizuje sa len príležitostne, pretože projekt GNU nepoužíva nroff. Úplnú aktuálnu dokumentáciu nájdete v informačnom súbore make.info, ktorý je vytvorený z zdrojového súboru texinfo make.texinfo.
Syntax a príprava použitia
urobiť -f Makefile voľba … terč …
Pri príprave na použitie značky musíte napísať súbor s názvom makefile, ktorý popisuje vzťahy medzi súbormi vo vašom programe a uvedie príkazy na aktualizáciu každého súboru. Obvykle sa aktualizuje spustiteľný súbor z objektových súborov, ktoré sú zase spracované zostavovaním zdrojových súborov.
Akonáhle existuje vhodný makefile, zakaždým, keď zmeníte niektoré zdrojové súbory, tento príkaz jednoduchého shellu urobiť stačí na vykonanie všetkých potrebných rekompilácií. Vytváraný program používa databázu makefile a poslednú dobu modifikácie súborov, aby sa rozhodlo, ktoré z týchto súborov je potrebné aktualizovať. Pre každý z týchto súborov vydáva príkazy zaznamenané v databáze.
Sprievodca vytváraním spúšťa príkazy v makefile na aktualizáciu jedného alebo viacerých cieľových mien, kde názov je zvyčajne program. Ak nie-f možnosť je prítomná, make bude hľadať makefilesGNUmakefile, Makefile, aMakefile, v tomto poradí.
Normálne by ste mali zavolať makefile buď Makefile, alebo Makefile. (Odporúča sa používať Makefile pretože sa objavuje viditeľne blízko začiatku zoznamu adresárov, hneď vedľa iných dôležitých súborov, ako napríkladPREČÍTAJ MA.) Prvý názov kontrolovaný, GNUmakefile, sa neodporúča pre väčšinu makefile. Mali by ste používať tento názov, ak máte makefile, ktorá je špecifická pre GNU make a nie je iná verzia značky. Ak je makefile -, je čítaný štandardný vstup.
urobiť pomôcka aktualizuje cieľ, ak závisí od predpokladaných súborov, ktoré boli upravené od posledného modifikovania cieľa alebo ak daný cieľ neexistuje.
možnosti
-b a -m možnosti sú ignorované z dôvodu kompatibility s inými verziami značky.
-C-dir sa zmení na adresár dir pred čítaním makefiles alebo robiť niečo iné. Ak je viac-C sú špecifikované možnosti, každý je interpretovaný vzhľadom na predchádzajúci:-C/ -C atď je ekvivalentná-C / atď, Toto sa zvyčajne používa s rekurzívnymi invokáciami značky.
-d voľba ladí informácie o ladení okrem bežného spracovania. Informácie o ladení uvádzajú, ktoré súbory sa zvažujú na preformulovanie, ktoré súbory časov sa porovnávajú a s akými výsledkami, ktoré súbory sa skutočne potrebujú prepracovať, aké implicitné pravidlá sa berú do úvahy a ktoré sa uplatňujú - všetko zaujímavé o tom, ako sa rozhodne, čo robiť ,
-e voľba udáva premenné prevzaté z prostredia prednosť pred premennými z Makefiles.
-f súbor používa možnosť súbor ako makefile.
-i voľba ignoruje všetky chyby v príkazoch vykonaných na remake súborov.
-I dir voľba určuje adresár dir hľadanie zahrnutých makefile. Ak je niekoľko-I voľby sa používajú na zadanie viacerých adresárov, adresáre sa vyhľadávajú v zadanom poradí. Na rozdiel od argumentov k iným príznakom značiek, adresáre dané-I vlajky môžu prísť priamo za vlajkou:-Idir je povolené, rovnako ako-Dir . Táto syntax je povolená pre kompatibilitu s preprocesormi C-I flag.
-j úloh voľba určuje počet úloh (príkazov), ktoré sa majú spustiť súčasne. Ak je viac ako jedno-j posledná je účinná. Ak-j možnosť je uvedená bez argumentu, nebude obmedzovať počet úloh, ktoré môžu bežať súčasne.
-k voľba pokračuje čo najviac po chybe; zatiaľ čo ciele, ktoré zlyhali, a tie, ktoré na ňom závisia, nemôžu byť prepracované, ostatné závislosti týchto cieľov je možné spracovať rovnako.
-l a -l zaťaženie voľby špecifikujú, že pri spustení iných úloh a zaťaženia v priemere sa nesmú spustiť žiadne nové úlohy (príkazy)zaťaženie (číslo s pohyblivou čiarou). Bez argumentu odstráni predchádzajúci limit zaťaženia.
-n možnosť vytlačí príkazy, ktoré by sa vykonali, ale nevykoná ich.
-o súbor voľba nedokončí súbor aj keď je starší ako jeho závislosť, a nedokáže nič zmeniť z dôvodu zmien súbor , V podstate je súbor považovaný za veľmi starý a jeho pravidlá sú ignorované.
-p voľba vytlačí databázu (pravidlá a hodnoty premenných), ktoré sú výsledkom čítania makefile. Potom vykoná ako obvykle alebo inak špecifikované.Taktiež sa vytlačí informácie o verzii uvedené v-v (pozri nižšie). Ak chcete tlačiť databázu bez toho, aby ste sa pokúšali prerobiť všetky súbory, použiteurobiť -p -f / dev / null .
-q možnosť nastaví režim otázok. Nespúšťajte žiadne príkazy ani nič nevytlačte, len vráťte stav výstupu, ktorý je nulový, ak sú stanovené ciele už aktuálne, inak nenulové.
-r možnosť eliminuje použitie vstavaných implicitných pravidiel. Vymaže aj predvolený zoznam prípon pre pravidlá prípony.
-s možnosť umlčuje operáciu. Nevytvára príkazy pri ich vykonávaní.
-S možnosť zruší účinok-k voľba. Toto nie je nikdy potrebné okrem rekurzívnej značky kde-k môže byť zdedený z top-levelu prostredníctvom MAKEFLAGS alebo ak ste nastavili-k v MAKEFLAGS vo vašom prostredí.
-t sa dotkne súborov (označuje ich aktuálne bez toho, aby ich skutočne zmenili) namiesto spustenia ich príkazov. Toto sa používa na predstieranie toho, že príkazy boli vykonané, aby sa oklamali budúce invokácie značky.
-v možnosť vytlačí verziu vytvoreného programu plus autorské práva, zoznam autorov a oznámenie, že neexistuje žiadna záruka.
-w možnosť vytlačí správu obsahujúcu pracovný adresár pred a po inom spracovaní. To môže byť užitočné pri sledovaní chýb z komplikovaných hniezd rekurzívnej značky príkazy.
W súbor možnosť predstiera, že cieľ súbor bolo práve upravené. Pri použití s-n flag, to vám ukáže, čo by sa stalo, keby ste tento súbor upravili. bez-n, je to takmer rovnaké ako behdotyk príkaz na danom súbore pred spustením make, okrem toho, že zmena času sa zmení len vo fantejnej tvorbe.













