我有以下makefile代码,其中ifeq
语句未评估为true,我不明白为什么不:
PROCESSOR=`uname -p`
ifeq ($(strip $(PROCESSOR)), x86_64)
PROCESSOR = -c -march=atom -fPIC -Wall -I../../inc
else
PROCESSOR = -c -march=i386 -fPIC -Wall -I../../inc
endif
我已在我的系统上确认uname -p
导致“x86_64”,但ifeq
语句评估为false,PROCESSOR
设置为-c -march=i386 -fPIC -Wall -I../../inc
。我还尝试了ifeq "$(strip $(PROCESSOR))" "x86_64"
和一些没有strip
功能的变体。有人有什么建议吗?
答案 0 :(得分:1)
反引号不能在makefile中执行命令。
在$(info $(PROCESSOR))
行上方添加ifeq
以查看我的意思。
你想:
PROCESSOR=$(shell uname -p)
$ cat Makefile
PROCESSOR=`uname -p`
$(info backticks: $(PROCESSOR))
PROCESSOR=$(shell uname -p)
$(info $$shell: $(PROCESSOR))
$ make
backticks: `uname -p`
$shell: x86_64