我正在尝试执行make语句来检查体系结构。我很接近得到它工作:Makefile条件错误
test:
ifeq ("$(shell arch)", "armv7l")
echo "This is an arm system"
else
echo "This is not an arm system."
endif
我有一个问题:尽管这似乎决心ifeq ("i386", "armv7l")
这应该是假的,我得到以下错误:
$ make
ifeq ("i386", "armv7l")
/bin/sh: -c: line 0: syntax error near unexpected token `"i386",'
/bin/sh: -c: line 0: `ifeq ("i386", "armv7l")'
make: *** [test] Error 2
所以,解决了两个字符串相互比较,但是存在语法错误。这里有什么问题?
它是如何更清晰的可以吗?我只是想检查体系结构并有条件地执行语句。但谢谢你的答案。公认。 –
如果你真的只想在每一个配方行中写一个if语句,那么我同意它很清楚。然而,大多数情况下,人们真的想做更多的事情,比如使用不同的编译器标志或者不同的编译器,添加不同的源文件等。有很多更好的方法来做这些事情,比添加大量if - 所有makefile文件中的语句。 – MadScientist
顺便说一句'=='与'='同义' –