我有一个文本文件列表,在执行以下命令时:
ls *.txt
会导致类似:
foo.txt bar.txt baz.txt
现在,如果我想输出如下:
File: foo.txt
File: bar.txt
File: baz.txt
我如何在Makefile中实现这一目标?
我一直在努力:
txtfiles = $$(ls *.txt)
list: $(txtfiles)
$(txtfiles):
echo "File:" $@
但是当使用make list
运行时,结果为:
File: $
File: $
我正在考虑尝试使用占位符%
来实现这一目标,但不确定如何做到这一点。
注意:而不是
$$(ls *.txt)
我猜我可以使用$(wildcard *.txt)
?
答案 0 :(得分:0)
好的,所以我想出来了:
my_list = $(addsuffix .dep, $(wildcard *.txt))
print_list: $(my_list)
%.dep: %
@echo "Text File:" $<
使用make print_list
运行它以取回预期结果。
答案 1 :(得分:0)
注意:而不是
$$(ls *.txt)
我猜我可以使用$(wildcard *.txt)
?
你必须。
在.PHONY: $(txtfiles)
规则之前添加$(txtfiles):
以制作explicit request。