检查是否在makefile中设置了环境变量

时间:2014-08-08 04:27:54

标签: makefile

我在MAKEFILE中有以下代码,使用此代码,我想根据是否设置标志打印信息

ifeq ($(SET_FLAG),)
$(info ********not set************)
else
$(info *******set *********)
endif

然而,这给了我输出

********not set************

在终端上我做setenv SET_FLAG

和这个

*******set *********

当我做setenv SET_FLAG 1

但是,我想仅在设置SET_FLAG时进行测试,无论是否提供值。 有没有什么方法可以让上面的输出为

*******set *********

即使我做setenv SET_FLAG

1 个答案:

答案 0 :(得分:1)

如果您使用的是GNU Make,则可以使用

等解决方法
ifeq($(origin SET_FLAG),undefined)
    $(info not set)
else
    $(info set)
endif

或多或少来自http://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_6.html

另外,setenv表示您使用的是t?csh。使用标准的Bourne兼容shell(如果仅在您的问题的上下文中)可能会帮助您获得及时和正确的答案。