По умолчанию GNU make удаляет промежуточные файлы. Поскольку% .txt зависит от% .log, make хочет удалить файл .log. Чтобы предотвратить такое поведение, вы помечаете их как драгоценные с помощью .PRECIOUS или .SECONDARY.
.PRECIOUS: foo.log
Также вы можете сделать так, чтобы никакие промежуточные файлы никогда не удалялись, используя .SECONDARY без зависимостей.
.SECONDARY:
См. этот раздел руководства по сборке GNU.