約 4.4 年間の開発を経て、GNU Make XNUMX ビルド システムがリリースされました。バグ修正に加えて、新しいバージョンには次の変更が含まれています。
- OS/2 (EMX)、AmigaOS、Xenix、Cray プラットフォームは非推奨となり、次のリリースではサポートが削除される予定です。
- ビルド環境の要件が増加し、GNU Gnulib をビルドするには、C99 標準の要素をサポートするコンパイラが必要になりました。
- 他のターゲットのビルドが完了するまで特定のターゲットのビルドを一時停止できる特別な .WAIT ビルド ターゲットを追加しました。
- 特別な .NOTPARALLEL ビルド ターゲットは、前提条件 (ターゲットのビルドに必要なファイル) を指定して、関連付けられているターゲットを順番に実行する機能を実装します (各前提条件の間に「.WAIT」が設定されているかのように)。
- 指定されたファイル、マスクに一致するファイル、または makefile 全体に対して中間ターゲット (.INTERMEDIATE) の使用に関連付けられた動作を無効にする特別なビルド ターゲット .NOTINTERMEDIATE が追加されました。
- $(let …) 関数が実装され、ユーザー定義関数内でローカル変数を定義できるようになりました。
- 数値を比較するための $(intcmp …) 関数を実装しました。
- 「-l」(--load-average)オプションを使用すると、実行するジョブの数を決定する際に、/proc/loadavg ファイルからのシステム負荷データが考慮されるようになりました。
- 前提条件をシャッフルするための「--shuffle」オプションが追加されました。これにより、並列ビルド中に非決定論的な動作を実現できます (たとえば、makefile 内の前提条件定義の正確さをファジング テストする場合)。
- mkfifo をサポートするシステムでは、ジョブの並列実行中にジョブサーバーと対話するための新しい方法が提供されます。この方法は、名前付きパイプに基づいています。名前なしパイプに基づく従来の方法に戻すには、オプション "--jobserver-style=pipe" を使用します。
- 作業中の一時ファイルの使用が拡張されました (ビルド システムが一時ファイル用の代替ディレクトリ (TMPDIR) を設定し、ビルド中に TMPDIR の内容を削除すると問題が発生する可能性があります)。
出所: オープンネット.ru
