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.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage