gpt4 book ai didi

makefile - 我可以判断是否在 Makefile 中使用了 --jobs 吗?

转载 作者:行者123 更新时间:2023-12-04 20:42:58 31 4
gpt4 key购买 nike

我想根据是否启用并行构建来设置一些变量,所以我尝试了这个:

jobs:
»·echo "executing jobs job"

ifneq (,$(findstring -j,$(MAKEFLAGS)))
»·$(warning "parallel!")
else
»·$(warning "not parallel!")
endif

这就是发生的事情:
$ make -j2
Makefile:2: "not parallel!"
echo "executing jobs job"
executing jobs job

我也试过测试 $(JOBS) ,但没有运气。

有没有办法让我在 Makefile 中告诉我使用了 --jobs 参数?

附加信息:
$ make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-pc-linux-gnu

最佳答案

令人惊讶的是,${MAKEFLAGS}只会获得-j当它在配方扩展时扩展时。

生成文件:

$(warning [${MAKEFLAGS}])

.PHONY: all
all:
$(warning [${MAKEFLAGS}])
echo Now do something useful

跑:
$ make -j5
1:1: []
1:5: [ -j --jobserver-fds=3,4]
echo Now do something useful
Now do something useful

关于makefile - 我可以判断是否在 Makefile 中使用了 --jobs 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22842644/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com