După aproape trei ani de dezvoltare, a avut loc lansarea sistemului de construire GNU Make 4.4. Pe lângă corectarea erorilor, în noua versiune se remarcă următoarele modificări:
- Platformele OS/2 (EMX), AmigaOS, Xenix și Cray au fost declarate învechite, iar suportul pentru acestea va fi întrerupt în următoarea versiune.
- Cerinețele pentru mediul de construire au fost ridicate; pentru a construi GNU Gnulib, acum este necesar un compilator care să suporte elemente din standardul C99.
- A fost adăugată o țintă de construire specială .WAIT, care permite suspendarea lansării construcției unor ținte până la finalizarea construcției altor ținte.
- În ținta de construire specială .NOTPARALLEL, a fost implementată opțiunea de a specifica prerechizite (fișiere necesare pentru construirea țintei) pentru lansarea secvențială a țintelor asociate (ca și cum între fiecare prerechizit ar fi fost setat un «.WAIT»).
- A fost introdusă o țintă de construire specială .NOTINTERMEDIATE, care dezactivează comportamentul legat de utilizarea țintelor intermediare (.INTERMEDIATE) pentru fișierele specificate, fișierele care se încadrează sub masca respectivă sau întregul makefile.
- A fost implementată funcția $(let …), care permite definirea variabilelor locale în funcțiile utilizatorului.
- A fost implementată funcția $(intcmp …) pentru compararea numerelor.
- Când se utilizează opțiunea «-l» (—load-average) pentru a determina numărul de lucrări lansate, acum se iau în considerare datele din fișierul /proc/loadavg referitoare la sarcina sistemului.
- A fost adăugată opțiunea «—shuffle» pentru a amesteca prerechizitele, ceea ce permite obținerea unui comportament nedeterminist în timpul construirii paralele (de exemplu, pentru testarea fuzzing a corectitudinii determinării prerechizitelor în makefile).
- Pe sistemele care suportă mkfifo, este asigurat un nou mod de interacțiune cu jobserver-ul în timpul execuției paralele a lucrărilor, bazat pe utilizarea canalelor nominalizate. Pentru a reveni la metoda veche bazată pe canale ne-nominalizate, a fost propusă opțiunea «—jobserver-style=pipe».
- Utilizarea fișierelor temporare în timpul execuției a fost extinsă (ar putea apărea probleme când sistemul de construire încearcă să seteze un director alternativ pentru fișierele temporare (TMPDIR) și să șteargă conținutul TMPDIR în timpul construcției).
Sursa: opennet.ro
