首页 > 解决方案 > 没有目标通过时打印默认目标

问题描述

我有以下非常简单的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- 这似乎是(即 build 被调用而不是 test,即使 test 是第一个目标)。

我遇到的(非常小的)问题是我想打印当前的目标。所以我尝试使用 MAKECMDGOALS,但它只打印一个空值。如果我打电话make buildmake test然后 MAKECMDGOALS 显示相关值......但我想在使用默认值时显示构建目标。注意:我不只是想在目标规则中打印它 - 因为在我真正的 makefile 中我有很多这些,我只想使用 makefile $(info ...) 或类似的东西打印当前的目标。

那可能吗?

标签: linuxmakefilegnu

解决方案


你为什么不直接打印.DEFAULT_GOAL

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

推荐阅读