-1

如果设置了特定的环境变量,我想运行特定的规则,否则运行默认规则。test1 and test2例如,如果未设置环境变量,我想运行MYTARGETS1。但是使用下面的代码,test1当我使用make run命令时,规则总是在运行。

MYTARGETS1 ?= True 

ifeq (${MYTARGETS1},True)
MYTARGETS = test1 test2
else
MYTARGETS = test1
endif

test1:
    echo "test1"

test2:
    echo "test2"

run: common $(MYTARGETS)

common:
    echo "common"
4

1 回答 1

2

您的代码中有一个小错误。第一行应该是MYTARGETS1 ?= false或仅仅MYTARGETS1 ?=因为?=被称为条件赋值,意思是如果尚未设置变量,请使用您在此处分配的任何内容进行设置。如果您通过我建议的当前更改MYTARGETS1make那么makefile将根据您的要求工作

make MYTARGETS1=true
于 2013-08-26T03:50:19.597 回答