Probablemente no deberías hacer esto; estás rompiendo el patrón básico de cómo funciona Make. Pero aqui esta:
action:
@echo action $(filter-out $@,$(MAKECMDGOALS))
%: # thanks to chakrit
@: # thanks to William Pursell
EDITAR:
Para explicar el primer comando,
$(MAKECMDGOALS) es la lista de "objetivos" detallada en la línea de comando, por ejemplo, "acción valor1 valor2".
$@es una variable automática para el nombre del destino de la regla, en este caso "acción".
filter-outes una función que elimina algunos elementos de una lista. Entonces $(filter-out bar, foo bar baz)regresa foo baz(puede ser más sutil, pero no necesitamos sutileza aquí).
Ponlos juntos y $(filter-out $@,$(MAKECMDGOALS))devuelve la lista de objetivos especificados en la línea de comando que no sean "acción", que podría ser "valor1 valor2".