2010-01-12 2 views
2

У меня есть файл makefile, который в зависимости от некоторых свойств устанавливает vpath и генерирует список исходных файлов в одну переменную. Мне нужно запустить make-файл без компиляции чего-либо (компиляция фактически обрабатывается другим make-файлом) и просто посмотреть, к каким реальным файлам имена файлов совпадают в зависимости от настроек vpath.Как получить абсолютные пути после сопоставления vpath в make?

ответ

6

Вариант 1: Пусть делают сделать свой путь поиска:

.PHONY: whichfiles 
whichfiles: $(LIST_OF_SOURCE_FILES) 
    @echo $+ 

Вариант 2: Имитация поиска пути, используя $ (подстановочные):

.PHONY: whichfiles 
whichfiles: 
    @echo $(foreach f,$(LIST_OF_SOURCE_FILES),$(firstword $(wildcard $(VPATH:%=%/$f)) not-found:$f)) 

В любом случае, "делают whichfiles" напечатает список совпадающих файлов.

Если некоторые из файлов не могут быть найдены, параметр 1 завершится неудачей с «no rule to make», сообщающим первый файл, который не может быть найден. Вариант 2 будет печатать «не найден:» для каждого отсутствующего файла.

Смежные вопросы