Напечатайте цель по умолчанию, если цель не достигнута - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть следующий очень простой фрагмент make-файла:

# 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 - что, по-видимому,быть (то есть сборка вызывается, а не тестируется, хотя test является первой целью).

(Очень незначительная) проблема, с которой я столкнулся, заключается в том, что я хочу напечатать текущую ЦЕЛЬ.Поэтому я попытался с MAKECMDGOALS, но он просто печатает пустое значение.Если я позвоню make build или make test, то MAKECMDGOALS покажет соответствующее значение ... но я хочу показать цель сборки, когда она также использует значение по умолчанию.Примечание: я не просто хочу напечатать его в целевом правиле - поскольку в моем реальном make-файле их много, я просто хочу напечатать текущую ЦЕЛЬ, используя make-файл $ (info ...) или что-то подобное.

Возможно ли это?

1 Ответ

0 голосов
/ 30 ноября 2018

Почему бы вам просто не напечатать .DEFAULT_GOAL?

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