Подстановочный знак Makefile с несколькими расширениями файлов - PullRequest
0 голосов
/ 31 октября 2019

В make-файле я обрабатываю все файлы с заданным расширением.

Я просто рассказываю об этом в реальном мире, это имеет больше смысла, поскольку я знаю, "что мне нужно делать"; -)

Следующие работы:

MY_FILES = $(wildcard *.ex1)
BASENAMES = $(basename $(MY_FILES))

.PHONY: run
run : $(MY_FILES)
    for name in $(BASENAMES); do\
        # do what I need to do
    done

.PHONY: clean
clean :
    # clean up the mess

Теперь я хотел бы обработать не только * .ex1, но и дюжину или около того других (но все файлы одинаковым образом, так что нет никакой разницы по типу файла в «делай то, что мне нужно»). Расширения файлов не следуют какой-либо схеме. Итак, каков наиболее удобный способ кодирования этого случая с несколькими символами расширения файла?

1 Ответ

1 голос
/ 31 октября 2019

если дюжина файлов всегда одинакова, то вы можете жестко закодировать их следующим образом

MY_FILES = $(wildcard *.ex1)
MY_FILES += filename.foo
MY_FILES += filename.bar

или, если только расширение всегда одинаковое, то вот так

MY_FILES = $(wildcard *.ex1)
MY_FILES += $(wildcard *.foo)
MY_FILES += $(wildcard *.bar)

см. здесь для получения дополнительной информации: https://www.gnu.org/software/make/manual/html_node/Appending.html#Appending

если они не всегда одинаковы, вы должны заставить их следовать некоторому шаблону. например, чтобы они все были в каком-то каталоге

MY_FILES = $(wildcard somedir/*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...