Допустим, у меня есть один каталог с c-файлами (.
), и я хочу, чтобы объектные файлы попадали в два разных каталога: debug и release. Теперь я хочу сделать правило для этого. В результате это будет выглядеть примерно так:Однократное правило для нескольких выходных файлов в разных каталогах
$(DEBUGDIR)%.o : %.c
$(CC) $(CFLAGS) -c $< -o [email protected]
$(RELEASEDIR)%.o : %.c
$(CC) $(CFLAGS) -c $< -o [email protected]
Это два правила, которые являются точно такими же. Поскольку все возможные различия между этими правилами содержатся в CFLAGS
, нет причин даже иметь два правила: я хочу поддерживать только один. Я попытался это:
$(DEBUGDIR)%.o $(RELEASEDIR)%.o : %.c
$(CC) $(CFLAGS) -c $< -o [email protected]
Но теперь он не будет компилировать о-файлы для RELEASE
, когда он уже скомпилированные для DEBUG
. Как я могу объединить эти два правила в один?