Wie definiere ich globale Shell-Funktionen in einem Makefile?
Ich möchte eine Shell-Funktion definieren
#!/bin/sh
test ()
{
do_some_complicated_tests $1 $2;
if something; then
build_thisway $1 $2;
else
build_otherway $1 $2;
fi
}
so, dass ich es in jeder Regel meines Makefiles verwenden kann, wie:
foo: bar
test foo baz
Um es klar zu sagen, ich möchte, dass die Shell-Funktion Teil des Makefiles ist. Was ist der eleganteste Weg, dies zu tun? Bonuspunkte, wenn Sie dies ohne rekursiven Aufruf von make tun können.
Hintergrund: Mein eigentliches Problem ist dasmake -n
Erzeugt eine sehr lange und unlesbare Ausgabe. Jede Regel verwendet fast die gleiche Folge von nicht lesbaren Shell-Befehlen, und es gibt viele Regeln. Die obige Lösung würde die Ausgabe von machenmake -n
nützlicher.