Странное поведение dirname со списком файлов и Makefile

Мой каталог:

$ ls *
Makefile

dir1:
file1.txt  file2.txt

dir2:
file1.txt

Makefile:

A = $(wildcard ./dir1/*)
A += $(wildcard ./dir1/*)
B = $(dirname $(A))

print-% : ; @echo $* = $($*)

Выводы правила печати:

$ make print-A
A = ./dir1/file1.txt ./dir1/file2.txt ./dir1/file1.txt ./dir1/file2.txt
$ make print-B
B =

Я хотел бы B переменная, чтобы иметь список относительных путей моего подкаталога (./dir1/ а также ./dir2/) почему это не работает? Это нормально, если есть только в файле в A,

1 ответ

Решение

Как $(dirname ...) макрос определен? $(dir ...) может делать то, что вы ожидаете.

Другие вопросы по тегам