Make - Linux Command - Unix Command

make - GNU pomáhá udržovat skupiny programů

Synopse

proveďte [ -f makefile ] [option] ... target ...

Varování

Tato stránka je výňatek z dokumentace GNU make. Aktualizuje se pouze příležitostně, protože projekt GNU nepoužívá nroff. Úplnou aktuální dokumentaci naleznete v informačním souboru make.info, který je vytvořen ze zdrojového souboru Texinfo make.texinfo .

Popis

Účelem nástroje pro vytváření je automaticky určit, které části velkého programu je třeba kompilovat a vydávat příkazy k jejich překompilování. Manuál popisuje implementaci GNU značky , kterou napsali Richard Stallman a Roland McGrath. Naše příklady ukazují programy C, protože jsou nejčastější, ale můžete použít s libovolným programovacím jazykem, jehož kompilátor lze spustit pomocí příkazu shellu. Ve skutečnosti není výroba omezena pouze na programy. Můžete jej použít k popisu jakéhokoli úkolu, kdy některé soubory musí být aktualizovány automaticky od ostatních, kdykoli se ostatní změní.

Chcete-li se připravit na použití značky , musíte napsat soubor nazvaný makefile, který popisuje vztahy mezi soubory ve vašem programu, a uvádí příkazy pro aktualizaci každého souboru. V programu je zpravidla spustitelný soubor aktualizován z objektových souborů, které jsou zase vytvářeny kompilací zdrojových souborů.

Jakmile existuje vhodný makefile, pokaždé, když změníte některé zdrojové soubory, tento jednoduchý příkaz shell:

udělat

stačí provést všechny potřebné recompilace. Zpracovatelský program používá databázi makefile a poslední modifikační časy souborů a rozhoduje, který z těchto souborů je třeba aktualizovat. Pro každý z těchto souborů vydá příkazy zaznamenané v databázi.

provede příkazy v makefile pro aktualizaci jednoho nebo více cílových jmen , kde je název obvykle program. Pokud není k dispozici žádná volba -f , make bude hledat makefile GNUmakefile , makefile a Makefile v tomto pořadí.

Normálně byste měli volat makefile buď makefile nebo Makefile . ( Značka Makefile doporučujeme, protože se zdá být viditelně blízko začátku výpisu adresáře, v blízkosti jiných důležitých souborů, jako je například README .) Zkontrolované jméno, GNUmakefile , se nedoporučuje u většiny makefile. Tento název byste měli používat, pokud máte makefile, která je specifická pro GNU make , a nebude se jím rozumět jinými verzemi značky . Je-li makefile `- ', čte standardní vstup.

aktualizovat cíl, pokud závisí na předpokládaných souborech, které byly upraveny od posledního úpravy cíle nebo pokud cíl neexistuje.

MOŽNOSTI

-b

-m

Tyto možnosti jsou ignorovány z důvodu kompatibility s ostatními verzemi značky .

-dir

Před přečtením makefile nebo děláním cokoli jiného, ​​změňte adresář adresáře . Pokud jsou zadány více možností -C , každý je interpretován vzhledem k předchozímu: -C / -C je ekvivalentní -C / etc. To se obvykle používá s rekurzivními invokacemi značky .

-d

Tiskněte také informace o ladění vedle běžného zpracování. Informace o ladění informují o tom, které soubory jsou zvažovány k úpravám, o čem jsou porovnávány časové úseky a s jakými výsledky, které soubory je třeba opravit, jaké implicitní pravidla jsou brány v úvahu a které jsou použity - všechno zajímavé o tom, jak se rozhodne co dělat.

-E

Uveďte proměnné převzaté z přednosti prostředí nad proměnné z makefile.

-f soubor

Použijte soubor jako makefile.

-i

Ignorujte všechny chyby v příkazech provedených k úpravám souborů.

-I řídím

Určuje adresář adresáře pro vyhledání zahrnutých makefile. Pokud se k zadání několika adresářů používá několik voleb, adresáře jsou prohledávány v uvedeném pořadí. Na rozdíl od argumentů ostatních značek příznaků, adresáře s příznaky -I mohou přijít přímo za vlajkou: -I dir je povoleno, stejně jako -I dir. Tato syntaxe je povolena pro kompatibilitu s příznakem C preprocesoru.

-j úlohy

Určuje počet úloh (příkazů) ke spuštění současně. Pokud existuje více než jedna volba -j , poslední je efektivní. Pokud je volba -j zadána bez argumentu, značka nebude omezovat počet úloh, které lze spustit současně.

-k

Pokračujte co nejvíce po chybě. Zatímco cílový cíl a ty, které na něm závisí, nelze provést, mohou být jiné závislosti těchto cílů zpracovány stejně.

-l

-l zatížení

Určuje, že by se neměly spouštět žádné nové úlohy (příkazy), pokud jsou spuštěny jiné úlohy a zatížení je alespoň zatížení (číslo s plovoucí desetinnou čárkou). Bez argumentu odstraní předchozí limit zatížení.

-n

Vytiskněte příkazy, které by byly provedeny, ale nevypracujte je.

-o soubor

Soubor soubor neprovádějte znovu, i když je starší než jeho závislost, a neprovádějte nic z důvodu změn v souboru . V podstatě je soubor považován za velmi starý a jeho pravidla jsou ignorována.

-p

Vytiskněte databázi (pravidla a hodnoty proměnné), které jsou výsledkem čtení makefile; poté proveďte jako obvykle nebo jinak. Také se vytisknou informace o verzi, které daný přepínačem (viz níže). Chcete-li vytisknout databázi, aniž byste se snažili předělat nějaké soubory, použijte příkaz -p -f / dev / null.

-q

`` Režim dotazů ''. Nespouštějte žádné příkazy nebo netiskněte nic; stačí vrátit stav ukončení, který je nulový, pokud jsou stanovené cíle již aktuální, jinak nenulové.

-r

Odstraňte použití vestavěných implicitních pravidel. Vymažte také výchozí seznam přípon pro příponová pravidla.

-s

Tichý provoz; nevytiskněte příkazy při jejich spuštění.

-S

Zrušte účinek volby -k . To není nikdy nutné, kromě rekurzivního makeu, kde -k může být zděděno z top-levelu prostřednictvím MAKEFLAGS nebo pokud nastavíte -k ve formátu MAKEFLAGS ve svém prostředí.

-t

Dotkněte se souborů (nezapomeňte je aktualizovat, aniž byste je skutečně změnili), namísto spouštění jejich příkazů. To se používá k předstírání, že příkazy byly provedeny, aby se oklamaly budoucí invokace značky .

-proti

Vytiskněte verzi vytvořeného programu plus autorská práva, seznam autorů a upozornění, že neexistuje žádná záruka.

-w

Vytiskněte zprávu obsahující pracovní adresář před a po dalším zpracování. To může být užitečné pro sledování chyb z komplikovaných hnízd rekurzivních povelů.

-W soubor

Předstírat, že cílový soubor byl právě změněn. Při použití s ​​příznakem -n vám to ukáže, co by se stalo, kdybyste tento soubor upravili. Bez -n , je to téměř stejné jako spuštění dotykového příkazu v daném souboru před spuštěním příkazu, s tím rozdílem, že změna času se mění pouze ve fantazii značky .