Gnu make clearmake不';我不喜欢我的MAKEFLAGS=j12值

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) 问题: 为什么

我同时使用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)
问题:

  • 为什么会这样?ClearMake应该适应GNU Make的使用吗
  • 除了反复关闭和打开国旗,我怎样才能避开它
  • “”在其T“unsupported Gnu make features”中明确指出,确实不支持此选项

    –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的程度差不多
    最后,检查env_ccase手册页中ccase_MAKEFLAGS_V6_过时中提到的行为。如果在构建脚本中显式传递MAKEFLAGS,如

    $(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及更高版本。