Unixi ja Linuxi käsu mõistmine: make
Utiliit make määrab automaatselt, millised suure programmi osad tuleb uuesti kompileerida, ja annab nende ümberkompileerimiseks käsud. Kasutusjuhendis kirjeldatakse Richard Stallmani ja Roland McGrathi kirjutatud make GNU juurutamist.
Utiliit Make ei piirdu programmidega. Saate seda kasutada mis tahes toimingu kirjeldamiseks, mille puhul tuleb mõnda faili automaatselt teistelt värskendada, kui teised muutuvad. Käsku make kasutatakse kõige sagedamini tavalises protsessis, mille abil luuakse selle lähtekoodist tarkvara.

Kuidas kasutada Linuxis käsku Make
See on tavaline näide sellest, kuidas Linuxis käsu make kasutada. Tavaliselt on see osa lihtsast kolmeastmelisest protsessist, mille abil luuakse nende lähtekoodist avatud lähtekoodiga rakendused.
Need näited näitavad C programmid kuna need on kõige levinumad, kuid võite kasutada käsku make mis tahes programmeerimiskeelega, mis suudab käivitada oma kompilaatorit shell-käsuga.
-
Installige Git, kui teil seda pole, koos tarkvara loomise tööriistadega.
apt install git build-essential
-
Valige rakendus, millega töötada, või laadige alla VLC.
apt build-dep vlc
-
Kloonige VLC lähtekood.
git kloon https://github.com/videolan/vlc.git
-
Muutke kataloogid kloonitud VLC lähtekoodiks ja käivitage konfiguratsiooniskript.
cd vlc
./bootstrap
./configure -
Käivitage tegema käsk koos -j lipp, millele järgneb teie süsteemis olevate CPU tuumade/lõimede arv.
tee -j4
-
Selle täitmiseks kulub veidi aega. Kui see on tehtud, installige rakendus pane installima.
sudo make install
Sa oled lõpetanud.
Enamasti näete just nii, kuidas kasutatakse käsku make. Võib esineda keerukamaid protseduure kui see või väikseid variatsioone, kuid see pole kunagi liiga keeruline.
Kuidas GNU käsk töötab?
Allolev jaotis on käsu make tehniline jaotus. Kui soovite tootemargist maksimumi võtta, vaadake allolevaid valikuid.
See leht on väljavõte GNU make dokumentatsioonist. Seda värskendatakse ainult aeg-ajalt, kuna GNU projekt ei kasuta nroffi. Täieliku ja kehtiva dokumentatsiooni leiate teabefailist make.info mis on tehtud Texinfo lähtefailist make.texinfo.
Make Utility süntaks ja ettevalmistamine
Utiliidi make süntaks on tegema [ -fmakefile ] [ valik ]... sihtmärk...
Make kasutamise ettevalmistamiseks peate kirjutama faili nimega the makefile mis kirjeldab teie programmi failide vahelisi seoseid ja annab iga faili värskendamise käsud. Tavaliselt an käivitatav fail uuendatakse objektifailidest, mis omakorda tehakse lähtefailide kompileerimise teel.
Kui sobiv makefile on olemas, siis iga kord, kui muudate mõnda lähtefaili, shell-käsk tegema piisab kõigi vajalike ümberkompilatsioonide tegemiseks. Make programm kasutab makefile'i andmebaasi ja failide viimase muutmise aegu, et otsustada, milliseid faile on vaja värskendada. Kõigi nende failide jaoks väljastab see andmebaasi salvestatud käsud.
Utiliit make täidab makefile'is käske, et värskendada ühte või mitut sihtnime, kus nimi on tavaliselt programm. Kui ei -f valik on olemas, otsi makefaile GNUmakefile, makefile, ja Makefile, selles järjekorras.
Tavaliselt peaksite helistama ka makefile'i makefile või Makefile. (Soovitatav on kasutada Makefile'i, kuna see on nähtavalt kataloogiloendi alguses, muude oluliste failide (nt README) läheduses.) Kontrollitud eesnimi, GNUmakefile, pole enamiku jaoks soovitatav makefailid. Kasutage seda nime ainult siis, kui make-fail on spetsiifiline GNU make-le ja seda ei mõista muud make-i versioonid. Kui makefile on -, loetakse standardsisend.
The tegema utiliit värskendab sihtmärki, kui see sõltub eeltingimusfailidest, mida on pärast sihtmärgi viimast muutmist muudetud, või kui sihtmärki pole olemas.
Make Utility valikud
The -b ja -m valikuid eiratakse ühilduvuse huvides teiste make versioonidega.
-C rež muutub kataloog dir enne makefailide lugemist või millegi muu tegemist. Kui mitu -C valikud on määratud, igaüht tõlgendatakse võrreldes eelmisega: -C / -C jne on samaväärne -C /jne. Seda kasutatakse tavaliselt make rekursiivsete kutsumiste puhul.
The -d valik prindib lisaks tavapärasele töötlemisele ka silumisinfo. Silumisinfo ütleb, milliste failide ümbertegemist kaalutakse ja milliseid failiaegu võrreldakse ja milliste tulemustega, millised failid tuleb ümber teha ning milliseid kaudseid reegleid arvestatakse ja milliseid rakendatud.
The -e suvand annab keskkonnast võetud muutujatele prioriteetsuse makefile'i muutujate ees.
The -f failivalikuvõimalused faili makefile'ina.
The -i suvand ignoreerib kõiki failide ümbertegemiseks käivitatud käskude vigu.
The - Mina režvalik määrab kataloogi rež kaasatud makefailide otsimiseks. Kui mitu -ma valikuid kasutatakse mitme kataloogi määramiseks, katalooge otsitakse määratud järjekorras. Erinevalt argumentidest muudele marki lippudele, kataloogidele, millel on - Mina lipud võivad tulla vahetult pärast lippu: -Idir on lubatud, samuti -I rež. See süntaks on C-eelprotsessoriga ühilduvuse tagamiseks lubatud - Mina lipp.
The -j töökohti valik täpsustab töökohtade arv (käsud) samaaegselt käivitada. Kui neid on rohkem kui üks -j võimalus, on viimane tõhus. Kui -j valik antakse ilma argumendita, make ei piira samaaegselt töötavate tööde arvu.
The -k valik jätkub nii palju kui võimalik pärast viga. Eesmärki, mis ebaõnnestus, ja neid, mis sellest sõltuvad, ei saa ümber teha. Nende sihtmärkide muid sõltuvusi saab aga töödelda samamoodi.
The -l ja - laadin valikud määravad, et uusi töid (käske) ei alustata, kui on muid töid ja koormuse keskmine on vähemalt koormus (ujukomaarv). Ilma argumentideta eemaldab see eelmise koormuspiirangu.
The -n suvand prindib käivitatavad käsud, kuid ei täida neid.
The -o failivalik ei tee ümber faili isegi kui see on oma sõltuvustest vanem ega tee midagi ümber muudatuste tõttufaili. Põhimõtteliselt käsitletakse faili vanana ja selle reegleid eiratakse.
The -lk valik prindib andmebaasi (reeglid ja muutujate väärtused), mis saadakse makefailide lugemisest. Seejärel käivitatakse see nagu tavaliselt või muul viisil määratud. See prindib ka versiooniteabe, mille on andnud -v lüliti (vt allpool). Andmebaasi printimiseks ilma faile ümber tegemata kasutage tegema-lk-f/dev/null.
The -q valik määrab küsimuste režiimi. See ei käivita ühtegi käsku ega prindi midagi. See tagastab väljumisoleku, mis on null, kui määratud sihtmärgid on ajakohased, muul juhul nullist erinev.
The -r valik välistab sisseehitatud kaudsete reeglite kasutamise. Samuti tühjendab see sufiksireeglite järelliidete vaikeloendi.
The -s valik vaigistab toimingu. See ei prindi käske nende täitmise ajal.
The -S valik tühistab efekti -k valik. See pole vajalik, välja arvatud rekursiivse makewhere puhul -k võib pärida kõrgeima taseme tootjalt MAKEFLAGS-i kaudu või kui määrate -k rakenduses MAKEFLAGS teie keskkonnas.
The -t suvand puudutab faile (märgib need ajakohaseks ilma neid muutmata), selle asemel et käivitada nende käske. Seda kasutatakse selleks, et teeselda, et käsklused on täidetud, et lollitada tulevasi make-kutseid.
The -v suvand prindib make programmi versiooni, millele lisanduvad autoriõigused, autorite nimekiri ja teade, et garantii puudub.
The -w suvand prindib enne ja pärast muud töötlemist töökataloogi sisaldava sõnumi. See võib olla kasulik vigade leidmiseks rekursiivsete käskude keerulistest pesadest.
The -W faili valik teeskleb, et sihtmärkfailion muudetud. Kui seda kasutatakse koos -n lipp, see näitab, mis juhtuks, kui te seda faili muudate. Ilma -n, see on peaaegu sama, mis a puudutada käsk antud failis enne make käivitamist, välja arvatud see, et muutmise aega muudetakse ainult make kujutluses.