¿Cómo definir funciones de shell globales en un Makefile?

Quiero definir una función de shell

#!/bin/sh

test ()
{
  do_some_complicated_tests $1 $2;
  if something; then
    build_thisway $1 $2;
  else
    build_otherway $1 $2;
  fi
}

de tal manera que pueda usarlo en todas las reglas de mi Makefile, tales como:

foo: bar
  test foo baz

Para que quede claro, quiero que la función de shell sea parte del Makefile. ¿Cuál es la forma más elegante de hacer esto? Puntos de bonificación si puede hacerlo sin tener que hacer recursivamente.

Antecedentes: mi problema real es quemake -n Produce una salida muy larga e ilegible. Cada regla usa casi la misma secuencia de comandos de shell ilegibles, y hay muchas reglas. La solución anterior haría que la salida demake -n más útil.

Respuestas a la pregunta(7)

Su respuesta a la pregunta