#!/bin/sh set -eu makefile_pre() { cat <<'EOF' .POSIX: FFMFLAGS = -y -hide_banner -loglevel warning .SUFFIXES: .SUFFIXES: .mpd .webmx .txt .mpd.webmx: cd $(?D) && ffmpeg $(FFMFLAGS) -i $( $(@F) EOF } mpds() { find data/*/*/live.mpd | LANG=POSIX.UTF-8 sort } mkdeps() { mpds | varlist 'sources.mpd' mpds | cut -d/ -f1-2 | sed 's,$,/combined.txt,' | uniq | varlist 'combined.txt' printf '\n' mpds | sed 's/^\(.*\)\.mpd$/\1.webmx:\t\1.mpd/' mpds | sed 's/^\(.*\)\.mpd$/\1.webm:\t\1.webmx/' printf '\n' mpds | sed 's/\.mpd$/.webm/' | awk -F/ '{ printf "data/%s/combined.txt:\t%s\n", $2, $0 }' mpds | xargs dirname | xargs dirname | uniq | sed 's|^\(.*\)$|\1/combined.webm:\t\1combined.txt|' } { makefile_pre mkdeps makefile_post } | make -f-