我正在嘗試執行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
順便說一句'=='與'='同義' –