A maneira que eu vi isso é coletar todos os alvos em uma regra que entra em cada subdiretório:
build clean install:
@for dir in $(ALLSUBDIRS); do $(MAKE) -C "$$dir" $@; done
Você pode usar algo com a variável interna MAKEFLAGS
, que é exportada automaticamente para sub-marcas.
Você pode tentar sufixar a ação desejada ao destino e, em seguida, dividir esse pseudo-alvo para extrair a ação novamente mais tarde:
default: $(addsuffix .default,$(ALLSUBDIRS))
clean: $(addsuffix .clean,$(ALLSUBDIRS))
%.default:
$(MAKE) -C $*
%.clean:
$(MAKE) -C $* clean