PROJECT = gsettings-accounts
FQDN = org.gsettings.accounts
VERSION = 0.4

POLKIT = 1
PREFIX = /usr/local
BINDIR = ${PREFIX}/bin
DOCDIR = ${PREFIX}/share/doc

INSTALL_BASE = ${DESTDIR}${BINDIR}/${PROJECT}.py ${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/${PROJECT}.svg ${DESTDIR}${PREFIX}/share/applications/${PROJECT}.desktop ${DESTDIR}${DOCDIR}/${PROJECT}
ifeq (${POLKIT}, 1)
	INSTALL_FILES = ${INSTALL_BASE} ${DESTDIR}${PREFIX}/share/polkit-1/actions/${FQDN}.policy
else
	INSTALL_FILES = ${INSTALL_BASE}
endif

all::
	@echo "make update-po"
	@echo "make install"
	@echo "make uninstall"

install:: ${PROJECT}.py install-po ${INSTALL_FILES}

${DESTDIR}${BINDIR}/${PROJECT}.py:
	mkdir -p ${DESTDIR}${BINDIR}
	cp ${PROJECT}.py ${DESTDIR}${BINDIR}/
	if [ "${POLKIT}" == "1" ]; then echo "pkexec /usr/bin/python3 ${BINDIR}/${PROJECT}.py" > ${DESTDIR}${BINDIR}/${PROJECT}; fi
	if [ "${POLKIT}" == "0" ]; then echo "sudo ${BINDIR}/${PROJECT}.py" > ${DESTDIR}${BINDIR}/${PROJECT}; fi
	chmod +x ${DESTDIR}${BINDIR}/${PROJECT}.py ${DESTDIR}${BINDIR}/${PROJECT}
	
${DESTDIR}${BINDIR}/${PROJECT}:
	mkdir -p ${DESTDIR}${BINDIR}

${DESTDIR}${PREFIX}/share/applications/${PROJECT}.desktop:
	mkdir -p ${DESTDIR}${PREFIX}/share/applications
	cp ${PROJECT}.desktop ${DESTDIR}${PREFIX}/share/applications/${PROJECT}.desktop

${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/${PROJECT}.svg:
	mkdir -p ${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps
	cp ${PROJECT}.svg ${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/
	
${DESTDIR}${PREFIX}/share/polkit-1/actions/${FQDN}.policy:
	mkdir -p ${DESTDIR}${PREFIX}/share/polkit-1/actions
	cp ${FQDN}.policy ${DESTDIR}${PREFIX}/share/polkit-1/actions

${DESTDIR}${DOCDIR}/${PROJECT}:
	mkdir -p $@
	cp -r doc/* $@/

uninstall:: uninstall-po
	rm -f ${DESTDIR}${BINDIR}/${PROJECT}.py || true
	rm -f ${DESTDIR}${BINDIR}/${PROJECT} || true
	rm -f ${DESTDIR}${PREFIX}/share/applications/${PROJECT}.desktop || true
	rm -f ${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/${PROJECT}.svg || true
	rm -f ${DESTDIR}${PREFIX}/share/polkit-1/actions/${FQDN}.policy || true
	rm -rf ${DESTDIR}${DOCDIR}/${PROJECT} || true
	rmdir -p ${DESTDIR}${BINDIR} 2>/dev/null || true
	rmdir -p ${DESTDIR}${PREFIX}/share/polkit-1/rules.d 2>/dev/null || true
	rmdir -p ${DESTDIR}${PREFIX}/share/applications 2>/dev/null || true
	rmdir -p ${DESTDIR}${DOCDIR} || true


PO_DIR = po
POT_FILE = ${PO_DIR}/${PROJECT}.pot
PO_FILES = $(wildcard ${PO_DIR}/*.po)
LANGUAGES = $(patsubst ${PO_DIR}/%.po,%,${PO_FILES})

update-po:: ${PO_FILES}

${PO_DIR}/%.po: ${POT_FILE}
	msgmerge -U --backup none $@ ${POT_FILE}
	@touch $@

${PO_DIR}/${PROJECT}.pot: ${PROJECT}.py
	xgettext -o $@ $<

install-po:: $(patsubst %,${DESTDIR}${PREFIX}/share/locale/%/LC_MESSAGES/${PROJECT}.mo,${LANGUAGES})

${DESTDIR}${PREFIX}/share/locale/%/LC_MESSAGES/${PROJECT}.mo: ${PO_DIR}/%.po
	mkdir -p $(dir $@)
	msgfmt -o $@ $<

uninstall-po:: $(patsubst %,%/LC_MESSAGES/${PROJECT}.mo,${LANGUAGES})

%/LC_MESSAGES/${PROJECT}.mo::
	rm -f ${DESTDIR}${PREFIX}/share/locale/$@
	rmdir -p ${DESTDIR}${PREFIX}/share/locale/$(dir $@) 2>/dev/null || true


