Я хочу определить функцию оболочки
#!/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 рекурсивно.
Фон:
Моя фактическая проблема заключается в том, что make -n
производит очень длинный и нечитаемый вывод. Каждое правило использует почти ту же последовательность нечитаемых команд оболочки, и существует много правил. Вышеприведенное решение сделает вывод make -n
более полезным.