У меня есть два файла, как показано ниже (из команды tree).В Makefile, как заставить функцию подстановки работать для файлов во всех путях, заданных переменной VPATH
.
|-- Makefile
|-- dir1
| `-- file1.c
`-- dir2
`-- file2.c
Я хотел компилировать файлы в каталоге dir1 и dir2, поэтому я написал Makefile, как показано ниже.
VPATH = dir1:dir2
CFILES := ${wildcard *.v}
$(info CFILES = ${CFILES})
выход:
CFILES =
Так wildcar функция автоматически не искать пути, установленные переменной VPATH.
Если я конкретно напишу путь в подстановочной функции, он работает.
CFILES := ${wildcard dir1/*.c dir2/*.c} <== this makes it work
$(info CFILES = ${CFILES})
выход:
CFILES = dir1/file1.c dir2/file2.c
Я хочу добавить только существующие пути к Makefile, но есть ли способ, что я могу использовать функцию подстановки для путей, установленных VPATH? (Предположим, мне нужно удалить некоторые файлы из списка компиляции, так что мне нужен список файлов. Просто любопытно ..)
похоже, что вы не можете. Подробности здесь http://stackoverflow.com/questions/2483182/recursive-wildcards-in-gnu-make –