¿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.