首页 文章

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

提问于
浏览
8

我试图根据条件在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 回答

  • 10

    条件可能超出规则:

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

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

相关问题