我正在尝试根据条件在Makefile中定义变量。因为ifeq只能在规则中运行,所以我为每个规则添加了一个额外的规则(def_rule)。
示例:
def_rule:
ifeq ($(TARGET), android)
CC=arm-linux-androideabi-gcc
else
echo "native build"
endf
all: def_rule tp xi_eid_chipset.o
不幸的是,调用make all会返回:
ifeq(linux,android)
/ bin / sh:语法错误:单词意外(期待“)”)
make:*** [def_rule]错误2
我无法弄清楚原因。我刚刚在GNU Make文档中关注了一些示例。
你知道如何在Makefile中做条件定义吗?
答案 0 :(得分:10)
条件可能超出规则:
ifeq ($(TARGET), android)
$(info Android)
CC=arm-linux-androideabi-gcc
else
$(info native build)
CC=something else
endif
(请注意,我在一些领先的空间里扔了,只是为了让它更容易阅读 - 它们既不必要也不危害。)