emmental/Makefile

95 lines
3.1 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 com.nowheycreamery.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 ${EMMENTAL_SHARE}/applications/com.nowheycreamery.emmental.desktop
rm -f ${EMMENTAL_BIN}/emmental
rm -rf ${EMMENTAL_LIB}/emmental/
.PHONY: pkgbuild.pkgver
pkgbuild.pkgver:
$(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 MICRO := $(shell grep \^MICRO_VERSION emmental/__init__.py | awk -F= '{ gsub(/ /,""); print $$2}'))
sed -i 's/^pkgver=.*/pkgver=${MAJOR}.${MINOR}.${MICRO}/' aur/PKGBUILD
.PHONY: pkgbuild.sha256sum
pkgbuild.sha256sum:
$(eval TAG := $(shell git describe --abbrev=0))
$(eval CHECKSUM := $(shell git archive --prefix=emmental/ --format tar.gz $(TAG) | sha256sum | awk '{print $$1}'))
sed -i 's/^sha256sums=.*/sha256sums=(${CHECKSUM})/' aur/PKGBUILD
.PHONY: pkgbuild
pkgbuild: pkgbuild.pkgver pkgbuild.sha256sum
cd aur && makepkg --printsrcinfo > .SRCINFO
.PHONY: pytest
pytest: emmental.gresource mpris2
pytest
.PHONY: tests
tests: pytest flake8