使用文件中的依赖项进行创建

Nei*_*ell 2 makefile

我想编写一个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.

Eld*_*mov 5

我认为应该是这样的:

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 $@