Makeにレシピで2つの中間依存関係を認識させるにはどうすればよいですか?

Makeにレシピで2つの中間依存関係を認識させるにはどうすればよいですか?

.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

両方の中間体がこの単一パターンルールで作成されたことを認識して、すべての操作が完了したら削除する方法はありますか?

ベストアンサー1

これが最善の方法かどうかはわかりませんが、

%.idx: %sup
  bdsup2subpp --language en -o $*.sub $<

%.sub: %.idx
  true

いくつかの問題があります。作成を試みないことがあります%.sub。最初はその逆にしました。

%.sub: %sup
  bdsup2subpp --language en -o $@ $<

%.idx: %.sub
  true

しかし、これが2番目のルールを引き起こさないことを認識してください。

おすすめ記事