Padarīt - Linux Command - Unix komandu

make - GNU veidot lietderību, lai saglabātu programmu grupas

Kopsavilkums

padarīt [ -f makefile ] [iespēju] ... mērķi ...

Brīdinājums

Šī lapa ir izvilkums no GNU veidošanas dokumentācijas . To atjaunina tikai reizēm, jo ​​GNU projekts neizmanto nroff. Pilnīgai, aktuālai dokumentācijai skatiet informācijas failu make.info, kas veidots no Texinfo avota faila make.texinfo .

Apraksts

Veidnes lietderības mērķis ir automātiski noteikt, kādas lielas programmas daļas ir jāpārkopē un jāizsniedz komandas, lai tās pārkvalificētu. Rokasgrāmatā ir aprakstīta markas GNU ieviešana, ko ir uzrakstījuši Richard Stallman un Roland McGrath. Mūsu piemēri parāda C programmas, jo tie ir visizplatītākie, taču jūs varat izmantot make ar jebkuru programmēšanas valodu, kuras kompilatoru var palaist ar apvalka komandu. Patiesībā, padarīt ne tikai uz programmām. To varat izmantot, lai aprakstītu jebkuru uzdevumu, kurā daži faili automātiski jāatjaunina no citiem, kad citi mainās.

Lai sagatavotos marka izmantošanai, jums jāuzraksta fails ar nosaukumu makefile, kas apraksta attiecības starp jūsu programmas failiem un norāda komandas katra faila atjaunināšanai. Programmā parasti izpildāmā fails tiek atjaunināts no objekta failiem, un to savukārt veic, sastādot avota failus.

Kad ir izveidots piemērots makefile, katru reizi, kad maināt dažus avota failus, šī vienkāršā apvalka komanda:

veidot

pietiek, lai veiktu visus nepieciešamos rekompilācijas. Make programma izmanto faila makefile datubāzi un failu pēdējo modificēšanas laiku, lai izlemtu, kurš no failiem ir jāatjaunina. Par katru no šiem failiem tā izdod komandas, kas reģistrētas datu bāzē.

lai izpildītu komandas makefile, lai atjauninātu vienu vai vairākus mērķa nosaukumus , kur vārds parasti ir programma. Ja nav opcijas -f , tad meklēt meklēt makefiles GNUmakefile , makefile un makefile šajā kārtībā.

Parasti jums vajadzētu piezvanīt jūsu makefile vai nu makefile, vai Makefile . (Mēs iesakām Makefile, jo tas ir skaidri redzams netālu no direktoriju saraksta sākuma, tieši blakus citiem svarīgiem failiem, piemēram, README .) Pārbaudītais vārds GNUmakefile nav ieteicams lielākajai daļai makefile. Jums vajadzētu izmantot šo nosaukumu, ja jums ir makefile, kas ir raksturīgs GNU markai , un tas nebūs saprotams citās marka versijās. Ja makefile ir `- ', tiek nolasīta standarta ievade.

atjaunināt mērķauditoriju, ja tas ir atkarīgs no priekšnoteikuma failiem, kas ir mainīti kopš mērķa pēdējās izmaiņas vai mērķa neeksistē.

OPTIONS

-b

-m

Šīs opcijas tiek ignorētas saderībai ar citām marka versijām.

-C dir

Mainiet direktoriju direktoriju pirms lasīt makefile vai veikt kaut ko citu. Ja ir norādītas vairākas -C opcijas, katrs tiek interpretēts attiecībā pret iepriekšējo: -C / -Ctex ir ekvivalents -C / etc. Tas parasti tiek izmantots ar rekvizītiem zīmējumiem.

-d

Drukāt atkļūdošanas informāciju papildus parastajai apstrādei. Atkļūdošanas informācija norāda, kādi faili tiek izskatīti pārveidošanai, kādi faila laiki tiek salīdzināti un ar kādiem rezultātiem, kuri faili faktiski ir jāpārveido, kādi netiešie noteikumi tiek ņemti vērā un kurus piemēro - viss interesants par to, kā izlemt ko darīt.

-e

Dodiet mainīgos, kas ņemti no vides prioritātes salīdzinājumā ar makefile mainīgajiem lielumiem.

-f fails

Izmantojiet failu kā makefile.

-i

Ignorēt visas kļūdas komandās, kas izpildītas, lai pārveidotu failus.

-I dir

Norāda direktoriju direktoriju, lai meklētu iekļautu makefiles. Ja vairākas-i opcijas tiek izmantotas, lai norādītu vairākas direktorijas, katalogi tiek meklēti norādītajā secībā. Atšķirībā no citu zīmju karodziņiem, direktoriji, kas doti ar -I karogiem, var atrasties tieši pēc karoga: -I režīms ir atļauts, kā arī -I dir. Šo sintaksi ir atļauts saderībai ar C preprocesora -I karti.

-j darba vietas

Norāda darbavietu (komandu) skaitu vienlaicīgi. Ja ir vairāk nekā viena izvēle, pēdējā ir efektīva. Ja -j opcija tiek dota bez argumenta, tad padarīs neierobežo to darbavietu skaitu, kuras var darboties vienlaicīgi.

-k

Turpiniet pēc iespējas pēc kļūdas. Kaut arī mērķi, kuru neizdevās, un tos, kas no tā ir atkarīgi, nevar pārveidot, pārējās šo mērķu atkarības var tikt apstrādātas vienādi.

-l

-l slodze

Norāda, ka nav jāuzsāk jaunas darba vietas (komandas), ja darbojas citas darbavietas un slodzes vidējais ir vismaz slodze (peldošā komata skaitlis). Ja nav argumentu, tiek noņemts iepriekšējais slodzes ierobežojums.

-n

Izdrukājiet komandas, kuras tiks izpildītas, bet tās netiks izpildītas.

-o fails

Nepārveidojiet faila failu, pat ja tas ir vecāks par tā atkarību, un neko nemainiet, ņemot vērā izmaiņas failā . Būtībā fails tiek uzskatīts par ļoti vecu, un tā noteikumi tiek ignorēti.

-p

Izdrukājiet datu bāzi (noteikumi un mainīgās vērtības), kas rodas, lasot makefile; tad izpildiet kā parasti vai kā citādi norādīts. Tas arī izdrukā versiju, ko sniedz -v slēdzis (skatīt tālāk). Lai izdrukātu datu bāzi, nemēģinot pārveidot visus failus, izmantojiet make -p -f / dev / null.

-q

`` Jautājumu režīms ''. Nevadiet nekādas komandas vai izdrukājiet neko; vienkārši atgrieziet izejas statusu, kas ir nulle, ja norādītie mērķi jau ir atjaunināti, citādi - nulles vērtība.

-r

Novērst iekšējo netiešo noteikumu izmantošanu. Arī iztīriet noklusēto sufiksu sarakstu sufiksu noteikumiem.

-s

Klusa darbība; neizdrukājiet komandas, kad tās izpildītas.

-S

Atcelt -k opcijas efektu. Tas nekad nav nepieciešams, izņemot rekursīvu zīmējumu, kur -k, iespējams, iegūst no augstākā līmeņa veikala, izmantojot MAKEFLAGS, vai arī, ja jūsu vidē iestatījāt -k ar MAKEFLAGS.

-t

Pieskarieties failiem (atzīmējiet tos līdz mūsdienām, nemainot tos), nevis komandu izpildīšanai. Tas tiek izmantots, lai izliktu, ka komandas tika veiktas, lai maldinātu nākotnes ielūgumus padarīt .

-v

Izdrukājiet maketa programmas versiju, kā arī autortiesības, autoru sarakstu un paziņojumu par garantijas neesamību.

-w

Izdrukājiet ziņojumu ar darba direktoriju pirms un pēc citas apstrādes. Tas var būt noderīgs, lai izsekotu kļūdas no rekursīvu komandu komandas sarežģītiem ligzdām.

-W failu

Iedomājieties, ka mērķa fails ir tikko mainīts. Lietojot to ar -n karti , tas parāda, kas notiktu, ja maināt šo failu. Bez -n , tas ir gandrīz tāds pats kā komandas pieskāriena vadīšana konkrētajā failā pirms skices noformēšanas , izņemot to, ka modifikācijas laiks tiek mainīts tikai zīmola iztēlē.