Como definir funções globais do shell em um Makefile?
Eu quero definir uma função de shell
#!/bin/sh
test ()
{
do_some_complicated_tests $1 $2;
if something; then
build_thisway $1 $2;
else
build_otherway $1 $2;
fi
}
de tal forma que eu possa usá-lo em todas as regras do meu Makefile, tais como:
foo: bar
test foo baz
Para ser claro, eu quero que a função shell faça parte do Makefile. Qual é a maneira mais elegante de fazer isso? Pontos de bônus se você puder fazer isso sem fazer uma chamada recursiva.
Background: Meu problema real é quemake -n
produz uma saída muito longa e ilegível. Cada regra usa quase a mesma sequência de comandos shell ilegíveis, e existem muitas regras. A solução acima faria a saída demake -n
mais útil.