Effizienzsteigerung durch GNU Make 4.3 als Build-Tool

Nach einer Zeitspanne von gut dreieinhalb Jahren ist nun eine neue Version des Build-Management-Tools GNU Make erschienen. Dieses Release bietet mehrere neue Funktionen und Optionen und ebenfalls eine Verbesserung der Performance. Weiterhin soll die Benutzerfreundlichkeit durch eine verbesserte Fehlerbehandlung erhöht werden. Hierzu werden Fehlermeldungen bei nicht vorhandenen Befehlen nun konsistenter und aufgeräumter dargestellt.



Zu den nennenswerten Neuerungen gehört. Dass Makefiles nun in der Variable MAKEFLAGS die Option -j enthalten dürfen um GNU Make ähnelt im parallelen Modus auszuführen wie beim Start des Tools von der Kommandozeile mit dem -j-Parameter.


Kleine Ergänzungen


Über &: lassen sich nun aus einem Aufruf mehrere, gruppierte Targets erstellen. Damit weiß Make beim Erstellen eines der gruppierten Targets, dass die anderen in der Gruppe ähnlich wie durch den Aufruf erstellt werden. Beim Ausführen eines Recipe (Regelsatzes) für ein gruppiertes Target enthält die Variable $@ den Namen des Targets, das die Regel ausgelöst hat.



Neu ist zudem die Variable .EXTRA_PREREQS, mit der sich Vorbedingungen für Ziele festlegen lassen die das Tool jedoch beim Expandieren des Regelsatzes nicht an andere automatische Variablen weitergibt. Die neue Option -E ist schlicht ein Kürzel für -eval und die Option --no-silent überschreibt den Effekt des Flags s/--silent/--quiet.


Unter der Haube


GNU Make bringt neben den erweiterten Optionen einige Änderungen unter der Haube mit. Unter anderem nutzt es zum Erstellen von Kindprozessen die Funktion posix_spawn, wenn sie auf dem System verfügbar ist. Auf Windows sind nun beim Verwenden des -jN-Flags maximal 4095 statt wie bisher 63 Jobs erlaubt, also 212-1 statt 26-1 Jobs.



Außerdem arbeitet das Build-Management-Tool nun mit den aktuellen Varianten von GNUs Laufzeitbibliotheken libc und musl.


Weitere Details lassen sich der Ankündigung von GNU Make 4․3 entnehmen. Die vollständige Liste der Bugfixes findet sich auf der Entwicklerresource Savannah.


Zuletzt aktualisiert am Uhr



Kommentare


Anzeige