Majdnem három év fejlesztés után megjelent a GNU Make 4.4 építési rendszer. A hibajavításon kívül az új verzióban a következő változásokat emelhetjük ki:
- Elavultnak nyilvánították az OS/2 (EMX), AmigaOS, Xenix és Cray platformokat, amelyek támogatása a következő kiadásban megszűnik.
- Növekedtek az építési környezet követelményei, a GNU Gnulib építéséhez mostantól C99 szabvány elemeit támogató fordító szükséges.
- Hozzáadva egy speciális építési cél, a .WAIT, amely lehetővé teszi bizonyos célok építésének elhalasztását, amíg más célok építése be nem fejeződik.
- A .NOTPARALLEL speciális építési célban megvalósult a pre-requisites (cél építéséhez szükséges fájlok) megadásának lehetősége a kapcsolódó célok sorozatos végrehajtásához (mintha minden pre-requisite között lenne egy .WAIT).
- Hozzáadva egy speciális építési cél, a .NOTINTERMEDIATE, amely letiltja a .INTERMEDIATE viselkedést megadott fájlok, fájlsablonok vagy az egész makefile esetén.
- Megvalósítva a $(let …) funkció, amely lehetővé teszi lokális változók definiálását felhasználói funkciókban.
- Megvalósítva a $(intcmp …) funkciót számok összehasonlítására.
- A '-l' (—load-average) opció használatakor a végrehajtandó munkák számának meghatározásakor figyelembe veszik a /proc/loadavg fájl terhelési adatait.
- Hozzáadva a '—shuffle' opciót a pre-requisites összekeverésére, ami lehetővé teszi a nem determinisztikus viselkedést párhuzamos építéskor (például fuzzing tesztelésnél a pre-requisites helyes meghatározásának ellenőrzésére a makefile-ban).
- Az mkfifo-t támogató rendszereken új módszert vezettek be a jobserver-rel való kommunikációra párhuzamos munka végrehajtásakor, amely névleges csatornák használatán alapul. A nem névleges csatornákon alapuló régi módszer visszanyerésére ajánljuk a '—jobserver-style=pipe' opciót.
- A munkafolyamat során bővült az ideiglenes fájlok használata (problémák merülhetnek fel, ha az építési rendszer alternatív könyvtárat állít be az ideiglenes fájlokhoz (TMPDIR) és eltávolítja a TMPDIR tartalmát az építés során).
Forrás: opennet.ru
