LINUX.ORG.RU

make -j N


0

0

Есть каталог, в нем несколько подкаталогов. В верхнем каталоге - 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 это ведь некошерно :)

★★

Ответ на: комментарий от ero-sennin

> Верно. =) Настоящие мужчины выбирают SCons. B)

Не, просто cons 8^)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.