Предположим, у меня есть Makefile:
a.out:
sleep 3
touch a.out a1
b.out:
cat a1 > b.out
c.out: a.out b.out
cat a.out b.out > c.out
make c.out
выполнит обычно успешно, так как команды для a.out выполняются перед командами для b.out.Но make b.out
потерпит неудачу (в чистом каталоге), как и make -j c.out
.
Как и в реальных сценариях, редко встречается sleep 3
, и ошибка, таким образом, будет отображаться очень случайно,ищу способ выкурить такие ошибки с большей вероятностью.Одна идея состояла бы в том, чтобы изменить порядок выполнения для целей «на том же уровне»: поскольку набор тестов обычно запускает первое поколение a.out, затем b.out, если вместо этого генерируется первый b.out, ошибка будетповерхность.
Есть ли способ в GNU make сделать это?