Один из возможных способов выполнить то, что вы хотите, - это создать вторичную цель - это файл нулевой длины, который действует как флаг, чтобы сказать, сделали ли вы то, что хотите, или нети иметь правило, которое выполняет прекомпиляцию преобразования на основе этого файла.
Я думаю, у меня есть вопрос о том, что вы пытаетесь сделать.Почему преобразование на месте вместо преобразования создает промежуточный файл, который затем компилируется.
Преобразования на месте могут быть проблематичными, особенно если процесс преобразования не идемпотентен.
Редактировать 1
Исходя из вашего вопроса, я бы сказал, что вы можете сделать это:
target.flag: target.original-file
touch target.save -r target.original-file
<do transformation>
touch target.original-file -r target.save
rm target.save
touch target.flag
С помощью прикосновения с помощью "-rmsgstr "опция говорит, чтобы получить дату доступа из указанного файла.Таким образом, вы будете сохранять дату исходного файла во временном файле.Затем выполните преобразование, затем с помощью прикосновения извлеките дату из временного файла и поместите ее обратно в теперь преобразованный файл.