У меня есть два набора исходных файлов в моем проекте, из которых мне нужно создать объектные файлы.Применить отдельные флаги при компиляции подмножества источников
SET_ONE = foo.o bar.o
SET_TWO = zerz.o zork.o
Я хочу передать добавить дополнительный параметр к CFLAGS при создании файлов в SET_ONE, но не для тех, кто в SET_TWO. Например, я хочу:
> make -n
cc -c -DEXTRA_FLAG foo.c
cc -c -DEXTRA_FLAG bar.c
cc -c zerz.c
cc -c zork.c
...
Поскольку файлы имеют такое же расширение, то же самое правило относится ко всем из них, и я не вижу простой способ подправить CFLAGS для только те, в одном из наборы.
Я мог бы сделать пользовательские правила для файлов в SET_ONE:
foo.o : foo.c
$(CC) $(CFLAGS) -DEXTRA_FLAG foo.c
bar.o : bar.c
$(CC) $(CFLAGS) -DEXTRA_FLAG bar.c
, но это приводит к повторению, которое будет труднее поддерживать. Есть ли более чистый способ сделать это? Вероятно, это было десятилетие с тех пор, как я взломал make-файл.