Közel három évnyi fejlesztés után megjelent a GNU Make 4.4. A hibajavítások mellett az új verzió a következő változtatásokat tartalmazza:
- Az OS/2 (EMX), AmigaOS, Xenix és Cray platformok elavultak, és a következő kiadásban eltávolításra kerülnek a támogatásból.
- A fordítási környezet követelményei megnőttek; a GNU Gnulib fordításához mostantól olyan fordítóprogramra van szükség, amely támogatja a C99 szabvány elemeit.
- Hozzáadtunk egy speciális .WAIT build célt, amely lehetővé teszi bizonyos célok építésének szüneteltetését, amíg a többi cél építése be nem fejeződik.
- A speciális .NOTPARALLEL build célpont lehetővé teszi az előfeltételek (a célpont felépítéséhez szükséges fájlok) megadását a társított célpontok szekvenciális futtatásához (mintha ".WAIT" lenne beállítva az egyes előfeltételek között).
- Hozzáadtunk egy speciális .NOTINTERMEDIATE fordítási célt, amely letiltja a köztes célok (.INTERMEDIATE) használatával járó viselkedést a megadott fájlok, a maszknak megfelelő fájlok vagy a teljes makefile esetében.
- A $(let …) függvény implementálva lett, lehetővé téve a lokális változók definiálását a felhasználó által definiált függvényekben.
- Implementáltam a $(intcmp …) függvényt a számok összehasonlításához.
- A "-l" (--load-average) kapcsoló használatakor a /proc/loadavg fájlban található rendszerterhelési adatokat a rendszer mostantól figyelembe veszi a futtatandó feladatok számának meghatározásakor.
- Hozzáadva a "--shuffle" opció az előfeltételek keveréséhez, amely lehetővé teszi a nem determinisztikus viselkedést párhuzamos buildek során (például a makefile-ban található előfeltételdefiníciók helyességének fuzz teszteléséhez).
- Az mkfifo támogatással rendelkező rendszereken egy új módszer támogatott a jobserverrel való interakcióra párhuzamos feladatok végrehajtása során, amely a nevesített csöveken alapul. A régebbi, névtelen csöveket használó metódushoz való visszatéréshez a "--jobserver-style=pipe" opció érhető el.
- Bővítették az ideiglenes fájlok használatát működés közben (problémák merülhetnek fel, amikor a build rendszer egy alternatív könyvtárat állít be az ideiglenes fájlok számára (TMPDIR), és törli a TMPDIR tartalmát a build során).
Forrás: opennet.ru
