Po prawie trzech latach rozwoju wydano system kompilacji GNU Make 4.4. Oprócz naprawy błędów w nowej wersji można zauważyć następujące zmiany:
- Platformy OS/2 (EMX), AmigaOS, Xenix i Cray są przestarzałe i zostaną wycofane w przyszłej wersji.
- Zwiększono wymagania dla środowiska budowania, do zbudowania GNU Gnulib potrzebny jest teraz kompilator obsługujący elementy ze standardu C99.
- Dodano specjalny cel budowania .OCZEKAJ, który umożliwia wstrzymanie uruchamiania niektórych celów do czasu zakończenia budowania innych celów.
- W specjalnym celu kompilacji .NOTPARALLEL zaimplementowano możliwość określenia wymagań wstępnych (plików niezbędnych do zbudowania celu) w celu sekwencyjnego uruchamiania powiązanych z nimi celów (tak jakby między każdym warunkiem wstępnym ustawiono „.WAIT”).
- Dodano specjalny cel kompilacji .NOTINTERMEDIATE, który wyłącza zachowanie związane z używaniem celów pośrednich (.INTERMEDIATE) dla określonych plików, plików pasujących do maski lub całego pliku makefile.
- Zaimplementowano funkcję $(let...), która umożliwia definiowanie zmiennych lokalnych w funkcjach zdefiniowanych przez użytkownika.
- Zaimplementowano funkcję $(intcmp ...) do porównywania liczb.
- Podczas korzystania z opcji „-l” (--load-average) liczba zadań do uruchomienia uwzględnia teraz dane z pliku /proc/loadavg o obciążeniu systemu.
- Dodano opcję „--shuffle” do losowania wymagań wstępnych, która pozwala na uzyskanie niedeterministycznego zachowania w równoległych kompilacjach (na przykład fuzz test poprawności zdefiniowania wymagań wstępnych w makefile).
- W systemach z obsługą mkfifo udostępniono nowy sposób interakcji z serwerem zadań podczas równoległego wykonywania zadań oparty na wykorzystaniu nazwanych potoków. Aby przywrócić starą metodę opartą na nienazwanych potokach, zaproponowano opcję „--jobserver-style=pipe”.
- Rozszerzono wykorzystanie plików tymczasowych w procesie pracy (problemy mogą pojawić się, gdy system budujący ustawi alternatywny katalog dla plików tymczasowych (TMPDIR) i usunie zawartość TMPDIR podczas budowania).
Źródło: opennet.ru