条件变量在Makefile中使用ifeq定义

时间:2011-06-29 16:21:41

标签: makefile conditional

我正在尝试根据条件在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中做条件定义吗?

1 个答案:

答案 0 :(得分:10)

条件可能超出规则:

ifeq ($(TARGET), android)
 $(info Android)
 CC=arm-linux-androideabi-gcc
else
 $(info native build)
 CC=something else
endif

(请注意,我在一些领先的空间里扔了,只是为了让它更容易阅读 - 它们既不必要也不危害。)