Я не понимаю, как это может работать.Предположим, это можно сделать в make;теперь у вас есть два файла foo.exe
и foo.ini
(вы не говорите, каковы ваши фактические шаблоны имен файлов).Вы запускаете make и видите, что foo.exe
новее, чем foo.ini
, поэтому он декомпилирует двоичный файл для создания нового foo.ini
.Теперь вы снова запускаете make, и на этот раз он видит, что foo.ini
новее, чем foo.exe
, потому что вы только что создали первый, поэтому он компилирует foo.ini
в foo.exe
.
и т. Д.Каждый раз, когда вы запускаете make, он выполняет операцию со всеми файлами, потому что один или другой всегда будут устаревшими.
Единственный способ, которым это может сработать, - это если вы (а) проверили, проверяют ли файлыне было точно идентичного времени последнего измененного времени, и (b) имел способ сбрасывать время в скомпилированном / декомпилированном файле так, чтобы оно было идентично файлу, из которого он был создан, а не «сейчас», которое является значением по умолчанию дляКонечно.
Ответ в том, что make не может быть использован в этой ситуации.Конечно, вы могли бы написать себе небольшой сценарий оболочки, который просматривал каждый файл и проверял, были ли последние измененные времена идентичными или нет, и если не скомпилировал их, то использовал touch -m -r origin
, где origin - файл, который имелболее новое время модификации, чтобы у обоих было одинаковое время модификации.