all:
clean::; rm -f $(CLEANFILES)
+realclean::; rm -f $(REALCLEANFILES)
force:
.PHONY: all clean
.SECONDEXPANSION: # not sorry
TARGETS =
CLEANFILES += $(TARGETS)
+REALCLEANFILES += $(CLEANFILES)
+
+MKM3UFLAGS = -dmkm3u.cache
+REALCLEANFILES += mkm3u.cache
define %declare-playlist
PLAYLISTS += $1
M3US = $(addsuffix .m3u8,$(PLAYLISTS))
TARGETS += $(M3US)
-$(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" "$@"
CHECKS = $(foreach p,$(PLAYLISTS), check/$p)
check: $(CHECKS)