没有通过目标时打印默认目标

时间:2018-11-30 11:09:28

标签: linux makefile gnu

我有以下非常简单的makefile代码段:

# Set the default goal to build.
.DEFAULT_GOAL = build
$(info BUILD GOALS: $(MAKECMDGOALS))

.PHONY: test
test:
    @echo testing

.PHONY: build
build:
    @echo building

当我不带参数(没有目标)调用make时,默认目标应该是build-看起来确实是(即,尽管测试是第一个目标)。

我的(非常小的)问题是我想打印当前的目标。因此,我尝试使用MAKECMDGOALS,但它只打印一个空值。如果我调用make buildmake test,则MAKECMDGOALS将显示相关值...但是当它也使用默认值时,我想显示构建目标。注意:我不只是想在目标规则中打印它-因为在我的真实makefile中,我有很多这样的东西,我只想使用makefile $(info ...)或类似的东西来打印当前的GOAL。

有可能吗?

1 个答案:

答案 0 :(得分:1)

您为什么不只打印.DEFAULT_GOAL

$(info BUILD GOALS: $(or $(MAKECMDGOALS),$(.DEFAULT_GOAL)))