在OSX上使用nmake?

时间:2010-08-14 11:54:10

标签: macos nmake wine

我正在将应用程序移植到MacOS X - 但原始开发人员的构建系统使用NMAKE,理想情况下他们希望保留它而不是切换到新的。

我设法使用wine(使用MacPorts构建)在OSX下运行NMAKE,并为构建文件添加了Objective C支持,并创建了一个Unix链接的PE包装器'run.exe',可以加载wine但使用POSIX回调像gcc和ld这样的东西,就像网上各种各样的地方所描述的那样,可以将葡萄酒带回到Unix中。

但是,我遇到了一些具体问题。它们很小,我可以使用端口,但它确实意味着我需要运行构建几次,因为时间。

基本上,当wine.exe调用shell并因此调用gcc时,子进程之间的链接似乎被打破了。即使在失败时,gcc和ld也永远不会返回错误代码,因为它们无法从其生成的子代中获取退出代码。 ar实际上会打印出它无法找到它的子节点并立即返回,当ld尝试将目标文件链接到仍然放在一起的库时会导致问题。

在OSX或其他地方有没有其他人尝试过类似的东西并且看到同样的问题?有明显的解决方案吗?

2 个答案:

答案 0 :(得分:1)

Microsoft .NET Rotor(SSCLI)项目包含源代码,旨在构建在OSX和其他地方。 Rotor源代码包含NMake的源代码。所以让Rotor工作,然后使用它的Nmake。即使您更喜欢继续使用基于Wine的Nmake,您也可以从Rotor在Unix上使用Nmake,使用Gcc等方面学习。

答案 1 :(得分:0)

如果原始开发人员构建系统没有任何奇怪/不一致的内容,您是否可以将其make文件自动转换回Unix make,并保持构建“本机”?

(无论如何都要充足,没有额外的复杂情况)