GettyImages 468834165 57ed8d935f9b586c353b9d75

Make-apuohjelma määrittää automaattisesti, mitkä suuren ohjelman osat on käännettävä uudelleen, ja antaa komennot niiden kääntämiseksi uudelleen. Käsikirja kuvaa GNU-toteutusta make, jonka ovat kirjoittaneet Richard Stallman ja Roland McGrath. Make-apuohjelma ei rajoitu ohjelmiin. Voit käyttää sitä kuvaamaan mitä tahansa tehtävää, joka edellyttää joidenkin tiedostojen automaattista päivittämistä toisista, kun muut muuttuvat. Make-komentoa käytetään yleisimmin yleisessä ohjelmiston rakentamisprosessissa lähdekoodista.

Kuinka käyttää Make-komentoa Linuxissa

Tämä on yleinen esimerkki make-komennon käytöstä Linuxissa. Yleensä se on osa yksinkertaista kolmivaiheista prosessia avoimen lähdekoodin sovellusten rakentamiseksi niiden lähdekoodista. Nämä esimerkit näyttävät C-ohjelmia, koska ne ovat yleisimpiä, mutta voit käyttää make-komentoa minkä tahansa ohjelmointikielen kanssa, jota kääntäjä voi suorittaa komentotulkkikomennolla.

  1. Jos sinulla ei ole sitä, asenna Git ohjelmistonrakennustyökalujen kanssa. apt install git build-essential

  2. Valitse käytettävä sovellus tai lataa VLC. apt build-dep vlc

  3. Kloonaa VLC-lähdekoodi. git-klooni https://github.com/videolan/vlc.git

  4. Muuta hakemistoja kloonatussa VLC-lähdekoodissa ja suorita määrityskomentosarja. cd vlc
    ./bootstrap
    ./configure

  5. Suoritettu tehdä komento yhdessä -J lippu, jonka jälkeen järjestelmässäsi olevien suorittimen ytimien/säikeiden määrä. tee -j4

  6. Sen suorittaminen kestää jonkin aikaa. Kun se on valmis, asenna sovellus asentaa se† sudo tee asennus

  7. Olet valmis.

Useimmiten make-komentoa käytetään näin. Voi olla monimutkaisempia menettelyjä tai pieniä muunnelmia, mutta se ei ole koskaan liian monimutkaista.

Kuinka GNU-komento toimii?

Alla oleva osa on make-komennon tekninen erittely. Jos haluat saada eniten irti brändistäsi, tutustu alla oleviin vaihtoehtoihin. Tämä sivu on ote GNU maken dokumentaatiosta Sitä päivitetään vain satunnaisesti, koska GNU-projekti ei käytä nroffia. Katso täydelliset, nykyiset asiakirjat tietotiedostosta make.info joka on tehty Texinfo-lähdetiedostosta create.texinfo

Make-apuohjelman syntaksi ja valmistelu

Make-apuohjelman syntaksi on tehdä -f makefile ] [ option ] † kohde … Valmistautuaksesi käyttämään makea, sinun on kirjoitettava tiedosto nimeltä tee tiedosto joka kuvaa ohjelman tiedostojen välisiä suhteita ja luettelee jokaisen tiedoston päivittämiskomennot. Yleensä suoritettava tiedosto päivitetään objektitiedostoista, jotka puolestaan ​​luodaan kääntämällä lähdetiedostoja. Kun sopiva makefile on olemassa, joka kerta kun muutat joitain lähdetiedostoja, shell-komento tehdä riittää suorittamaan kaikki tarvittavat uudelleenkäännökset. Make-ohjelma käyttää makefile-tietokantaa ja tiedostojen viimeisiä muokkausaikoja päättääkseen, mitkä tiedostot päivitetään. Jokaiselle tiedostolle se antaa tietokantaan tallennetut komennot. Make-apuohjelma suorittaa makefile-komentoja päivittääkseen yhden tai useamman kohdenimen, missä: nimi on tyypillisesti ohjelma. Jos ei -F vaihtoehto on olemassa, etsi make-tiedostoja GNUmakefiletee tiedostoja tee tiedosto, tässä järjestyksessä. Normaalisti sinun tulee kutsua myös makefile: tee tiedosto tai tee tiedosto† (On suositeltavaa käyttää Makefileä koska se näkyy näkyvästi hakemistoluettelon alussa, lähellä muita tärkeitä tiedostoja, kuten README.) Ensin valittua nimeä, GNUmakefile, ei suositella useimmille make-tiedostoille. Käytä tätä nimeä vain, jos make-tiedosto on GNU-make-nimi, eivätkä muut make-versiot ymmärrä sitä. Jos makefile on , vakiosyöte luetaan. The tehdä apuohjelma päivittää kohteen, jos se riippuu vaadituista tiedostoista, jotka ovat muuttuneet kohteen viimeisimmän muokkauksen jälkeen, tai jos kohdetta ei ole olemassa.

Tee työkalun asetukset

The -B ja -m vaihtoehdot ohitetaan yhteensopivuuden vuoksi muiden make-versioiden kanssa.

-C ohj tehdä muutoksia digihakemistoon ennen kuin luet make-tiedostoja tai teet mitään muuta. Jos useita -C vaihtoehdot on määritetty, jokainen tulkitaan suhteessa edelliseen: -C -C jne on yhtä suuri kuin -C / jne† Tätä käytetään yleensä rekursiivisissa puheluissa. The -D vaihtoehto tulostaa virheenkorjaustiedot normaalin käsittelyn lisäksi. Virheenkorjaustiedot osoittavat, mitkä tiedostot harkitaan uudelleenluomista, mitä tiedostoaikoja verrataan ja millä tuloksilla, mitkä tiedostot luodaan uudelleen ja mitä implisiittisiä sääntöjä harkitaan ja mitä sovelletaan. The -e optio antaa ympäristömuuttujat etusijalle makefiles-muuttujiin nähden. The -F Tiedosto käytetty vaihtoehto Tiedosto make-tiedostona. The -l -vaihtoehto jättää huomioimatta kaikki tiedostojen uudelleenluomiseksi suoritettavien komentojen virheet. The -L ohj vaihtoehto määrittää kansion ohj etsiä tallennettuja make-tiedostoja. Jos useita –l vaihtoehtoja käytetään useiden hakemistojen määrittämiseen, hakemistoista haetaan määritetyssä järjestyksessä. Toisin kuin argumentit muiden make-lippujen, kansioiden kanssa -L liput voivat tulla heti lipun jälkeen: -Idir on sallittu, samoin -Minä ohja Tämä syntaksi on sallittu yhteensopivuuden vuoksi C-esiprosessorin kanssa -L lippu. The -j työpaikkoja vaihtoehto määrittää samanaikaisesti suoritettavien tehtävien (komentojen) määrän. Jos niitä on enemmän kuin yksi -J vaihtoehto, jälkimmäinen on tehokas. Kuten -J vaihtoehto annetaan ilman argumenttia, make ei rajoita samanaikaisesti suoritettavien tehtävien määrää. The -k vaihtoehto jatkuu mahdollisimman pitkään virheen jälkeen. Epäonnistunutta kohdetta ja siitä riippuvaisia ​​ei voida luoda uudelleen. Kaikki näiden kohteiden muut riippuvuudet voidaan kuitenkin käsitellä samalla tavalla. The -l ja – kuorman vaihtoehdot määrittävät, että uusia töitä (komentoja) ei aloiteta, kun muut työt ovat aktiivisia ja kuormituksen keskiarvo on vähintään ladata (liukuluku). Ilman argumenttia se poistaa aiemman kuormitusrajan. The -N Optio tulostaa suoritettavat komennot, mutta ei suorita niitä. The -O Tiedosto vaihtoehto ei luo uudelleen Tiedosto vaikka se on riippuvuuksiaan vanhempi eikä se luo mitään uudelleen muutosten takia Tiedosto† Pohjimmiltaan tiedostoa käsitellään vanhana ja sääntöjä ei huomioida. The -P Optio tulostaa tietokannan (rivit ja muuttujan arvot), jotka ovat tuloksena make-tiedostojen lukemisesta. Se toimii sitten tavalliseen tapaan tai muuten määritetyllä tavalla. Tämä tulostaa myös versiotiedot, jotka on toimittanut -v kytkin (katso alla). Jos haluat tulostaa tietokannan yrittämättä luoda tiedostoja uudelleen, käytä tehdä -P -f/dev/null

The -Q vaihtoehto asettaa kysymystilan. Se ei suorita mitään komentoja eikä tulosta mitään. Se palauttaa poistumistilan, joka on nolla, jos määritetyt kohteet ovat ajan tasalla, muussa tapauksessa ei nollaa. The -R -vaihtoehto eliminoi sisäänrakennettujen implisiittisten sääntöjen käytön. Se myös tyhjentää liitesäännön jälkiliitteiden oletusluettelon. The -s vaihtoehto mykistää toiminnon. Se ei tulosta komentoja, kun ne suoritetaan. The -S vaihtoehto kumoaa vaihtoehdon vaikutuksen -k vaihtoehto. Tämä ei ole välttämätöntä, paitsi rekursiivisessa mallissa Missä -k voidaan periä huippubrändiltä MAKEFLAGSin kautta tai jos asetat -k MAKEFLAGSissa alueellasi. The -t -vaihtoehto koskettaa tiedostoja (merkitsee ne ajantasaisiksi muuttamatta niitä) komentojen suorittamisen sijaan. Tätä käytetään teeskentelemään, että komennot on suoritettu, huijatakseen tulevia kutsuja. The -v -vaihtoehto tulostaa make-ohjelman version sekä tekijänoikeudet, tekijöiden luettelon ja takuun puuttumisen. The -w vaihtoehto tulostaa työhakemiston sisältävän viestin ennen muuta käsittelyä ja sen jälkeen. Tämä voi olla hyödyllistä etsittäessä virheitä monimutkaisista rekursiivisen merkin pesistä komentoja. The -W Tiedosto vaihtoehto teeskentelee kohdetta Tiedosto muutetaan. Kun sitä käytetään -N lippu, tämä näyttää, mitä tapahtuisi, jos muokkaat tiedostoa. Ilman -Nse on melkein kuin juoksemaan kosketus komento annetussa tiedostossa ennen make-ajoa, paitsi että muokkausaika muuttuu vain valmistajan mielikuvituksessa.

Por Markus