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
$(call declare-filter, supergirl, arrowverse,spg, S/Supergirl)
$(call declare-filter, legends-of-tomorrow, arrowverse,lot, L/Legends of Tomorrow)
$(call declare-filter, batwoman, arrowverse,bwm, B/Batwoman)
+$(call declare-filter, black-lightning, arrowverse,blt, B/Black Lightning)
+$(call declare-filter, stargirl, arrowverse,stg, S/Stargirl)
$(call declare-playlist, a-team, A/The A-Team)
$(call declare-playlist, the-americans, A/The Americans)
$(call declare-playlist, allo-allo, A/'Allo 'Allo!)
$(call declare-playlist, babylon-5, B/Babylon 5)
-$(call declare-playlist, batman-1966, B/Batman (1966 series))
+$(call declare-playlist, batman-1966, B/Batman (1966))
$(call declare-playlist, bsg-1978, B/Battlestar Galactica (1978))
$(call declare-playlist, bsg-1980, B/Battlestar Galactica 1980)
$(call declare-playlist, bsg-2003, B/Battlestar Galactica (2003))
$(call declare-playlist, firefly, F/Firefly)
$(call declare-chapters, fry-and-laurie, F/A Bit of Fry and Laurie)
$(call declare-playlist, game-of-thrones, G/Game of Thrones)
-#$(call declare-playlist, godfather-ii, G/The Godfather Trilogy/02. Part II)
+$(call declare-playlist, godfather-ii, G/The Godfather Trilogy/02. Part II)
$(call declare-playlist, gotham, G/Gotham)
$(call declare-playlist, hannibal, H/Hannibal)
$(call declare-playlist, hhgttg, H/The Hitchhiker's Guide to the Galaxy) #'
$(call declare-playlist, house-of-cards, H/House of Cards)
$(call declare-playlist, i-claudius, I/I Claudius)
$(call declare-playlist, into-the-labyrinth, I/Into the Labyrinth)
-#$(call declare-playlist, it-2017, I/It (2017))
-#$(call declare-playlist, snyder-justice, J/Justice League (Snyder cut))
-#$(call declare-playlist, kill-bill, K/Kill Bill)
+$(call declare-playlist, it-2017, I/It (2017))
+$(call declare-playlist, snyder-justice, J/Justice League (Snyder cut))
+$(call declare-playlist, kill-bill, K/Kill Bill)
$(call declare-playlist, the-killing, K/The Killing)
-#$(call declare-playlist, kingdom-of-heaven, K/Kingdom of Heaven (Definitive Edition))
+$(call declare-playlist, kingdom-of-heaven, K/Kingdom of Heaven (Definitive Edition))
$(call declare-playlist, knight-rider, K/Knight Rider)
$(call declare-playlist, lexx, L/Lexx)
$(call declare-playlist, lois-and-clark, L/Lois and Clark—The New Adventures of Superman)
$(call declare-playlist, morse, M/Inspector Morse)
$(call declare-playlist, macgyver, M/MacGyver)
-#$(call declare-playlist, metallica-s-and-m, M/Metallica—S&M)
+$(call declare-chapters, metallica-s-and-m, M/Metallica—S&M)
$(call declare-playlist, the-night-manager, N/The Night Manager)
$(call declare-playlist, person-of-interest, P/Person of Interest)
-#$(call declare-playlist, harry-potter, P/Harry Potter)
+$(call declare-playlist, harry-potter, P/Harry Potter)
$(call declare-playlist, flying-circus-restored, P/Monty Python's Flying Circus (restored)) #'
$(call declare-chapters-only, flying-circus-sketches, P/Monty Python's Flying Circus (sketches)) #'
$(call declare-playlist, robin-of-sherwood, R/Robin of Sherwood)
$(call declare-playlist, sanctuary, S/Sanctuary)
$(call declare-playlist, sapphire-and-steel, S/Sapphire and Steel)
$(call declare-playlist, shark, S/Shark)
+$(call declare-playlist, sharpe, S/Sharpe)
$(call declare-playlist, the-shield, S/The Shield)
$(call declare-playlist, smallville, S/Smallville)
$(call declare-playlist, george-smiley, S/George Smiley)
$(call declare-playlist, spartacus, S/Spartacus)
$(call declare-playlist, spooks, S/Spooks)
-#$(call declare-playlist, star-wars, S/Star Wars)
+$(call declare-playlist, star-wars, S/Star Wars)
+$(call declare-filter, skywalker-saga, star-wars,sws, S/Star Wars—The Skywalker Saga)
+$(call declare-filter, starwars-stories, star-wars,sty, S/Star Wars Stories)
+$(call declare-filter, clone-wars, star-wars,tcw, S/Star Wars—The Clone Wars)
+$(call declare-filter, rebels, star-wars,rbl, S/Star Wars—Rebels)
$(call declare-playlist, stargate, S/Stargate)
$(call declare-filter, stargate-sg1, stargate,sg1, S/Stargate SG-1)
$(call declare-filter, stargate-atlantis, stargate,sga, S/Stargate Atlantis)
$(call declare-filter, stargate-universe, stargate,sgu, S/Stargate Universe)
-#$(call declare-playlist, state-of-play, S/State of Play)
+$(call declare-playlist, state-of-play, S/State of Play)
$(call declare-playlist, terminator-scc, T/Terminator—The Sarah Connor Chronicles)
-#$(call declare-playlist, traffik, T/Traffik)
-#$(call declare-playlist, the-tripods, T/The Tripods)
-#$(call declare-playlist, tru-calling, T/Tru Calling)
-#$(call declare-playlist, ultraviolet, U/Ultraviolet)
-#$(call declare-playlist, v-1983, V/V (1983))
+$(call declare-playlist, traffik, T/Traffik)
+$(call declare-playlist, the-tripods, T/The Tripods)
+$(call declare-playlist, tru-calling, T/Tru Calling)
+$(call declare-playlist, twin-peaks, T/Twin Peaks)
+$(call declare-playlist, ultraviolet, U/Ultraviolet)
+$(call declare-playlist, v-1983, V/V (1983))
$(call declare-playlist, v-2009, V/V (2009))
$(call declare-playlist, the-wire, W/The Wire)
$(call declare-playlist, waking-the-dead, W/Waking the Dead)
-#$(call declare-playlist, wonder-woman-1975, W/Wonder Woman (1975))
-#$(call declare-playlist, yes-minister, Y/Yes Minister)
-#$(call declare-playlist, the-young-ones, Y/The Young Ones)
+$(call declare-playlist, wonder-woman-1975, W/Wonder Woman (1975))
+$(call declare-playlist, yes-minister, Y/Yes Minister)
+$(call declare-playlist, the-young-ones, Y/The Young Ones)
$(call declare-playlist, drwho-marco-polo, D/Doctor Who/S01E04 D. Marco Polo)
$(call declare-playlist, drwho-crusade, D/Doctor Who/S02E06 P. The Crusade)
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)