我正在尝试使用Makefile条件检查文件是否存在。
我尝试了以下似乎不起作用的语法:
Path = /usr/local/myFileVer1
ifeq ($(wildcard $(Path)),)
version = 1
else
version = 2
endif
我认为如果文件不存在,那么通配符语句将计算为空字符串,因此它将落入else语句中。那种情况没有发生。
知道我还能尝试什么吗?
答案 0 :(得分:1)
Make与所有UNIX实用程序一样,区分大小写。 PATH
与Path
不同。
此外,您不应该设置变量PATH
,因为这会在调用命令时更改PATH
,然后您的食谱将全部失败。
答案 1 :(得分:1)
您接近语法。你可以尝试这样的事情:
File = /usr/local/myFileVer1
ifeq ($(wildcard $(File)),)
all:
echo 1
else
all:
echo 2
endif
或者更好的是,您可以编写两个单独的makefile并将它们包含在正确的位置:
File = /usr/local/myFileVer1
ifeq ($(wildcard $(File)),)
include Makefile1.mk
else
include Makefile2.mk
endif