我正在使用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
我如何解决我的问题?
答案 0 :(得分:3)
在第一种情况下,您错误输入了函数$(wildcard ...)
,因此您总是得不到任何结果。
在第二种情况下,test
的输出始终为空字符串。它将根据条件是否为真来设置退出代码,但是你没有检查它的退出代码,只检查它打印的输出,它总是什么都没有。