Make - Comandamentul Linux - Comandamentul Unix

make - GNU face utilitate pentru a menține grupuri de programe

Rezumat

face [ -f makefile ] [opțiune] ... vizați ...

Avertizare

Această pagină este un extras din documentația GNU. Este actualizat doar ocazional, deoarece proiectul GNU nu folosește nroff. Pentru documentația completă, consultați fișierul informativ make.info care se face din fișierul sursă texinfo make.texinfo .

Descriere

Scopul utilitatii make este de a determina automat ce bucati dintr-un program mare trebuie recompilate si sa emite comenzile pentru a le recompila. Manualul descrie implementarea GNU a mărcii , scrisă de Richard Stallman și Roland McGrath. Exemplele noastre arată programele C, deoarece acestea sunt cele mai comune, dar puteți folosi marca cu orice limbaj de programare al cărui compilator poate fi rulat cu o comandă shell. De fapt, face nu se limitează la programe. Puteți să-l utilizați pentru a descrie orice sarcină în care unele fișiere trebuie să fie actualizate automat de la ceilalți ori de câte ori ceilalți se schimbă.

Pentru a vă pregăti să utilizați marcați , trebuie să scrieți un fișier numit makefile care descrie relațiile dintre fișierele din programul dvs. și să specificați comenzile pentru actualizarea fiecărui fișier. Într-un program, de obicei fișierul executabil este actualizat din fișierele obiect, care sunt, la rândul lor, realizate prin compilarea fișierelor sursă.

Odată ce există un makefile potrivit, de fiecare dată când modificați unele fișiere sursă, această comandă shell simplă:

face

este suficient să efectueze toate recompilările necesare. Programul de creare utilizează baza de date makefile și ultimele perioade de modificare a fișierelor pentru a decide care dintre fișiere trebuie să fie actualizate. Pentru fiecare dintre aceste fișiere, emite comenzile înregistrate în baza de date.

face executa comenzi în makefile pentru a actualiza unul sau mai multe nume de țintă, unde numele este de obicei un program. Dacă nu există opțiunea -f , face să caute fișierele makefiles GNUmakefile , makefile și Makefile , în ordinea respectivă.

În mod normal, ar trebui să apelați fișierul makefile fie makefile, fie Makefile . (Recomandăm Makefile deoarece apare vizibil aproape de începutul unei liste de directoare, chiar lângă alte fișiere importante precum README .) Primul nume bifat, GNUmakefile , nu este recomandat pentru majoritatea fișierelor. Ar trebui să utilizați acest nume dacă aveți un makefile specific pentru GNU make și nu va fi înțeles de alte versiuni ale mărcii . Dacă makefile este `- ', intrarea standard este citită.

actualizeze o țintă dacă depinde de fișierele prealabile care au fost modificate de când țara a fost modificată ultima dată sau dacă țintă nu există.

OPȚIUNI

-b

-m

Aceste opțiuni sunt ignorate pentru compatibilitatea cu alte versiuni ale mărcii .

-Dir

Schimbați directorul dir înainte de a citi fișierele makefiles sau de a face altceva. Dacă sunt specificate mai multe opțiuni, fiecare este interpretată în raport cu cea anterioară: -C / -C etc este echivalentă cu -C / etc. Acest lucru este folosit în mod obișnuit cu invocarea recursivă a mărcii .

-d

Imprimați informații de depanare în plus față de procesarea obișnuită. Informațiile de depanare afirmă care fișiere sunt luate în considerare pentru refacere, ce fișiere sunt comparate și cu ce rezultate, care fișiere trebuie de fapt remodelate, care reguli implicite sunt luate în considerare și care sunt aplicate --- totul interesant despre modul în care decide ce sa fac.

-e

Dați variabilele luate de la prioritatea mediului în raport cu variabilele din fișierele makefile.

-f fișier

Utilizați fișierul ca un makefile.

-i

Ignorați toate erorile din comenzile executate pentru a remake fișierele.

-Dir

Specifică un director director pentru a căuta fișierele makefile incluse. Dacă mai multe opțiuni sunt utilizate pentru a specifica mai multe directoare, directoarele sunt căutate în ordinea specificată. Spre deosebire de argumentele pentru alte steaguri de marcă , directoarele furnizate cu steaguri -I pot veni imediat după steag: -Direcția este permisă, precum și -Dir. Această sintaxă este permisă pentru compatibilitatea cu pavilion-ul C al preprocesorului C.

-J locuri de muncă

Specifică numărul de lucrări (comenzi) care se execută simultan. Dacă există mai mult de o opțiune -j , ultima este eficientă. Dacă opțiunea -j este dată fără argument, face nu va limita numărul de lucrări care pot rula simultan.

-k

Continuați cât mai mult posibil după o eroare. Deși ținta care a eșuat și cele care depind de ea nu poate fi remodelată, celelalte dependențe ale acestor obiective pot fi procesate la fel.

-l

- Încărcați

Specifică faptul că nu ar trebui să se pornească nicio lucrare nouă (comenzi) în cazul în care există alte lucrări care rulează și mediul de încărcare este cel puțin încărcat (un număr în virgulă mobilă). Cu nici un argument, elimină o limită de încărcare anterioară.

-N

Imprimați comenzile care ar fi executate, dar nu le executați.

- un dosar

Nu remake fișierul de fișier, chiar dacă este mai vechi decât dependențele sale, și nu remake nimic din cauza modificărilor în fișier . În esență, fișierul este tratat ca foarte vechi, iar regulile acestuia sunt ignorate.

-p

Imprimați baza de date (reguli și valori variabile) care rezultă din citirea fișelor de produse; apoi executați ca de obicei sau după cum se specifică altfel. De asemenea, aceasta imprimă informațiile despre versiune date de comutatorul -v (vedeți mai jos). Pentru a imprima baza de date fără a încerca să remake orice fișier, utilizați make -p -f / dev / null.

-q

"Mod de întrebare". Nu executați comenzi sau nu imprimați nimic; întoarceți doar o stare de ieșire care este zero dacă țintele specificate sunt deja actualizate, altfel nenul.

-r

Eliminați utilizarea regulilor implicite încorporate. De asemenea, eliminați lista prestabilită a sufixelor pentru regulile sufixelor.

-s

Operație silențioasă; nu imprimați comenzile așa cum sunt executate.

-S

Anulați efectul opțiunii -k . Acest lucru nu este niciodată necesar, cu excepția unei mărci recursive în care -k ar putea fi moștenit de la top-level face prin MAKEFLAGS sau dacă ați setat -k în MAKEFLAGS în mediul dvs.

-t

Atingeți fișiere (marcați-le până la data fără a le schimba cu adevărat) în loc să executați comenzile lor. Acest lucru este folosit pentru a pretinde că comenzile au fost făcute, pentru a păcăli invocările viitoare de a face .

-v

Imprimați versiunea programului de realizare plus un drept de autor, o listă de autori și o notă că nu există nicio garanție.

-w

Imprimați un mesaj care conține directorul de lucru înainte și după alte procesări. Acest lucru poate fi util pentru urmărirea erorilor din cuiburile complicate ale comenzilor recursive.

-W fișier

Pretindeți că fișierul țintă tocmai a fost modificat. Când este folosit cu flagul -n , aceasta vă arată ce s-ar întâmpla dacă ați fi modificat acel fișier. Fără -n , este aproape la fel ca executarea unei comenzi tactile pe fișierul dat înainte de a începe să se facă , cu excepția faptului că timpul de modificare este schimbat numai în imaginația făcută.