GNU make: почему рецепты с двойным двоеточием не распараллелены - PullRequest
0 голосов
/ 07 ноября 2018

Я бы хотел сгенерировать свой рецепт clean, используя несколько правил двойного двоеточия (на самом деле eval ed в цикле foreach). Согласно документации "[d] правила двоеточия с одной и той же целью фактически полностью отделены друг от друга", как в этом примере:

clean::
    sleep 1

clean::
    sleep 1

Когда он запускается с флагом -j, чтобы включить параллельное выполнение, где это возможно, он явно запускает два спящих режима последовательно:

time make -j2 clean
sleep 1
sleep 1

real    0m2.010s
user    0m0.000s
sys 0m0.004s

Если правила должны быть независимыми, то make может (и IMHO очень должен) запускать соответствующие команды параллельно. Это ошибка? Есть ли способ принудительного распараллеливания в этом случае?

...