Я видел, как это делается, состоит в том, чтобы собрать все цели в одно правило, которое входит в каждый подкаталог:
build clean install:
@for dir in $(ALLSUBDIRS); do $(MAKE) -C "$$dir" $@; done
Вы можете использовать что-то со встроенной переменной MAKEFLAGS
, которая автоматически экспортируется в суб-производители.
Вы можете попробовать добавить к цели суффикс желаемого действия, а затем разделить эту псевдо-цель для повторного извлечения действия позже:
default: $(addsuffix .default,$(ALLSUBDIRS))
clean: $(addsuffix .clean,$(ALLSUBDIRS))
%.default:
$(MAKE) -C $*
%.clean:
$(MAKE) -C $* clean