【发布时间】:2011-12-02 07:28:16
【问题描述】:
我通常有一个 MAKE_MODE 的环境设置(Windows XP,使用 GNU make,在 Cygwin 和本机下)
set MAKE_MODE=UNIX
我现在发现我的构建服务器(未定义 MAKE_MODE)和本地构建之间存在差异。这可能是完全不同的东西,但它让我想知道我可以为 MAKE_MODE 指定哪些其他值。
我想我知道 MAKE_MODE=UNIX 应该告诉 GNU make 使用 /bin/sh - 如果它找到了 - ,但我很快检查了 GNU make 手册并找不到描述。谷歌搜索只告诉我我已经知道的,但没有给出有效的替代方案。
是不定义变量的唯一选择吗?使用 CMD.exe 和原生版本的 GNU make 有影响吗?
编辑:到目前为止,我已经找到了值 'unix'、'win32'、'null' 和 undefined 的引用,但没有解释,也没有规范。但是看一下 GNU make 3.82 的源代码会发现没有一次出现字符串“MAKE_MODE”,因此 GNUmake 本身显然不会在设置或不设置此环境变量时改变其行为。
EDIT2:我检查了 MinGW 的 GNU make 的源代码,但又一无所获。也许是 CygWin 特有的?
EDIT3:我发现了一个reference,它可能是旧版 GNU make 的属性,所以我检查了 3.75 版。不走运,字符串 MAKE_MODE 根本没有出现在源代码中。下一步真的必须是 GNU make 的 Cygwin 版本。我从 10 年前就知道,当时的 Cygwin 端口并没有集成到常规的源代码树中。
【问题讨论】:
-
您能否详细说明您在构建服务器和本地构建之间看到的差异的本质?是不是有些文件没有建好?
-
@MaximYegorushkin 构建服务器问题有不同的原因,与此处提出的问题无关。这是我检查过的一个问题,但我已经解决了这个问题。然而,问题仍然存在,因为我过去无数次使用了 env 变量,但并没有真正知道它到底做了什么/做了什么,参见。我的回答如下。
标签: windows-xp cygwin gnu-make