DESTDIR?=/
PREFIX=/usr
VERSION?=`git describe --tags --dirty 2>/dev/null || echo 0.0.0-dev`

.PHONY: build install
build: darkman darkman.1 completion

darkman:
	go build -ldflags "-X main.Version=$(VERSION)" ./cmd/darkman

check:
	go test ./...
	golangci-lint run
	mandoc -W error darkman.1 > /dev/null
	mandoc -W error darkman.conf.5 > /dev/null

_darkman.zsh: darkman
	./darkman completion zsh > _darkman.zsh

darkman.bash: darkman
	./darkman completion bash > darkman.bash

darkman.fish: darkman
	./darkman completion fish > darkman.fish

completion: _darkman.zsh darkman.bash darkman.fish

site/index.html: darkman.1
	mandoc -T html -O style=man-style.css < darkman.1 > site/index.html

install: build
	@install -Dm755 darkman 	${DESTDIR}${PREFIX}/bin/darkman
	@install -Dm644 darkman.1	${DESTDIR}${PREFIX}/share/man/man1/darkman.1
	@install -Dm644 darkman.conf.5	${DESTDIR}${PREFIX}/share/man/man5/darkman.conf.5
	@install -Dm644 LICENCE 	${DESTDIR}${PREFIX}/share/licenses/darkman/LICENCE
	@install -Dm644 _darkman.zsh ${DESTDIR}${PREFIX}/share/zsh/site-functions/_darkman
	@install -Dm644 darkman.bash ${DESTDIR}${PREFIX}/share/bash-completion/completions/darkman
	@install -Dm644 darkman.fish ${DESTDIR}${PREFIX}/share/fish/vendor_completions.d/darkman.fish
	@install -Dm644 contrib/darkman.service \
		${DESTDIR}${PREFIX}/lib/systemd/user/darkman.service
	@install -Dm755 contrib/darkman.openrc \
		${DESTDIR}/etc/user/init.d/darkman
	@install -Dm644 contrib/dbus/nl.whynothugo.darkman.service \
		${DESTDIR}${PREFIX}/share/dbus-1/services/nl.whynothugo.darkman.service
	@install -Dm644 contrib/dbus/org.freedesktop.impl.portal.desktop.darkman.service \
		${DESTDIR}${PREFIX}/share/dbus-1/services/org.freedesktop.impl.portal.desktop.darkman.service
	@install -Dm644 contrib/portal/darkman.portal \
		${DESTDIR}${PREFIX}/share/xdg-desktop-portal/portals/darkman.portal
	@install -Dm644 darkman.desktop \
		-t ${DESTDIR}${PREFIX}/share/applications/
	@install -Dm 755 -t ${DESTDIR}${PREFIX}/share/darkman/examples/ \
		examples/desktop-notification.sh \
		examples/gtk3-theme.sh \
		examples/kde-global-theme.sh \
		examples/kde-gtk-theme.sh \
		examples/kde-konsole-theme.sh \
		examples/kde-wallpaper.sh \
		examples/kde-yakuake-theme.sh \
		examples/keyboard-backlight.sh \
		examples/mako.sh \
		examples/neovim-background.sh \
		examples/xfce-theme.sh
