Вы можете увидеть, каковы цели цели, посмотрев на переменную MAKECMDGOALS
.
Таким образом, вы можете сделать что-то вроде:
ifeq (,$(if $(MAKECMDGOALS),$(filter-out all prerequisite-2,$(MAKECMDGOALS))))
include prerequisite-2
endif
Условие if будет истинным, если MAKECMDGOALS
- пустая строка, или если она содержит только all
и / или prerequisite-2
, но не если она содержит какую-либо другую цель.
Обычно это не то, что вам нужно. Обычно вы хотите отключить включение, только если используются определенные цели (clean
- пример classi c).
Эта точная ситуация даже обсуждается в руководстве GNU make .