Выполнять правило Makefile только один раз

У меня есть правило 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
7
задан Eugenio De Hoyos 31 July 2012 в 00:08
поделиться