make(1l)


NAME

make - GNU make utility programcsomagok karbantartására

HASZNÁLAT

make [ -f makefile ] [ opció ] ... cél ...

FIGYELMEZTETÉS

Ez a kézikönyv a GNU make . dokumentáció kivonata. Csak ritkándolgozzák át, mert a GNU projekt nem használ nroff-ot. A friss és teljes dokumentáció a make Info fájlban, vagy a make.dvi DVI fájlban talalható, ami a make.texinfo . Texinfo forrásból készült.

LEÍRÁS

A make utility célja egy nagy program fordításának automatizálása. A make , a specifikáció alapján meghatározza, hogy mely részeket kell újrafordítani, és meghívja a megfelelô parancsokat. Ez a kézikönyv a make GNU implementációját írja le, melyet Richard Stallman és Roland McGrath írtak. A példáink C programok, mivel ezek a leggyakoribbak, de bármilyen programozási nyelv használható ami shell parancsal indítható. Valójában a make használata nem korlátozódik a programokra. Bármilyen feladatra használható, ahol bizonyos fájlokat frissíteni kell akkor, amikor más fájlok módosulnak.

A make használatához elôször létre kell hozni a makefile -t, ami leírja a fájlok közötti függôségeket, és a fájlok frissítésére szolgáló parancsokat. Egy programban a végrehajtható fájl rendszerint az objekt fájloktól függ, amelyek pedig a forrás fájloktól függenek.

Ha már van egy megfelelô makefile, akkor valamely forrásfájl módosítása esetén használja a következô egyszerû shell parancsot:

make

ami végrehajtja az összes szükséges újrafordítást. A make program a make adatbázisa és az utolsó módosítás dátuma alapján dönti el, hogy mely fájlokat kell frissíteni. Minden egyes ilyen fájlhoz az adatbázisba felvett parancsot futtatja. A make a makefile -ban talalható parancsokat hajtja végre egy vagy több név?? , nevû célfájlt (target) létrehozva, ahol a name tipikusan egy program neve. A -f opció nélkül a make a következô makefile-okat fogja keresni: GNUmakefile , makefile , és Makefile , ebben a sorrendben.

Általában a makefile-t makefile -nak vagy Makefile . -nak kell hívni. (Mi a Makefile elnevezést ajánljuk, mert ez általában a directory lista elején jelenik meg, más olyan fontos fájlok közelében, mint például a README .) Az elôször ellenôrzött GNUmakefile , nem ajánlott, csak akkor, ha a makefile kifejezetten GNU make , specifikus, és a make . más verziói nem értenék meg. Ha a makefile csak egy `-'-t tartalmaz, akkor a standard inputról olvas a program.

Amake frissíti a célt, ha az olyan fájloktól függ, amelyek módosultak a cél utolsó mádosítása óta, vagy ha a cél nem létezik.

OPCIÓK

-b

-m
Ezekeket az opciókat a make . figyelmen kívül hagyja a Amake más verzióival való kompatibilitás érdekében.

-C directory
A directory nevû directory-ra vált mielôtt beolvasná a makefile-t, vagy bármi mást tenne. Amennyiben több -C opciót is megadunk, akkor mindegyik az elôzôhöz képest relatívan értelmezett: "-C " / "-C " etc ugyanaz mint a "-C " /etc. Ez tipikusan a make . rekurzív hívásánál alkalmazzák.

-d
Kiírja a nyomkövetési információt a normál mûködés mellett. A nyomkövetésiinformáció a következôket tartalmazza: mely fájlok szükségesek az újrafordításhoz, mely fájlok módosításiideje kerül összehasonlításra és milyen eredménnyel, valamint mely fájlokat kell újrafordítani; és mely szabályokat vesz figyelembe a make és mik azok amiket alkalmaz---azaz mindent, ami érdekes a make mûködése szempontjából.

-e
Az átvett környezeti változók elsôbbséget élveznek a makefile-ban definiáltakhoz képest.

-f file
A fájl fájlt használja makefile-ként.

-i
Figyelmen kívülhagyja az újrafordítás során elôforduló hibákat.

-I directory
Megadja azt adirectory-t, ahol a dir a beinklúdolt makefile-ket keresi. Ha több -I opciót adunk meg különbözô directory-kkal, akkor a megadás sorrendjében keres ezekben a make. Eltérô módon mint a make , más opcióinak argumentumainál, a -I -vel megadott direktorik közvetlenül követhetik az opciót, azaz -I dir is megadható, akárcsak: "-I " dir. Ez a szintaxis biztosítja a -I kompatibilitását a C preprocesszorával.

-j job-ok
Megadja a párhuzamosan futtatandó job-ok (parancsok) számát. Több -j opcióból az utolsó az érvényes. A -j argumentum nélküli megadása esetén a make tetszôleges számú job-ot hajlandó párhuzamosan futtatni.

-k
Hiba után folytatja azokat a job-okat, amiket lehet. Így ugyan egy célfájl hiányozni fog és a vele összefüggô parancsok nem futnak le újra, de a más célfájlokkal kapcsolatosak ugyanúgy lefutnak mint mindig.

-l

-l load
Nem indíthatók addig új job-ok (parancsok), ameddig más programok is futnak és a load átlagos értéke (ez egy lebegôpontos szám) legalábbis load-nyi. Argumentum nélkül visszaállítja a megelôzô load értékhatárát.

-n
Kiírja a makefile éltal futtatandó parancsokat, de nem futtatja le ôket.

-o file
Nem make-eli újra a file nevû fájlt még akkor sem, ha régebbi mint amiktôl függ, és ne fordítson újra semmi olyat, ami a file . megváltozását eredményezné. Tehát a fájlt nagyon régiként kezeli és figyelmen kívül hagyja az újrafordítási szabályait.

-p
Kiírja a makefile-ból az adatbázist(szabályokat és változóértékeket); aztán futtatja ahogyan egyébként, vagy ahogyan megadtuk. Továbbá kiírja a verzió információit is, ha megadtuk a -v kapcsolót (lásd az alábbiakban). A fájlok kiírásához az újra make-elésük nélkül használható a make -p -f /dev/null.

-q
``Lekérdezô mód''. Nem futtat semmilyen parancsot, és nem is ír ki semmit; csak visszaadja az exit státuszt, ami 0, ha a megadott célfájl már frissítve lett, egyébként pedig nem 0.

-r
Figyelmen kívül hagyja a beépített implicit szabályokat. És kitörli még az alapértelmezett toldaléklistát, hogy megkapja a végzôdésszabályokat.

-s
"Csendes" mûvelet; nem jeleníti meg a futtatot parancsokat.

-S
A -k opció hatásának a semlegesítése. Ez csak rekurzív make hívásánál érdekes, ahol a -k örökítheti a legfelsô szinten futó make által beállított MAKEFLAG-eket, vagy a saját futási szintünkön általunk -k -val beállított MAKEFLAG-eket.

-t
"Megérinti" (touch) a fájlokat (újraírja a fájlok dátumát, anélkül hogy valójában megváltoztatná a tartalmukat. Ezt annak tettetésére használják, mintha a makefile parancsai már lefutottak volna, megtévesztve ezáltal a késôbb meghívódó make -et.

-v
Kiírja a make program verzióját, meg a copyright jogokat, a szerzôk felsorolásával, megjegyezve, hogy mit nem garantálnak a szerzôk a programmal kapcsolatban. Ezen információk kiírása után a make mûködése folytatódik a normális módon. Az információk kiírása anélkül, hogy bármi más történne a make -v -f /dev/null. használatával érhetô el.

-w
A megjelenített információ tartalmazza a lefutás elôtti és utáni munka directory-t. Ez hasznos lehet rekurzív make hívássorozatok komplikált hibajelenségeinek kinyomozásában.

-W file
Úgy tesz mintha a file módosításra került volna. A -n flag-gel való használatkor megmutatja, hogy mi történne, ha módosult volna a fájl. -n , nélkül pedig majdnem ugyanolyan, mintha a touch parancsot futtattuk volna a megadott a fájlra a make futtaása elôtt, kivéve azt, hogy most csak a make . mûködésének idejére változik meg a fájl dátuma.

LÁSD MÉG

/usr/local/doc/gnumake.dvi
The GNU Make Manual (A GNU MAKE kézikönyv)

ISMERT HIBÁK

Lásd a `Problems and Bugs' (problémák és hibák) fejezetet a "The GNU Make Manual" .-ban

SZERZÔK

A man page-et készítette Dennis Morse a Stanford Egyetemrôl. Valamint átdolgozta Roland McGrath.