我正在使用以下食谱.sup
将文件转换为文件:.ass
%.idx %.sub: %.sup
bdsup2subpp --language en -o $*.sub $<
%.srt: %.sub
vobsub2srt $*
%.ass: %.srt
ffmpeg -hide_banner -y -nostdin -i $< $@
Make会删除所有中间文件.sub
和.srt
文件,但它似乎没有注意到这些.idx
文件。将依赖项添加%.idx
到vobsub2srt
配方将导致它删除.idx
或.sub
文件,具体取决于哪个先出现,但绝不会同时删除两者。
有没有办法让 make 认识到这两个中间体都是从这个单一模式规则生成的,从而在一切完成后删除它们?
答案1
我不知道这是否是最好的方法,但是
%.idx: %sup
bdsup2subpp --language en -o $*.sub $<
%.sub: %.idx
true
它有一些问题。它可能不会尝试生成%.sub
,我最初是相反的
%.sub: %sup
bdsup2subpp --language en -o $@ $<
%.idx: %.sub
true
但意识到这不会触发第二条规则。