emmental/Makefile

89 lines
2.9 KiB
Makefile

# Copyright 2019 (c) Anna Schumaker.
export PREFIX = /usr/local
export EMMENTAL_LIB = ${PREFIX}/lib/emmental
export EMMENTAL_BIN = ${PREFIX}/bin
export EMMENTAL_SHARE = ${PREFIX}/share
export EMMENTAL_DESKTOP = ${EMMENTAL_SHARE}/applications/com.nowheycreamery.emmental.desktop
all: emmental.gresource mpris2 flake8
clean:
find . -type f -name "*gresource*" -exec rm {} \+
find . -type d -name __pycache__ -exec rm -r {} \+
find emmental/mpris2/ -type f -name "*.xml" -exec rm {} \+
.PHONY:flake8
flake8:
flake8 emmental/ tests/
mpris-spec/Makefile:
git submodule init mpris-spec
git submodule update
emmental/mpris2/MediaPlayer2.xml: mpris-spec/Makefile
cp mpris-spec/spec/org.mpris.MediaPlayer2.xml emmental/mpris2/MediaPlayer2.xml
emmental/mpris2/Player.xml: mpris-spec/Makefile
cp mpris-spec/spec/org.mpris.MediaPlayer2.Player.xml emmental/mpris2/Player.xml
.PHONY: mpris2
mpris2: emmental/mpris2/MediaPlayer2.xml emmental/mpris2/Player.xml
.PHONY: emmental.gresource.xml
emmental.gresource.xml:
exec tools/find-resources.py
.PHONY: emmental.gresource
emmental.gresource: emmental.gresource.xml
glib-compile-resources emmental.gresource.xml
.PHONY: install.app
install.app:
find ./emmental -type f -not -path "*/__pycache__/*" \
-exec install -v -C -D -m 755 "{}" "$(EMMENTAL_LIB)/{}" \;
install -C -v -m 644 emmental.py $(EMMENTAL_LIB)/emmental.py
.PHONY: install.icons
install.icons:
install -C -v -m 644 emmental.gresource $(EMMENTAL_LIB)/emmental.gresource
install -C -v -m 644 icons/scalable/apps/emmental.svg $(EMMENTAL_LIB)/emmental.svg
.PHONY: install.desktop
install.desktop:
desktop-file-install --set-key=Exec --set-value $(EMMENTAL_BIN)/emmental \
--set-key=Icon --set-value=$(EMMENTAL_LIB)/emmental.svg \
--rebuild-mime-info-cache \
--dir=$(EMMENTAL_SHARE)/applications emmental.desktop
.PHONY: install
install: emmental.gresource mpris2 install.app install.icons install.desktop
mkdir -p $(EMMENTAL_BIN)
echo -e "#!/bin/bash\npython -O $(EMMENTAL_LIB)/emmental.py \$$*" > $(EMMENTAL_BIN)/emmental
chmod 655 $(EMMENTAL_BIN)/emmental
.PHONY: uninstall
uninstall:
rm -f ${PREFIX}/share/applications/com.nowheycreamery.emmental.desktop
rm -f ${PREFIX}/bin/emmental
rm -rf ${PREFIX}/lib/emmental/
.PHONY: pkgbuild
pkgbuild:
$(eval MAJOR := $(shell grep \^MAJOR_VERSION emmental/__init__.py | awk -F= '{ gsub(/ /,""); print $$2}'))
$(eval MINOR := $(shell grep \^MINOR_VERSION emmental/__init__.py | awk -F= '{ gsub(/ /,""); print $$2}'))
$(eval TAG := $(shell git describe --tags --abbrev=0))
$(eval CSUM := $(shell git archive --format tar.gz $(TAG) | sha256sum | awk '{print $$1}'))
cp data/PKGBUILD aur/
sed -i 's|{MAJOR}.{MINOR}|${MAJOR}.${MINOR}|' aur/PKGBUILD
sed -i 's|{SHA256SUM}|$(CSUM)|' aur/PKGBUILD
cd aur && makepkg --printsrcinfo > .SRCINFO
.PHONY: pytest
pytest: emmental.gresource mpris2
pytest
.PHONY: tests
tests: pytest flake8