我想编写一个Makefile来读取文件list.txt
并生成result.tar
包含内容的文件.如果list.txt
文件或其指向的任何文件发生更改,result.tar
则应重建.我怎样才能在Makefile中表达这个?我最接近的是:
result.tar : list.txt
cat list.txt | xargs tar -cf result.tar
Run Code Online (Sandbox Code Playgroud)
但这省略了对内容的依赖list.txt
.
我认为应该是这样的:
result.tar : list.txt $(shell cat list.txt) cat list.txt | xargs tar -cf result.tar
或者,更好一点(提取list.txt
到变量并使用自动变量):
LIST_FILE := list.txt result.tar : $(LIST_FILE) $(shell cat $(LIST_FILE)) cat $< | xargs tar -cf $@