GNU Make:检查并行作业数 [英] GNU Make: Check number of parallel jobs

查看:14
本文介绍了GNU Make:检查并行作业数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想向一个(GNU)生成文件添加一个快速检查,它可以提醒用户-j/--jobs(并行生成)的可用性。也就是说,类似于

$ make
  TIP: this will build faster if you use use "make -j"
  Building ..

$ make -j 
  Building in parallel ..

如何确定执行Makefile时的并行作业数?

这里有一个诀窍 http://blog.jgc.org/2015/03/gnu-make-insanity-finding-value-of-j.html

并建议对GNU进行更改 https://github.com/esantoro/make/commit/b0334e7f3009dc58dbc8e6e6fdec94711537fb3b

但也许有更新和/或更容易的东西。

推荐答案

最简单/最好的解决方案是将您的GNU make版本升级到4.2或更高版本。从该版本开始,MAKEFLAGS变量将提供包括数字在内的完整-j选项。新闻文件说:

  • 并行度可以通过查询MAKEFLAGS来确定,即使在 作业服务器已启用(以前,MAKEFLAGS将始终仅包含 ";-j";,无编号)。

所以:

$ make --version
GNU Make 4.2.1
    ...

$ echo 'all:;@echo $(MAKEFLAGS)' | make -f-

$ echo 'all:;@echo $(MAKEFLAGS)' | make -f- -j
-j
$ echo 'all:;@echo $(MAKEFLAGS)' | make -f- -j10
-j10 --jobserver-auth=3,4
$ echo 'all:;@echo $(patsubst -j%,%,$(filter -j%,$(MAKEFLAGS)))' | make -f- -j10
10

这篇关于GNU Make:检查并行作业数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆