Ви, мабуть, не повинні цього робити; ви порушуєте основну схему того, як працює Make. Але ось це:
action:
@echo action $(filter-out $@,$(MAKECMDGOALS))
%: # thanks to chakrit
@: # thanks to William Pursell
EDIT:
Щоб пояснити першу команду,
$(MAKECMDGOALS) - це список "цілей", написаний у командному рядку, наприклад, "value value1 value2".
$@є автоматичною змінною для назви цілі правила, в даному випадку "дії".
filter-outце функція, яка видаляє деякі елементи зі списку. Отже, $(filter-out bar, foo bar baz)повертається foo baz(це може бути більш тонким, але тут нам не потрібні тонкощі).
Складіть їх разом і $(filter-out $@,$(MAKECMDGOALS))повертає список цілей, вказаних у командному рядку, відмінному від "action", який може бути "value1 value2".