Make가 레시피에서 두 개의 중간 종속성을 인식하도록 하려면 어떻게 해야 합니까?

Make가 레시피에서 두 개의 중간 종속성을 인식하도록 하려면 어떻게 해야 합니까?

.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

그러나 이것이 두 번째 규칙을 유발하지는 않는다는 점을 인식하십시오.

관련 정보