Veröffentlichung des GNU Make 4.4 Build-Systems

Nach fast dreijähriger Entwicklungszeit wurde das Buildsystem GNU Make 4.4 veröffentlicht. Neben der Behebung von Fehlern sind in der neuen Version folgende Änderungen zu verzeichnen:

  • Die Plattformen OS/2 (EMX), AmigaOS, Xenix und Cray sind veraltet und werden in einer zukünftigen Version veraltet sein.
  • Die Anforderungen an die Build-Umgebung wurden erhöht, zum Erstellen von GNU Gnulib benötigt man nun einen Compiler, der Elemente aus dem C99-Standard unterstützt.
  • Es wurde ein spezielles .WAIT-Build-Ziel hinzugefügt, mit dem Sie den Start des Builds bestimmter Ziele anhalten können, bis der Build anderer Ziele abgeschlossen ist.
  • Im speziellen Build-Ziel .NOTPARALLEL ist die Möglichkeit implementiert, Voraussetzungen (zum Erstellen des Ziels erforderliche Dateien) anzugeben, um die damit verbundenen Ziele nacheinander zu starten (als ob „.WAIT“ zwischen den einzelnen Voraussetzungen festgelegt wäre).
  • Es wurde ein spezielles Build-Ziel .NOTINTERMEDIATE hinzugefügt, das das Verhalten im Zusammenhang mit der Verwendung von Zwischenzielen (.INTERMEDIATE) für bestimmte Dateien, Dateien, die der Maske entsprechen, oder das gesamte Makefile deaktiviert.
  • Die Funktion $(let ...) wurde implementiert, mit der Sie lokale Variablen in benutzerdefinierten Funktionen definieren können.
  • Die Funktion $(intcmp ...) zum Vergleichen von Zahlen wurde implementiert.
  • Bei Verwendung der Option „-l“ (--load-average) berücksichtigt die Anzahl der zu startenden Jobs nun die Daten aus der Datei /proc/loadavg über die Auslastung des Systems.
  • Option „--shuffle“ zum Mischen von Voraussetzungen hinzugefügt, die es ermöglicht, nicht deterministisches Verhalten in parallelisierten Builds zu erreichen (z. B. um Fuzz-Tests der Richtigkeit der Definition von Voraussetzungen in einem Makefile durchzuführen).
  • Auf Systemen mit mkfifo-Unterstützung wird eine neue Methode zur Interaktion mit dem Jobserver während der parallelen Ausführung von Jobs bereitgestellt, die auf der Verwendung benannter Pipes basiert. Um die alte Methode basierend auf unbenannten Pipes zurückzugeben, wurde die Option „--jobserver-style=pipe“ vorgeschlagen.
  • Die Verwendung temporärer Dateien im Arbeitsprozess wurde erweitert (es können Probleme auftreten, wenn das Build-System ein alternatives Verzeichnis für temporäre Dateien (TMPDIR) festlegt und den Inhalt von TMPDIR während des Builds löscht).

Source: opennet.ru

Kommentar hinzufügen