Makefile条件语句不起作用

时间:2015-03-04 17:42:12

标签: c netbeans makefile

我有以下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功能的变体。有人有什么建议吗?

1 个答案:

答案 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