GNU Make 4.4 构建系统发布

经过将近三年的开发,GNU Make 4.4 构建系统发布了。 除了修复错误之外,新版本中还可以注意到以下更改:

  • OS/2 (EMX)、AmigaOS、Xenix 和 Cray 平台已被弃用,并将在未来的版本中弃用。
  • 构建环境的要求已经增加,要构建 GNU Gnulib,您现在需要一个支持 C99 标准元素的编译器。
  • 添加了一个特殊的 .WAIT 构建目标,允许您暂停启动某些目标的构建,直到其他目标的构建完成。
  • 在特殊的构建目标 .NOTPARALLEL 中,实现了指定先决条件(构建目标所需的文件)的能力,以顺序启动与其关联的目标(就好像在每个先决条件之间设置了“.WAIT”)。
  • 添加了一个特殊的构建目标 .NOTINTERMEDIATE,它禁用与指定文件、与掩码匹配的文件或整个 makefile 使用中间目标 (.INTERMEDIATE) 相关的行为。
  • 实现了 $(let ...) 函数,它允许您在用户定义的函数中定义局部变量。
  • 实现了用于比较数字的 $(intcmp ...) 函数。
  • 使用“-l”(--load-average)选项时,要启动的作业数现在会考虑文件 /proc/loadavg 中有关系统负载的数据。
  • 添加了“--shuffle”选项来打乱先决条件,允许在并行构建中实现非确定性行为(例如,模糊测试在 makefile 中定义先决条件的正确性)。
  • 在支持 mkfifo 的系统上,提供了一种与作业服务器交互的新方法,用于基于命名管道的使用并行执行作业。 要返回基于未命名管道的旧方法,建议使用选项“--jobserver-style=pipe”。
  • 工作过程中临时文件的使用得到了扩展(构建系统为临时文件(TMPDIR)设置替代目录并在构建过程中删除 TMPDIR 的内容时可能会出现问题)。

来源: opennet.ru

添加评论