1) Если вы собираетесь изменить файлы таким образом, возможно, вам следует дать целевым именам разные имена, например foo_unmodified
и foo_modified
, чтобы обработка зависимостей в Make позаботилась об этом.
2) Если ваше фальшивое новое правило является тем, которое вы вызываете в командной строке («make phonyNewRule»), то Make выполнит сборку того, что собирается построить, перед выполнением команды file_modifier
.Если вы хотите построить цели, не входящие в этот список, вы можете сделать это следующим образом:
(phony new rule): $(LIST_OF_FILES_TO_EDIT) $(OTHER_TARGETS)
file_modifier ...
3) Если ваши зависимости установлены правильно, вы можете узнать, какие цели зависят от $ (LIST_OF_FILES_TO_EDIT),но это не очень аккуратно.Вы можете просто touch
один из файлов, запустить make
, посмотреть, какие цели он построил, повторить для всех файлов.Вы можете сэкономить немного времени, используя аргументы Make: "make -n -W foo1 -W foo2 -W foo3 ... -W foo99 all".Это напечатает команды Make будет запущен - я не знаю, как заставить его сообщить, какие цели он будет перестроен.