文件列表和 Makefile 的目录名奇怪行为
dirname strange behavior with file list & Makefile
我的目录:
$ ls *
Makefile
dir1:
file1.txt file2.txt
dir2:
file1.txt
生成文件:
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
.
中的文件就可以了
$(dirname ...)
宏是如何定义的? $(dir ...)
可能会如您所愿。
我的目录:
$ ls *
Makefile
dir1:
file1.txt file2.txt
dir2:
file1.txt
生成文件:
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
.
$(dirname ...)
宏是如何定义的? $(dir ...)
可能会如您所愿。