Chcę zdefiniować funkcję powłokiJak zdefiniować globalne funkcje powłoki w pliku Makefile?
#!/bin/sh
test()
{
do_some_complicated_tests $1 $2;
if something; then
build_thisway $1 $2;
else
build_otherway $1 $2;
fi
}
w taki sposób, że można go używać w każdej reguły mojego Makefile, takich jak:
foo: bar
test foo baz
Żeby było jasne, chcę muszlę funkcja jest częścią Makefile. Jaki jest najbardziej elegancki sposób na zrobienie tego? Punkty premiowe, jeśli możesz to zrobić bez wywoływania rekursywnie.
Tło: Mój rzeczywisty problem polega na tym make -n
produkuje bardzo długi i nieczytelny wyjście. Każda reguła używa prawie tej samej sekwencji nieczytelnych poleceń powłoki i istnieje wiele reguł. Powyższe rozwiązanie sprawiłoby, że wyjście z make -n
było bardziej użyteczne.
zrobiłem coś @JonathanLeffler powiedział mogłem” być zrobione?Będę niezmiernie zadowolony z siebie przez co najmniej miesiąc. – Beta
Dlaczego po prostu nie umieścić kodu w skrypcie powłoki i wywołać to? – reinierpost