Как определить глобальные функции оболочки в Makefile?

Я хочу определить функцию оболочки

#!/bin/sh

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

таким образом, чтобы я мог использовать его в каждом правиле моего Makefile, например:

foo: bar
  test foo baz

Чтобы было ясно, я хочу, чтобы функция оболочки была частью Makefile. Какой самый элегантный способ сделать это? Бонусные баллы, если вы можете сделать это без вызова рекурсивно.

Справочная информация: моя настоящая проблема заключается в том, чтоmake -n производит очень длинный и нечитаемый вывод. Каждое правило использует почти одинаковую последовательность нечитаемых команд оболочки, и существует множество правил. Вышеупомянутое решение сделало бы выводmake -n полезнее.

Ответы на вопрос(7)

Ваш ответ на вопрос