我想在Windows上使用nmake,但是如果不支持ifeq以实现我想要获得的东西。 OS detecting makefile
要解决ifeq不兼容问题,我决定使用 $(OS)属性。
include platf/$(OS)_make
目录布局
| Makefile
+---platf
| Makefile.linux
| Makefile.macos
| Makefile.win
| Windows_NT_make
| _make
这就像魅力,除了窗户再次。
#1如果文件platf / Windows_NT_make IS 存在,则会抱怨
makefile(4):致命错误U1052:文件'platf / $(OS)_make'未找到
#2如果文件platf / Windows_NT_make 不,则会抱怨
makefile(4):致命错误U1052:找不到文件'platf / Windows_NT_make'
所以,如果nmake能够决定$(OS)的值是什么(从#2看),为什么它会抱怨#1
答案 0 :(得分:0)
问题是斜杠字符,它从Makefile名称描述了platf目录。 它需要是" /"对于unix家庭和" \"对于Windows。
您需要知道哪个操作系统正确形成了名称。这可以通过以下几种方式解决:
我通过使用一个makefile并使用可移植脚本文件来确定操作系统并适当地编辑Makefile(使用sed)来解决问题。使用一个脚本和一个makefile,我可以在所有系统中移动。