Как определить глобальные функции оболочки в 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. Какой самый элегантный способ сделать это? Бонусные баллы, если вы можете сделать это без вызова рекурсивно.

Background: My actual problem is that make -n produces a very long and unreadable output. Each rule uses almost the same sequence of unreadable shell commands, and there are many rules. The above solution would make the output of make -n more useful.

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

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