Есть каталог, в нем несколько подкаталогов. В верхнем каталоге - master makefile. В каждом из подкаталогов - свой локальный makefile. В каждом подкаталоге набирая make можно сбилдить модуль локально. Master makefile содержит вызовы а-ля
cd subdir1 $(MAKE) $(MAKEARGS)
-так для каждого модуля. Ну и плюс master makefile кое-что еще делает.
Если бы у меня был один главный makefile, то make -j N работал бы отлично. Проблема в том, что при вызове $(MAKE) $(MAKEARGS) в $(MAKEARGS) число джобов равно 1. Понятно, почему туда не передается N. Однако получается неоптимально: в какой-то момент времени джобов может быть меньше, чем N. Например, все модули построились быстро, а один из них очень большой и очень долго билдится. И билдится он с -j 1.
Надеюсь понятно объяснил, что мне не нравится во вложенных вызовах make :)
Вопрос: как сделать, чтобы все было хорошо? Насколько я знаю, в ant есть такая возможность. Но ant это ведь некошерно :)