MAKE(1) Comenzi utilizator MAKE(1) NUME make - ustensila GNU Make pentru a menine grupuri de programe SINOPSIS make [OPIUNE]... [INTA]... DESCRIERE Ustensila make va determina in mod automat care pari ale unui program mare trebuie recompilate i va emite comenzile necesare pentru a le recompila. Manualul descrie implementarea GNU a lui make, care a fost scrisa de Richard Stallman i Roland McGrath i este in prezent intreinuta de Paul Smith. Exemplele noastre prezinta programe C, deoarece acestea sunt foarte comune, dar putei utiliza make cu orice limbaj de programare al carui compilator poate fi rulat cu o comanda shell. De fapt, make nu este limitat la programe. Il putei utiliza pentru a descrie orice sarcina in care unele fiiere trebuie sa fie actualizate automat din altele ori de cate ori acestea se modifica. Pentru a va pregati sa utilizai make, trebuie sa scriei un fiier numit makefile (fiier de reete) care descrie relaiile dintre fiierele din programul dumneavoastra i ofera comenzi pentru actualizarea fiecarui fiier. Intr-un program, in mod obinuit, fiierul executabil este actualizat din fiierele obiect, care la randul lor sunt realizate prin compilarea fiierelor sursa. Odata ce exista un makefile adecvat, de fiecare data cand modificai unele fiiere sursa, aceasta simpla comanda shell: make este suficienta pentru a efectua toate recompilarile necesare. Programul make utilizeaza descrierea fiierului makefile i orele ultimei modificari a fiierelor pentru a decide care dintre fiiere trebuie actualizate. Pentru fiecare dintre aceste fiiere, el emite comenzile inregistrate in makefile. make executa comenzile din makefile pentru a actualiza una sau mai multe inte, unde inta este de obicei un program. Daca nu este prezenta opiunea -f, make va cauta fiierele ,,makefile" GNUmakefile, makefile i Makefile, in aceasta ordine. In mod normal, ar trebui sa numii fiierul ,,makefile" fie makefile, fie Makefile; (se recomanda Makefile, deoarece apare in mod proeminent la inceputul unei liste de directoare, chiar langa alte fiiere importante, cum ar fi README). Primul nume verificat, GNUmakefile, nu este recomandat pentru majoritatea fiierelor ,,makefile". Ar trebui sa folosii acest nume daca avei un ,,makefile" care este specific GNU Make i care nu va fi ineles de alte versiuni de make. Daca makefile este ,,-", se citete intrarea standard. make actualizeaza o inta in cazul in care aceasta depinde de fiiere premergatoare care au fost modificate de la ultima modificare a intei sau in cazul in care aceasta nu exista. OPIUNI -b, -m Aceste opiuni sunt ignorate pentru compatibilitate cu alte versiuni de make. -B, --always-make Face in mod necondiionat toate intele. -C director, --directory=director Schimba la directorul director inainte de a citi fiierele ,,makefiles" sau de a face orice altceva. Daca sunt specificate mai multe opiuni -C, fiecare dintre ele este interpretata in raport cu cea anterioara: -C / -C etc este echivalent cu -C /etc. Acest lucru este utilizat de obicei cu invocari recursive ale make. -d Afieaza informaii de depanare in plus faa de procesarea normala. Informaiile de depanarii spun ce fiiere sunt luate in considerare pentru refacere, ce timpi de fiier sunt comparai i cu ce rezultate, ce fiiere trebuie refacute, ce reguli implicite sunt luate in considerare i care sunt aplicate - tot ceea ce este interesant despre modul in care make decide ce sa faca. --debug[=FANIOANE] Afieaza informaii de depanare in plus faa de procesarea normala. Daca FANIOANELE sunt omise, atunci comportamentul este acelai ca i in cazul in care ar fi fost specificat -d. FANIOANE poate fi oricare sau toate numele urmatoare, separate prin virgule sau spaii. Numai primul caracter este semnificativ: restul pot fi omise: all pentru toate ieirile de depanare (la fel ca atunci cand se folosete -d), basic pentru depanare de baza, verbose pentru depanare de baza mai detaliata, default pentru afiarea operaiilor implicite de cautare a regulilor, jobs pentru detalii despre invocarea comenzilor, makefile pentru depanare in timpul refacerii fiierelor makefile, print arata toate reetele care sunt rulate chiar daca sunt silenioase i why arata motivul pentru care make a decis sa reconstruiasca fiecare inta. Utilizai none pentru a dezactiva toate indicatoarele de depanare anterioare. -e, --environment-overrides Acorda variabilelor preluate din mediu prioritate faa de variabilele din fiierele makefile. -E ir, --eval ir Interpreteaza irul utilizand funcia eval, inainte de a analiza orice fiier makefile. -f file, --file=fiier, --makefile=FIIER Folosete fiier ca fiier makefile. -i, --ignore-errors Ignora toate erorile din comenzile executate pentru refacerea fiierelor. -I director, --include-dir=director Specifica un director director in care se cauta fiierele makefile incluse. In cazul in care se utilizeaza mai multe opiuni -I pentru a specifica mai multe directoare, directoarele sunt cautate in ordinea specificata. Spre deosebire de argumentele altor opiuni de make, directoarele date cu opiunea -I pot veni direct dupa opiune: -Idirector este permis, precum i -I director. Aceasta sintaxa este permisa pentru compatibilitate cu indicatorul -I al preprocesorului C. -j [lucrari], --jobs[=lucrari] Specifica numarul de lucrari (comenzi) care trebuie executate simultan. In cazul in care exista mai multe opiuni -j, ultima este cea care are efect. Daca opiunea -j este data fara un argument, make nu va limita numarul de lucrari care pot fi executate simultan. --jobserver-style=stil Stilul de server de lucru care trebuie utilizat. stil poate fi unul dintre fifo, pipe sau sem (numai pentru Windows). -k, --keep-going Continua cat mai mult posibil dupa o eroare. In timp ce obiectivul care a euat i cele care depind de acesta nu pot fi refacute, celelalte dependene ale acestor obiective pot fi procesate in continuare. -l [medie-incarcare], --load-average[=medie-incarcare] Specifica faptul ca nu trebuie sa se porneasca noi lucrari (comenzi) daca exista alte lucrari in curs de execuie i daca media de incarcare este de cel puin medie-incarcare (un numar in virgula mobila). Fara nici un argument, elimina o limita de incarcare anterioara. -L, --check-symlink-times Utilizeaza cel mai recent timp mtime intre legaturile simbolice i inta. -n, --just-print, --dry-run, --recon Afieaza comenzile care ar trebui executate, dar nu le executa (cu excepia anumitor circumstane). -o fiier, --old-file=fiier, --assume-old=fiier Nu reface fiierul fiier chiar daca este mai vechi decat dependenele sale i nu reface nimic din cauza modificarilor din fiier. In esena, fiierul este tratat ca fiind foarte vechi, iar regulile sale sunt ignorate. -O[tip], --output-sync[=tip] Cand se executa mai multe lucrari in paralel cu -j, se asigura ca rezultatele fiecarei lucrari sunt colectate impreuna i nu intercalate cu rezultatele altor lucrari. Daca tip nu este specificat sau este target, ieirea de la intreaga reeta pentru fiecare inta este grupata impreuna. Daca tip este line, se grupeaza ieirile de la fiecare linie de comanda din cadrul unei reete. Daca tip este recurse, se grupeaza ieirile de la o intreaga reeta recursiv. Daca tip este none, sincronizarea ieirii este dezactivata. -p, --print-data-base Afieaza baza de date (reguli i valori ale variabilelor) care rezulta din citirea fiierelor de reete ,,makefile"; apoi executa ca de obicei sau astfel cum este specificat. Aceasta afieaza, de asemenea, informaiile despre versiune date de opiunea -v (a se vedea mai jos). Pentru a afia baza de date fara a incerca sa refacei niciun fiier, utilizai make -p -f/dev/null. -q, --question Activeaza ,,modul de intrebare". Nu executa nicio comanda i nu afieaza nimic; returneaza doar o stare de ieire care este zero daca intele specificate sunt deja actualizate, altfel nu este zero. -r, --no-builtin-rules Elimina utilizarea regulilor implicite incorporate. De asemenea, elimina lista implicita de sufixe pentru regulile de sufixare. -R, --no-builtin-variables Nu definete nicio variabila incorporata. -s, --silent, --quiet Operare silenioasa; nu se afieaza comenzile pe masura ce sunt executate. --no-silent Anuleaza efectul opiunii -s. -S, --no-keep-going, --stop Anuleaza efectul opiunii -k. -t, --touch Acceseaza fiierele (le marcheaza la data curenta fara a le modifica cu adevarat) in loc sa execute comenzile acestora. Acest lucru este folosit pentru a pretinde ca au fost executate comenzile, pentru a pacali viitoarele invocari ale lui make. --trace Sunt afiate informaii despre dispoziia fiecarei inte (de ce este reconstruita inta i ce comenzi sunt executate pentru a o reconstrui). -v, --version Imprima versiunea programului make plus drepturile de autor, o lista a autorilor i o notificare ca nu exista nicio garanie. -w, --print-directory Afieaza un mesaj care conine directorul de lucru inainte i dupa alte procesari. Acest lucru poate fi util pentru depistarea erorilor din imbricari complicate de comenzi make recursive. --no-print-directory Dezactiveaza -w, chiar daca a fost activata implicit. --shuffle[=MOD] Activeaza amestecarea ordinii obiectivelor i a condiiilor prealabile. MOD este unul dintre none pentru a dezactiva modul de amestecare, random pentru a amesteca condiiile prealabile in ordine aleatorie, reverse pentru a lua in considerare condiiile prealabile in ordine inversa, sau un numar intreg care activeaza modul random cu o anumita valoare seed. Daca MOD este omis, valoarea implicita este random. -W fiier, --what-if=fiier, --new-file=fiier, --assume-new=fiier Pretinde ca obiectivul fiier tocmai a fost modificat. Atunci cand este utilizata cu opiunea -n, aceasta va arata ce s-ar intampla daca ai modifica fiierul respectiv. Fara -n, este aproape la fel ca i cum ai executa o comanda touch pe fiierul dat inainte de a executa make, cu excepia faptului ca timpul de modificare este schimbat doar in imaginaia lui make. --warn-undefined-variables Avertizeaza atunci cand se face referire la o variabila nedefinita. STARE DE IEIRE GNU Make iese cu o stare de zero daca toate fiierele de reete au fost analizate cu succes i nu a euat nicio inta construita. O stare de unu va fi returnata daca a fost utilizata opiunea -q i make determina ca o inta trebuie reconstruita. O stare de doi va fi returnata daca au fost intalnite erori. CONSULTAI I Documentaia completa pentru make este meninuta ca un manual Texinfo. Daca programele info i make sunt instalate corect in sistemul dvs., comanda info make ar trebui sa va permita accesul la manualul complet. ERORI Consultai capitolul ,,Problems and Bugs" din Manualul GNU Make. AUTOR Aceasta pagina de manual a fost realizata de Dennis Morse de la Universitatea Stanford. Actualizari suplimentare realizate de Mike Frysinger. A fost refacuta de Roland McGrath. Intreinuta de Paul Smith. DREPTURI DE AUTOR Drepturi de autor (C) 1992-1993, 1996-2023 Free Software Foundation, Inc. Acest fiier face parte din GNU Make. GNU Make este un software liber; il putei redistribui i/sau modifica in conformitate cu termenii Licenei Publice Generale GNU, aa cum a fost publicata de Free Software Foundation; fie versiunea 3 a licenei, fie (la alegerea dumneavoastra) orice versiune ulterioara. GNU Make este distribuit in sperana ca va fi util, dar FARA NICI O GARANIE; nici macar garania implicita de COMERCIALIZARE sau de ADECVARE LA UN SCOP PARTICULAR. Pentru mai multe detalii, consultai Licena publica generala GNU. Ar fi trebuit sa primii o copie a Licenei Publice Generale GNU impreuna cu acest program. Daca nu, consultai pagina http://www.gnu.org/licenses/. TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . GNU 26 mai 2023 MAKE(1)