PATCH_MEDIAELEMENT=true
PATCH_MEDIAELEMENT_PLUGINS=true

.PHONY: \
    all \
    clean \
    clean-css \
    clean-js \
    clean-mediaelement \
    clean-mediaelement-plugins \
    depend \
    depend-mediaelement \
    depend-mediaelement-plugins \
	depend-node \
    css \
    src \
	test

all: \
    depend \
    css \
    src

clean: \
    clean-css \
    clean-js \
    clean-mediaelement \
    clean-mediaelement-plugins

clean-css:
	rm -f dist/css/*.css dist/css/*.svg

clean-js:
	rm -f dist/js/*.js 

clean-mediaelement:
	git -C mediaelement reset --hard HEAD

clean-mediaelement-plugins:
	git -C mediaelement-plugins reset --hard HEAD

depend: \
	depend-node \
    depend-mediaelement \
    depend-mediaelement-plugins

depend-mediaelement:
	@echo "Preparing dependency \"mediaelement\" ..."
	if test "$(PATCH_MEDIAELEMENT)" = "true" ; then \
	    git -C mediaelement reset --hard HEAD ; \
		patch -d mediaelement -p1 < patches/mediaelement/01-iconsprite.diff ; \
		patch -d mediaelement -p1 < patches/mediaelement/02-play-promise.diff ; \
		patch -d mediaelement -p1 < patches/mediaelement/03-mediaelement.js.diff ; \
	fi
	cd mediaelement && grunt

depend-mediaelement-plugins:
	@echo "Preparing dependency \"mediaelement-plugins\" ..."
	if test "$(PATCH_MEDIAELEMENT_PLUGINS)" = "true" ; then \
	    git -C mediaelement-plugins reset --hard HEAD ; \
		patch -d mediaelement-plugins -p1 < patches/mediaelement-plugins/01-playlist.js.diff ; \
	fi
	cd mediaelement-plugins && grunt

depend-node:
	@echo "Installing required NodeJS dependencies ..."
	npm install

css:
	@echo "Building CSS ..."
	css/build.sh

src:
	@echo "Building Javascript ..."
	src/build.sh

test:
	@echo "Performing tests ..."
	npm test