Допустим, у меня есть выходной файл, который стоит сделать дорого.Это также требует процесса настройки среды, который также является дорогостоящим для запуска.Рецепт для создания выходных данных также создает промежуточный файл, который затем используется для создания выходного файла.
output_file :
expensive_env_setup ; \
generate_file
Где generate_file также создает промежуточный_файл.С учетом промежуточного_файла и правильных параметров, генерирующий_файл может возобновить генерацию файла, если вторая часть генерации не удалась.
Я пытаюсь разрешить возобновить сборку из файла промежуточного_файла в процессе сборкине удалось после генерации промежуточного файла.Я не хочу разбивать процесс сборки на отдельные рецепты, так как настройка среды также стоит дорого, и это сделает процесс сборки более успешным для успешных сборок.
Например, я мог бы сделать следующее:
output_file : intermediate_file :
expensive_env_setup ; \
generate_file -resume intermediate_file
intermediate_file :
expensive_env_setup ; \
generate_file -intermediate intermediate_file
Там, где рецепт промежуточного файла только генерирует этот файл, но это будет означать, что процесс настройки среды необходимо будет запустить дважды.
Есть ли способ указать, чторецепт output_file может генерировать конкретный промежуточный файл, и make будет перестраивать с использованием рецепта промежуточного_файла, если промежуточный_файл был сгенерирован, но выходной_файл не был (т.е. вторая часть завершилась неудачно)?