Создать правило в make файле только для набора файлов
Я пишу Makefile, и я хочу использовать общее правило с подстановочными знаками, например
%: bkp/%
cp $< [email protected]
Но я хотел, чтобы это правило было действительным только для нескольких конкретных файлов. Я хотел бы определить переменную со списком, например
file_list = foo.c bar.c zzz.c
и настройте правило, чтобы оно было действительным только для файлов, перечисленных в этой переменной. Как это сделать?
Ответы
Ответ 1
Вы хотите правило статического шаблона:
file_list = foo.c bar.c zzz.c
$(file_list): %: bkp/%
cp $< [email protected]
Синтаксис очень похож на неявное правило шаблона, которое вы использовали. И да, это вообще безопаснее (более предсказуемо).
Ответ 2
Конечно, через 5 минут я сам нашел ответ...:)
Нам нужно правило статического шаблона.
http://www.gnu.org/software/make/manual/make.html#Static-Pattern
Итак, пример будет решен с помощью
$(file_list) : % : bkp/%
cp $< [email protected]