A make segédprogram célja annak meghatározása, hogy egy nagy program mely darabjait kell újrafordítani, és kiadni a parancsokat az újrafordításhoz. A kézikönyv a make GNU implementációját írja le, amelyet Richard Stallman és Roland McGrath írt. Ezek a példák a C programokat mutatják, mivel ezek a leggyakoribbak, de használhatsz olyan programozási nyelvvel, amelynek fordítója shell parancssal futtatható. Valójában a make nem korlátozódik a programokra. Ezt használhatja olyan feladatok leírására, ahol egyes fájlokat automatikusan frissíteni kell másoktól, amikor a többiek megváltoznak.
jegyzet: Ez az oldal a GNU make dokumentációjának kivonat . Csak néha frissül, mert a GNU projekt nem használ Nrff-t. A teljes, aktuális dokumentációhoz tekintse meg a make.info információs fájlt, amely a make.texinfo Texinfo forrásfájlból készült.
Szintaktika és előkészítése hasznosság
csinál -f makefile választási lehetőség … cél …
A make használatának előkészítéséhez meg kell adnia a makefile nevű fájlt, amely leírja a programban lévő fájlok közötti kapcsolatokat, és kijelöli az egyes fájlok frissítésének parancsát. Általában egy futtatható fájlt frissítenek az objektumfájlokról, amelyeket pedig forrásfájlok összeállításával készítenek.
Ha megfelelő makefile létezik, akkor minden egyes forrásfájl megváltoztatásakor ezt az egyszerű shell parancsot csinál elegendő az összes szükséges rekompiláció elvégzéséhez. A make program a makefile adatbázist és a fájlok utolsó módosítási idejét használja annak eldöntésére, hogy mely fájlokat kell frissíteni. Minden egyes fájlhoz kiadja az adatbázisban rögzített parancsokat.
A make segédprogram parancsokat hajt végre a makefile-ben, hogy frissítse egy vagy több célnevet, ahol név tipikusan egy program. Ha nem-f lehetőség van jelen, a make keresni fogja a makefile-eketGNUmakefile, makefile, ésMakefile, abban a sorrendben.
Általában a makefile-t vagy makefile-t vagy Makefile-t kell hívnia. (A Makefile használata javasolt mert jól láthatóan a könyvtárak listájának kezdete közelében, közvetlenül más fontos fájlok közelében, példáulREADME.) Az első névvel ellenőrzött, a GNUmakefile nem ajánlott a legtöbb makefile számára. Használnia kell ezt a nevet, ha van egy makefile, amely kifejezetten a GNU-hoz tartozik, és a make más változatai nem fogják megérteni. Ha makefile van -, a standard bemenet olvasható.
A csinál a segédprogram frissíti a célértéket, ha az előfeltételes fájloktól függ, amelyeket módosítottak a cél utolsó módosítása óta, vagy ha a cél nem létezik.
Opciók
A -b és -m a beállítások figyelmen kívül maradnak, ha kompatibilisek a make más verzióival.
-C dir a makefiles elolvasása vagy bármi mást csinál, a dir könyvtárba kerül. Ha többszörös-C lehetőségek vannak megadva, mindegyiket az előzőhöz képest értelmezzük:-C/ -C stb egyenértékű-C / stb. Ezt tipikusan a make rekurzív meghívásaival használják.
A -d opció a normál feldolgozás mellett hibakeresési információkat nyomtat. A hibakeresési adatok azt mondják, hogy mely fájlokat veszik át a frissítéshez, milyen fájlokat hasonlítanak össze, és milyen eredményeket, mely fájlokat ténylegesen meg kell újítani, milyen implicit szabályokat kell figyelembe venni, és amelyeket alkalmaznak - minden érdekes, hogy hogyan határozza meg, mit kell tennie .
A -e opció megadja a környezeti prioritásból vett változókat a makefile-változók fölött.
A -f fájl opció használata fájl mint egy makefile.
A -én opció figyelmen kívül hagyja a fájlok újrafuttatásához végrehajtott parancsok összes hibáját.
A -ÉN dir opció megad egy könyvtárat dir a mellékelt makefile-ek keresésére. Ha több-ÉN a beállításokat több könyvtár megadására használják, a könyvtárak a megadott sorrendben kerülnek keresésre. Ellentétben a többi zászlóval érkező érvekkel, a-ÉN zászlók közvetlenül a zászló után érkezhetnek:-Idir megengedett, valamint-I dir . Ez a szintaxis engedélyezett a C előfeldolgozó kompatibilitásához-ÉN zászló.
A -j munkák opció megadja a feladatok számát (parancsok) egyidejű futtatásához. Ha több van egynél-j opció, az utolsó működik. Ha a-j lehetőség válasz nélkül érkezik, A készítés nem korlátozza az egyidejűleg futó feladatok számát.
A -k lehetőség továbbra is a lehető legnagyobb mértékben hiba után folytatódik; míg a meghiúsult és az attól függő cél nem pótolható, ezeknek a céloknak a többi függősége ugyanúgy feldolgozható.
A -l és terhelés a beállítások azt írják elő, hogy ne legyenek új feladatok (parancsok), ha vannak mások, és legalább a terhelés átlagaBetöltés (lebegőpontos szám). Nincs érv, eltávolítja a korábbi terhelési korlátot.
A -n opció kinyomtatja a végrehajtandó parancsokat, de nem hajtja végre azokat.
A -o fájl opció nem változtatja meg a fájl még akkor is, ha idősebb, mint a függőség, és nem változtat semmit a változások miatt fájl . Lényegében a fájlt nagyon réginek tekintik, és a szabályokat figyelmen kívül hagyják.
A -p opció kinyomtatja az adatbázist (szabályok és változóértékek), amelyek a makefile-ok olvasásából származnak. Ezután a szokásos módon vagy másként meghatározott módon végrehajtódik.Ez is kinyomtatja a-v (lásd alább). Az adatbázis kinyomtatása nélkül új fájlok újrafuttatásához használja a következőt:csinál -p -f / dev / null .
A -q opció beállítja a kérdés módot. Ne futtasson semmilyen parancsot, vagy nyomtasson semmit, csak adja vissza a kijárati állapotot, ha nulla, ha a megadott célok már naprakészek, egyébként nem.
A -r opció kiküszöböli a beépített implicit szabályok használatát. Törli az utótag szabályok utótagjainak alapértelmezett listáját is.
A -s opció elnémítja a műveletet. Nem nyomtatja ki a parancsokat, amikor végrehajtják őket.
A -S opció érvényteleníti a-k választási lehetőség. Ez soha nem szükséges, csak rekurzív módon hol-k lehet, hogy örökölte a legfelső szintű gyártmányt a MAKEFLAGS használatával vagy ha beállítottad-k a MAKEFLAGS-ban a környezetben.
A -t opció megérinti a fájlokat (naprakészen jelöli őket anélkül, hogy ténylegesen megváltoztatná őket) a parancsok futtatása helyett. Ezt arra használják, hogy úgy tegyenek, mintha a parancsok készen lettek volna, hogy megverjék a jövő jövőbeli felszólításait.
A -v opció kinyomtatja a make program verzióját, egy szerzői jogot, a szerzők listáját, valamint egy figyelmeztetést, hogy nincs garancia.
A -w opció kinyomtatja a munkakönyvt tartalmazó üzenetet, mielőtt és után más feldolgozásra. Ez hasznos lehet a rekurzív készítmények bonyolult fészkei által okozott hibák nyomon követésében parancsokat.
A -W fájl opció azt állítja, hogy a cél fájl nemrég módosult. Ha a-n zászló, ez megmutatja, mi fog történni, ha módosítani szeretné ezt a fájlt. Nélkül-n, majdnem ugyanaz, mint aérintés parancsot az adott fájlra a futtatás előtt, azzal a különbséggel, hogy a módosítási idő csak a készlet képzeletében változik.




