如何检查Makefile中是否存在文件

时间:2015-09-12 18:25:57

标签: makefile

我正在使用makefile在多个系统中构建我的程序。某些系统已安装colorgcc脚本。在我的Makefile中,我想检查脚本是否存在 并根据它我设置CC变量。但是我的Makefile无法正常工作 - 在系统中,没有colorgcc,make始终将$(CC)设置为colorgcc。这是Makefile的一部分:

ifneq ("$(wildchar /usr/bin/colorgcc)","") 
CC=colorgcc
else
CC=gcc
endif

我也试过使用这个变种:

ifeq ( $(shell test -e /usr/bin/colorgcc), ) 
CC=colorgcc
else
CC=gcc
endif

在这两种情况下,$(CC)都不依赖于存在文件/ usr / bin / colorgcc

我如何解决我的问题?

1 个答案:

答案 0 :(得分:3)

在第一种情况下,您错误输入了函数$(wildcard ...),因此您总是得不到任何结果。

在第二种情况下,test的输出始终为空字符串。它将根据条件是否为真来设置退出代码,但是你没有检查它的退出代码,只检查它打印的输出,它总是什么都没有。