Provided by: manpages-ro_4.23.1-1_all bug

NUME

       make - ustensila GNU make pentru a menține grupuri de programe

SINOPSIS

       make [OPȚIUNE]... [ȚINTĂ]...

DESCRIERE

       Ustensila  make  va  determina  în mod automat care părți 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 scrisă de Richard Stallman și Roland McGrath și este în prezent întreținută de Paul Smith. Exemplele
       noastre prezintă programe C, deoarece acestea sunt foarte comune, dar puteți utiliza make cu orice limbaj
       de  programare  al  cărui  compilator poate fi rulat cu o comandă shell. De fapt, make nu este limitat la
       programe. Îl puteți utiliza pentru a  descrie  orice  sarcină  în  care  unele  fișiere  trebuie  să  fie
       actualizate automat din altele ori de câte ori acestea se modifică.

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

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

              make

       este  suficientă  pentru  a  efectua  toate  recompilările necesare. Programul make utilizează descrierea
       fișierului makefile și orele ultimei modificări a fișierelor pentru a decide care dintre fișiere  trebuie
       actualizate. Pentru fiecare dintre aceste fișiere, el emite comenzile înregistrate în makefile.

       make  execută  comenzile din makefile pentru a actualiza unul sau mai multe nume țintă, unde nume este de
       obicei un program. Dacă nu este prezentă opțiunea -f,  make  va  căuta  fișierele  makefile  GNUmakefile,
       makefile și Makefile, în această ordine.

       În  mod  normal,  ar  trebui  să  numiți  fișierul  „makefile”  fie makefile, fie Makefile; (se recomandă
       Makefile, deoarece apare în mod proeminent la începutul  unei  liste  de  directoare,  chiar  lângă  alte
       fișiere  importante,  cum  ar  fi  README). Primul nume verificat, GNUmakefile, nu este recomandat pentru
       majoritatea fișierelor „makefile”. Ar trebui să folosiți acest nume dacă aveți un  „makefile”  care  este
       specific  GNU  make și care nu va fi înțeles de alte versiuni de make. Dacă makefile este „-”, se citește
       intrarea standard.

       make actualizează o țintă în cazul în  care  aceasta  depinde  de  fișiere  premergătoare  care  au  fost
       modificate de la ultima modificare a țintei sau în cazul în care aceasta nu există.

OPȚIUNI

       -b, -m
            Aceste opțiuni sunt ignorate pentru compatibilitate cu alte versiuni de make.

       -B, --always-make
            Face în mod necondiționat toate țintele.

       -C director, --directory=director
            Schimbă  la directorul director înainte de a citi fișierele „makefiles” sau de a face orice altceva.
            Dacă sunt specificate mai multe opțiuni -C, fiecare dintre ele este interpretată în  raport  cu  cea
            anterioară:  -C / -C etc este echivalent cu -C /etc. Acest lucru este utilizat de obicei cu invocări
            recursive ale make.

       -d   Afișează informații de depanare în plus față de procesarea normală. Informațiile de  depanării  spun
            ce  fișiere  sunt  luate  în considerare pentru refacere, ce timpi de fișier sunt comparați și cu ce
            rezultate, ce fișiere trebuie refăcute, ce reguli implicite sunt luate în considerare și  care  sunt
            aplicate - tot ceea ce este interesant despre modul în care make decide ce să facă.

       --debug[=FANIOANE]
            Afișează  informații  de  depanare  în  plus față de procesarea normală. Dacă FANIOANELE sunt omise,
            atunci comportamentul este același ca și în cazul în care ar fi fost specificată -d. FANIOANE  poate
            fi  a  pentru  toate ieșirile de depanare (la fel ca la utilizarea -d), b pentru depanare de bază, v
            pentru depanare de bază mai detaliată, i pentru  afișarea  regulilor  implicite,  j  pentru  detalii
            privind invocarea comenzilor și m pentru depanare în timpul refacerii fișierelor makefile. Utilizați
            n pentru a dezactiva toate fanioanele de depanare anterioare.

       -e, --environment-overrides
            Acordă variabilelor preluate din mediu prioritate față de variabilele din fișierele makefile.

       -f file, --file=fișier, --makefile=FIȘIER
            Folosește fișier ca fișier makefile.

       -i, --ignore-errors
            Ignoră toate erorile din comenzile executate pentru refacerea fișierelor.

       -I director, --include-dir=director
            Specifică  un  director  director  în  care se caută fișierele makefile incluse. În cazul în care se
            utilizează mai multe opțiuni -I pentru a specifica mai multe directoare, directoarele  sunt  căutate
            în  ordinea  specificată.  Spre deosebire de argumentele altor opțiuni de make, directoarele date cu
            opțiunea -I pot veni direct după opțiune: -Idirector este permis, precum  și  -I  director.  Această
            sintaxă este permisă pentru compatibilitate cu indicatorul -I al preprocesorului C.

       -j [lucrări], --jobs[=lucrări]
            Specifică  numărul de lucrări (comenzi) care trebuie să ruleze simultan. În cazul în care există mai
            multe opțiuni -j, ultima este cea care are efect. Dacă opțiunea -j este dată fără un argument,  make
            nu va limita numărul de lucrări care pot fi executate simultan. Atunci când make invocă un sub-make,
            toate  instanțele  make  se  vor coordona pentru a rula simultan numărul specificat de lucrări; a se
            vedea secțiunea MAKE ÎN PARALEL ȘI SERVERUL DE LUCRĂRI pentru detalii.

       --jobserver-fds [R,W]
            Opțiunea internă pe care make o folosește pentru a transmite numerele descriptorilor de  fișiere  de
            citire  și scriere a conductelor de la serverul de lucrări către sub-make; a se vedea secțiunea MAKE
            ÎN PARALEL ȘI SERVERUL DE LUCRĂRI pentru detalii.

       -k, --keep-going
            Continuă cât mai mult posibil după o eroare. În timp ce obiectivul care a eșuat și cele care  depind
            de  acesta  nu  pot  fi  refăcute,  celelalte  dependențe  ale acestor obiective pot fi procesate în
            continuare.

       -l [medie-încărcare], --load-average[=medie-încărcare]
            Specifică faptul că nu trebuie să se pornească noi lucrări (comenzi) dacă  există  alte  lucrări  în
            curs  de  execuție și dacă media de încărcare este de cel puțin medie-încărcare (un număr în virgulă
            mobilă). Fără nici un argument, elimină o limită de încărcare anterioară.

       -L, --check-symlink-times
            Utilizează cel mai recent timp mtime între legăturile simbolice și țintă.

       -n, --just-print, --dry-run, --recon
            Afișează comenzile care ar trebui executate, dar nu le execută (cu excepția anumitor circumstanțe).

       -o fișier, --old-file=fișier, --assume-old=fișier
            Nu reface fișierul fișier chiar dacă este mai vechi decât dependențele sale și nu reface  nimic  din
            cauza  modificărilor din fișier. În esență, fișierul este tratat ca fiind foarte vechi, iar regulile
            sale sunt ignorate.

       -O[tip], --output-sync[=tip]
            Când se execută mai multe lucrări în paralel cu -j, se asigură că rezultatele fiecărei lucrări  sunt
            colectate  împreună  și nu intercalate cu rezultatele altor lucrări. Dacă tip nu este specificat sau
            este target, ieșirea de la întreaga rețetă pentru fiecare țintă este grupată împreună. Dacă tip este
            line, se grupează ieșirile de la fiecare linie de comandă din cadrul  unei  rețete.  Dacă  tip  este
            recurse,  se  grupează  ieșirile de la o întreagă rețetă recursiv. Dacă tip este none, sincronizarea
            ieșirii este dezactivată.

       -p, --print-data-base
            Afișează baza de date (reguli și valori ale variabilelor) care rezultă  din  citirea  fișierelor  de
            rețete  „makefile”;  apoi  execută ca de obicei sau astfel cum este specificat. Aceasta afișează, de
            asemenea, informațiile despre versiune date de opțiunea -v (a se vedea mai jos). Pentru a afișa baza
            de date fără a încerca să refaceți niciun fișier, utilizați make -p -f/dev/null.

       -q, --question
            Activează „modul de întrebare”. Nu execută nicio comandă și nu afișează  nimic;  returnează  doar  o
            stare de ieșire care este zero dacă țintele specificate sunt deja actualizate, altfel nu este zero.

       -r, --no-builtin-rules
            Elimină  utilizarea  regulilor implicite încorporate. De asemenea, elimină lista implicită de sufixe
            pentru regulile de sufixare.

       -R, --no-builtin-variables
            Nu definește nicio variabilă încorporată.

       -s, --silent, --quiet
            Operare silențioasă; nu se afișează comenzile pe măsură ce sunt executate.

       -S, --no-keep-going, --stop
            Anulează efectul opțiunii -k. Acest lucru nu este niciodată necesar, cu excepția unui make  recursiv
            în  care -k ar putea fi moștenit de la make de nivel superior prin MAKEFLAGS sau dacă ați definit -k
            în MAKEFLAGS în mediul dumneavoastră.

       -t, --touch
            Accesează fișierele (le marchează la data curentă fără a le modifica cu adevărat) în loc să  execute
            comenzile  acestora.  Acest  lucru  este  folosit  pentru a pretinde că au fost executate comenzile,
            pentru a păcăli viitoarele invocări ale lui make.

       --trace
            Sunt afișate informații despre dispoziția fiecărei ținte  (de  ce  este  reconstruită  ținta  și  ce
            comenzi sunt executate pentru a o reconstrui).

       -v, --version
            Imprimă  versiunea programului make plus drepturile de autor, o listă a autorilor și o notificare că
            nu există nicio garanție.

       -w, --print-directory
            Afișează un mesaj care conține directorul de lucru înainte și după alte procesări. Acest lucru poate
            fi util pentru depistarea erorilor din imbricări complicate de comenzi make recursive.

       --no-print-directory
            Dezactivează -w, chiar dacă a fost activată implicit.

       -W fișier, --what-if=fișier, --new-file=fișier, --assume-new=fișier
            Pretinde că obiectivul fișier tocmai a fost modificat. Atunci când este utilizată  cu  opțiunea  -n,
            aceasta vă arată ce s-ar întâmpla dacă ați modifica fișierul respectiv. Fără -n, este aproape la fel
            ca  și  cum  ați  executa  o  comandă  touch  pe fișierul dat înainte de a executa make, cu excepția
            faptului că timpul de modificare este schimbat doar în imaginația lui make.

       --warn-undefined-variables
            Avertizează atunci când se face referire la o variabilă nedefinită.

STARE DE IEȘIRE

       GNU make iese cu o stare de zero dacă toate fișierele de rețete au fost analizate cu succes și nu a eșuat
       nicio țintă construită. O stare de unu va fi  returnată  dacă  a  fost  utilizată  opțiunea  -q  și  make
       determină că o țintă trebuie reconstruită. O stare de doi va fi returnată dacă au fost întâlnite erori.

CONSULTAȚI ȘI

       Documentația  completă pentru make este menținută ca un manual Texinfo. Dacă programele info și make sunt
       instalate corect în sistemul dvs., comanda

              info make

       ar trebui să vă ofere acces la manualul complet. În plus, manualul este disponibil și  online  la  adresa
       https://www.gnu.org/software/make/manual/html_node/index.html.

MAKE ÎN PARALEL ȘI SERVERUL DE LUCRĂRI

       Utilizând  opțiunea  -j, utilizatorul poate instrui make să execute sarcini în paralel. Prin specificarea
       unui argument numeric pentru -j, utilizatorul poate specifica o limită superioară a numărului de  sarcini
       paralele care urmează să fie executate.

       Atunci  când mediul de construcție este de așa natură încât un make de nivel superior invocă sub-make (de
       exemplu, un stil în care fiecare subdirector conține propriul Makefile ), nici o instanță  individuală  a
       make  nu  știe  câte  sarcini rulează în paralel, astfel încât menținerea numărului de sarcini sub limita
       superioară ar fi imposibilă fără o comunicare  între  toate  instanțele  make  care  rulează.  Deși  sunt
       fezabile  soluții cum ar fi ca nivelul superior make să servească drept controlor central sau se pot crea
       alte mecanisme de sincronizare,  cum  ar  fi  memoria  partajată  sau  soclurile,  implementarea  actuală
       utilizează o simplă conductă partajată.

       Această conductă este creată de procesul make de nivel superior și transmisă tuturor proceselor sub-make.
       Procesul  make de nivel superior scrie N-1 jetoane de un octet în conductă (se presupune că make de nivel
       superior își rezervă un jeton pentru el însuși). Ori de câte ori oricare dintre procesele make  (inclusiv
       make  de  nivel  superior) trebuie să execute o nouă sarcină, citește un octet din conducta partajată. În
       cazul în care nu mai există jetoane, trebuie să aștepte ca un jeton să  fie  scris  înapoi  în  conductă.
       Odată  ce  sarcina  este  finalizată,  procesul  make scrie din nou un jeton în conductă (și astfel, dacă
       jetoanele au fost epuizate, deblochează primul proces make care aștepta să citească un  jeton).  Deoarece
       numai  N-1  jetoane au fost scrise în conductă, nu pot fi în curs de execuție mai mult de N sarcini la un
       moment dat.

       În cazul în care lucrarea care urmează să fie executată nu este  un  sub-make,  atunci  make  va  închide
       descriptorii de fișiere de conductă de la serverul de lucrări înainte de a invoca comenzile, astfel încât
       comanda  să  nu  poată  interfera  cu serverul de lucrări, și comanda să nu găsească niciun descriptor de
       fișiere neobișnuit.

ERORI

       Consultați capitolul „Problems and Bugs” din Manualul GNU Make.

AUTOR

       Această pagină de manual a fost realizată de Dennis  Morse  de  la  Universitatea  Stanford.  Actualizări
       suplimentare realizate de Mike Frysinger. A fost refăcută de Roland McGrath. Întreținută de Paul Smith.

DREPTURI DE AUTOR

       Drepturi  de  autor © 1992-1993, 1996-2016 Free Software Foundation, Inc. Acest fișier face parte din GNU
       make.

       GNU Make este un software liber; îl puteți  redistribui  și/sau  modifica  în  conformitate  cu  termenii
       Licenței  Publice  Generale  GNU, așa cum a fost publicată de Free Software Foundation; fie versiunea 3 a
       licenței, fie (la alegerea dumneavoastră) orice versiune ulterioară.

       GNU Make este distribuit în speranța că va fi util,  dar  FĂRĂ  NICI  O  GARANȚIE;  nici  măcar  garanția
       implicită  de  COMERCIALIZARE sau de ADECVARE LA UN SCOP PARTICULAR. Pentru mai multe detalii, consultați
       Licența publică generală GNU.

       Ar fi trebuit să primiți o copie a Licenței Publice Generale GNU împreună  cu  acest  program.  Dacă  nu,
       consultați pagina http://www.gnu.org/licenses/..

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel   Chelu
       <remusgabriel.chelu@disroot.org>

       Această traducere este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3  sau  o
       versiune   ulterioară   cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se  asumă  NICIO
       RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui manual, vă rugăm să  trimiteți  un  e-mail  la  translation-team-
       ro@lists.sourceforge.net.

GNU                                             28 februarie 2016                                        MAKE(1)