Gnu make clearmake不';我不喜欢我的MAKEFLAGS=j12值
我同时使用GNU Make和-woe is me-ClearCase'clearmake 现在,GNU制作了一个名为Gnu make clearmake不';我不喜欢我的MAKEFLAGS=j12值,gnu-make,clearcase,clearmake,Gnu Make,Clearcase,Clearmake,我同时使用GNU Make和-woe is me-ClearCase'clearmake 现在,GNU制作了一个名为MAKEFLAGS的标志,在我使用的这个多核机器上,它对我来说被设置为j20。不幸的是,clearmake也能识别这个选项,但除了这个值之外,它没有其他功能。它告诉我: clearmake: Error: Bad option (j) clearmake: Error: Bad option (2) clearmake: Error: Bad option (0) 问题: 为什么
MAKEFLAGS
的标志,在我使用的这个多核机器上,它对我来说被设置为j20
。不幸的是,clearmake也能识别这个选项,但除了这个值之外,它没有其他功能。它告诉我:
clearmake: Error: Bad option (j)
clearmake: Error: Bad option (2)
clearmake: Error: Bad option (0)
问题:
–j [JOBS]
--jobs=[JOBS]
也许clearmake-C-J(用于测试)会有所帮助:并行构建的数量应该没有限制。我使用clearmake已经15年了,但假设它不支持您可以使用的:
export GNUMAKEFLAGS=-j20
然后让MAKEFLAGS保持未设置。您是否从clearmake构建脚本调用GNU make?或者您正在尝试创建一个支持这两种构建工具的makefile?我认为GNU制造特定值更安全。我也会用
- CCASE_MAKEFLAGS用于特定于clearmake的任何MAKEFLAGS
- CCASE_CONC设置并发值。虽然clearmake不再在MAKEFLAGS中传递-J,但它过去是这样的,如果您使用的是较旧的clearmake(我记得是7年代的某个地方),您可能会打乱“child”GNU make会话,因为他们喜欢-J的程度与clearmake喜欢-J的程度差不多
$(MAKE) $(MAKEFLAGS) TARGET=x
开始制作clearmake时是这样的:
clearmake -C gnu TARGET=Y
实际上,您将在命令行中获得两个目标宏定义。设置所提到的EV(根本)可以避免“在MAKEFLAGS中传递定义的宏”行为。之所以存在此开关,是因为有些人的makefile依赖于此行为,而其他人的makefile被此行为破坏
为了论证,假设您的公司与IBM或HCL签订了支持协议,现在是利用您的支持渠道提出clearmake问题的好时机。我不介意这是不受支持的,我只是希望clearmake忽略它,而不是抱怨…@einpoklum您需要在专用构建脚本中为此指定专用的MAKEFLAGS。这很有趣。。。一定会尝试一下。这只适用于GNU Make 4.0及更高版本;我使用的是v3.81系统。但是+1.GNU make 4.0是在大约7年前发布的。GNU make 3.81是14年前发布的。是时候升级您的工具了。GNUMAKEFLAGS仅适用于GNU Make 4.0及更高版本。