Одно правило в моем Makefile застегивает весь каталог (res/
) в ZIP файл. Очевидно, это правило должно выполняться, когда изменяется любой файл в каталоге res/
. Таким образом, я хочу, чтобы правило имело обязательное условие для всех файлов под этим каталогом. Как я могу реализовать это правило?
В Bash с включенной опцией globstar
вы можете получить список всех файлов в этом каталоге с использованием шаблона подстановки res/**/*
. Однако, похоже, что это не сработает, если вы укажете его как обязательное условие в Makefile:
filename.jar: res/**/*
Даже после touch
ввода файла в res/
, сделайте еще отчеты
make: `filename.jar' is up to date.
так ясно, что он не распознает шаблон.
Если я объявляю каталог как обязательное условие:
filename.jar: res
то Make не будет повторно выполняться, когда файл будет изменен (я думаю, что make
смотрит только на измененную дату самого каталога, которая изменяется только при добавлении, удалении или переименовании непосредственных дочерних элементов).