У меня есть правило Makefile, подобное следующему:
%.b : %.a
[run some commands...]
Я хотел бы переписать свой Makefile таким образом, чтобы все преобразования из %.a в %.b обрабатывались одним выполнением команд, а не один раз для каждого файла.
Я пробовал следующее:
%.b : someDummyFile
someDummyFile :
[run some commands]
Проблема в том, что правило для создания someDummyFile выполняется, даже если первое правило не запрашивает его, что приводит к нежелательному поведению. Я предполагаю, что правила без зависимостей выполняются все время, даже если их цели не используются каким-либо другим правилом?
Что мне здесь не хватает?
Пытаясь решить эту проблему, я удалил все ссылки на второе правило. Например, я вставляю следующее правило в существующий Makefile. Почему оно выполняется, даже если никакие другие правила не ссылаются на него?
HELLOWORLD :
echo "# HELLO WORLD! THE NEXT LINE WILL TRIGGER AN ERROR"
DFASDA