Как определить глобальные функции оболочки в 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
полезнее.