как устроен make dist

Зависимости monodevelop, Как собирать monodevelop
dotnet/issues/160, SQ34976911
https://github.com/mono/monodevelop/blob/master/Makefile#L54-L92

Неясно, как срабатывает цель dist-recursive.
dist: update_submodules remove-stale-tarballs dist-recursive
Соответствующее правило имеет левую часть со знаком процента
%-recursive: $(CONFIG_MAKE)

A pattern rule looks like an ordinary rule, except that its target contains the character ‘%’ (exactly one of them).
http://www.gnu.org/software/make/manual/make.html#Pattern-Rules
the ‘%’ can match any nonempty substring, while other characters match only themselves.

In a pattern rule that has multiple targets (see Introduction to Pattern Rules), ‘$@’ is the name of whichever target caused the rule’s recipe to be run.
http://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html
$* will expand to the part of the target that matched the pattern

в 31 строке заход в директорию, потом рекурсивный вызов make с предачей $* в качестве параметра