-$(M3US): %.m3u8: $$($$*_EPLS) mkm3u
- $(call v-tag,MKM3U)./mkm3u $($*_MKM3UFLAGS) "$<" >"$@.new" && mv "$@.new" "$@"
+CLEANFILES += mkm3u.cache-stamp
+mkm3u.cache-stamp:
+ if [ ! -f mkm3u.cache ]; then \
+ ./mkm3u -i -dmkm3u.cache.new && mv mkm3u.cache.new mkm3u.cache; \
+ fi
+ touch $@
+
+CLEANFILES += *.m3u8.new
+$(M3US): %.m3u8: $$($$*_EPLS) mkm3u mkm3u.cache-stamp
+ $(call v-tag,MKM3U)./mkm3u $(MKM3UFLAGS) $($*_MKM3UFLAGS) \
+ "$<" >"$@.new" && mv "$@.new" "$@"