Maak - Linux Command - Unix Command

maak - GNU maak nut om groepe programme te onderhou

opsomming

maak [ -f makefile ] [opsie] ... teiken ...

waarskuwing

Hierdie bladsy is 'n uittreksel van die dokumentasie van GNU maak. Dit word slegs af en toe opgedateer omdat die GNU-projek nie nroff gebruik nie. Vir volledige, huidige dokumentasie, verwys na die Info-lêer make.info wat gemaak is van die Texinfo bron lêer make.texinfo .

beskrywing

Die doel van die nutsprogram is om outomaties te bepaal watter stukke van 'n groot program hercompileer moet word en die instruksies uit te reik om dit te kompilereer. Die handleiding beskryf die GNU implementering van make , wat deur Richard Stallman en Roland McGrath geskryf is. Ons voorbeelde wys C-programme, aangesien hulle die algemeenste is, maar jy kan maak met enige programmeertaal waarvan die samesteller met 'n skyfbevel uitgevoer kan word. Trouens, maak is nie beperk tot programme nie. U kan dit gebruik om enige taak te beskryf waar sommige lêers outomaties by ander opgedateer moet word wanneer die ander verander.

Om voor te berei om gebruik te maak , moet jy 'n lêer genaamd die makefile wat die verhoudings tussen lêers in jou program beskryf, skryf en die opdragte gee om elke lêer by te werk. In 'n program word gewoonlik die uitvoerbare lêer opgedateer vanaf objeklêers, wat op sy beurt gemaak word deur bron lêers saam te stel.

Sodra 'n geskikte makefile bestaan, elke keer as jy sommige bronlêers verander, sal hierdie eenvoudige dopbevel:

maak

voldoende om al die nodige rekompilasies uit te voer. Die maakprogram maak gebruik van die makefile-databasis en die laaste wysigingstye van die lêers om te besluit watter van die lêers opgedateer moet word. Vir elk van die lêers word die opdragte wat in die databasis aangeteken is, uitgereik.

maak opdragte in die makefile om een ​​of meer teikenname op te dateer, waar die naam gewoonlik 'n program is. As geen opsie beskikbaar is nie, sal die soekfile GNUmakefile , makefile en Makefile in daardie volgorde soek.

Normaalweg moet jy jou makefile noem makefile of Makefile . (Ons beveel Makefile aan omdat dit prominent naby die begin van 'n kataloguslys verskyn, naby aan ander belangrike lêers soos README .) Die eerste naam gekontroleer, GNUmakefile , word nie aanbeveel vir die meeste makefiles nie. U moet hierdie naam gebruik as u 'n makefile het wat spesifiek is vir GNU- maak , en sal nie verstaan ​​word deur ander weergawes van die maak nie . As makefile `` 'is, word die standaard insette gelees.

maak opdaterings 'n teiken as dit afhang van voorvereiste lêers wat verander is sedert die teiken laas gewysig is, of as die teiken nie bestaan ​​nie.

OPTIONS

-b

-m

Hierdie opsies word geïgnoreer vir verenigbaarheid met ander weergawes van maak .

-C dir

Verander na gids dir voordat jy die makefiles lees of iets anders doen. As meervoudige C- opsies gespesifiseer word, word elkeen relatief tot die vorige een geïnterpreteer: -C / -C ens is ekwivalent aan -C / ens. Dit word tipies gebruik met rekursiewe invokasies van maak .

d

Druk ontfoutingsinligting bykomend tot normale verwerking. Die ontfoutingsinligting sê watter lêers word oorweeg om te onthou, watter lêertye vergelyk word en met watter resultate, watter lêers moet eintlik herskep word, watter implisiete reëls oorweeg word en wat toegepas word --- alles interessant oor hoe besluit word wat om te doen.

-e

Gee veranderlikes uit die omgewingsvoorrang bo veranderlikes van makefiles.

-f lêer

Gebruik lêer as 'n makefile.

-i

Ignoreer alle foute in opdragte wat uitgevoer word om lêers te herstel.

-I dir

Spesifiseer 'n gids dir om te soek na ingeslote makefiles. As verskeie -I opsies gebruik word om verskeie dopgehou te spesifiseer, word die dopgehou gesoek in die gespesifiseerde volgorde. In teenstelling met die argumente vir ander vlae van die maak , kan directories wat gegee word met -I vlae direk na die vlag kom: -Ik is toegelaat, sowel as -I dir. Hierdie sintaksis word toegelaat vir verenigbaarheid met die C-voorverwerker se -I vlag.

-j werk

Spesifiseer die aantal werksgeleenthede (opdragte) om gelyktydig te hardloop. As daar meer as een -j opsie is, is die laaste een effektief. As die -j opsie sonder 'n argument gegee word, sal die aantal werk wat nie gelyktydig uitgevoer kan word, beperk nie.

k

Hou soveel as moontlik na 'n fout. Terwyl die teiken wat misluk het, en diegene wat daarvan afhanklik is, nie weer gemaak kan word nie, kan die ander afhanklikes van hierdie teikens eendag verwerk word.

-l

-l laai

Spesifiseer dat geen nuwe werksgeleenthede (opdragte) begin moet word as daar ander werksgeleenthede loop nie en die laai gemiddeld is ten minste laai ('n swewende punt nommer). Met geen argument word 'n vorige lasperk verwyder.

-n

Druk die opdragte uit wat uitgevoer moet word, maar moenie dit uitvoer nie.

-A lêer

Moenie die lêer herprobeer nie , al is dit ouer as die afhanklikes, en moenie iets heroorweeg nie as gevolg van veranderinge in die lêer . In wese word die lêer as baie oud behandel en sy reëls word geïgnoreer.

p

Druk die databasis (reëls en veranderlike waardes) af as gevolg van die lees van die makefiles; Voer dan soos gewoonlik of andersins uit. Dit druk ook die weergawe-inligting wat deur die -v skakelaar verskaf word (sien hieronder). Om die databasis te druk sonder om enige lêers te herstel, gebruik maak -p -f / dev / null.

-q

`` Vraagmodus ''. Moenie enige opdragte uitvoer of enige iets druk nie; gee net 'n uitgangstatus terug wat nul is as die gespesifiseerde teikens reeds op datum is, andersins andersins.

r

Elimineer gebruik van die ingeboude implisiete reëls. Maak ook die versteklys van agtervoegsels vir agtervoegselreëls uit.

s

Stille werking; Druk nie die opdragte uit soos dit uitgevoer word nie.

-S

Kanselleer die effek van die -k- opsie. Dit is nooit nodig nie, behalwe in 'n rekursiewe maak waar ek van die boonste vlak geërf kan word via MAKEFLAGS of as jy in MAKEFLAGS in jou omgewing sit.

t

Raak lêers (merk hulle op datum sonder om hulle regtig te verander) in plaas daarvan om hul opdragte uit te voer. Dit word gebruik om voor te gee dat die opdragte gedoen is, om toekomstige aanstellings van die maak te maak .

v

Druk die weergawe van die maakprogram plus 'n kopiereg, 'n lys van outeurs en 'n kennisgewing dat daar geen waarborg is nie.

w

Druk 'n boodskap wat die werkgids bevat voor en na ander verwerking. Dit kan nuttig wees om foute op te spoor van ingewikkelde neste van rekursiewe maak opdragte.

-W lêer

Veronderstel dat die teikenlêer pas gewysig is. Wanneer dit gebruik word met die -n- vlag, wys dit wat sou gebeur as jy daardie lêer sou verander. Sonder -n , is dit amper dieselfde as 'n aanraking op die gegewe lêer voordat jy hardloop, behalwe dat die wysigingstyd slegs in die verbeelding van die maak verander word .