# Installation commands.
INSTALL := install
INSTALL_PROGRAM := $(INSTALL)
INSTALL_DATA := $(INSTALL) -m 644
# Target directories.
PREFIX := /usr
BINDIR := $(PREFIX)/bin
DATADIR := $(PREFIX)/share
LOCALEDIR := $(DATADIR)/locale
MANDIR := $(DATADIR)/man
# Deletes file $(2) from directory $(1), then deletes empty parent directories subsequently.
delete_file_and_empty_dirs = if test -d '$(1)'; then rm -f '$(1)/$(2)' && rmdir -p --ignore-fail-on-non-empty '$(1)'; fi
# Recursively installs manual pages to subdirectory $(1) of $(MANDIR).
install_man = $(foreach f,$(notdir $(wildcard man/$(1)/*)),$(if $(shell test -d 'man/$(1)/$(f)' && echo "dir"),$(call install_man,$(1)/$(f)),$(INSTALL_DATA) -D -t '$(MANDIR)/$(1)' 'man/$(1)/$(f)';))
# Recursively removes installed manual pages from subdirectory $(1) of $(MANDIR).
uninstall_man = $(foreach f,$(notdir $(wildcard man/$(1)/*)),$(if $(shell test -d 'man/$(1)/$(f)' && echo "dir"),$(call uninstall_man,$(1)/$(f)),$(call delete_file_and_empty_dirs,$(MANDIR)/$(1),weatherhs.1);))
.PHONY: help install uninstall
help:
$(info VARIABLES)
$(info ========================================================================)
$(info PREFIX: Target directories prefix.)
$(info BINDIR: Executable installation directory.)
$(info DATADIR: Data installation directory.)
$(info LOCALEDIR: MO files installation directory.)
$(info MANDIR: Manual pages installation directory.)
$(info )
$(info RULES)
$(info ========================================================================)
$(info help: Display this help menu.)
$(info install: Install the executable, its assets and its manual pages.)
$(info uninstall: Uninstall the executable, its assets and its manual pages.)
install: .stack-work/dist/x86_64-linux-tinfo6/Cabal-2.2.0.1/build/weatherhs/weatherhs po/*.po man/
$(INSTALL) -D -t '$(BINDIR)' '$<'
$(foreach lc,$(patsubst po/%.po,%,$(wildcard po/*.po)),mkdir -p '$(LOCALEDIR)/$(lc)/LC_MESSAGES' && msgfmt -o '$(LOCALEDIR)/$(lc)/LC_MESSAGES/weatherhs.mo' 'po/$(lc).po';)
$(call install_man)
uninstall:
rm -f '$(BINDIR)/weatherhs'
$(foreach lc,$(patsubst po/%.po,%,$(wildcard po/*.po)),$(call delete_file_and_empty_dirs,$(LOCALEDIR)/$(lc)/LC_MESSAGES,weatherhs.mo);)
$(call uninstall_man)