packages feed

weatherhs-1.0.0: po/Makefile

XGETTEXT := hgettext
APPDIR := ../app
AUTHOR := Nikola Hadžić
PACKAGE := weatherhs
VERSION := 1.0.0
BUGS_ADDRESS := nikola.hadzic.000@protonmail.com
MERGE_BACKUP := simple

.PHONY: help clean

help:
	$(info VARIABLES)
	$(info =================================================================================)
	$(info XGETTEXT:        xgettext tool to use (you probably want hgettext).)
	$(info APPDIR:          Application code directory.)
	$(info AUTHOR:          Package author's name.)
	$(info PACKAGE:         Package's name.)
	$(info VERSION:         Package's version.)
	$(info BUGS_ADDRESS:    E-mail address to report the program bugs to (usually author's).)
	$(info MERGE_BACKUP:    Merge backup option; see msgmerge(1).)
	$(info )
	$(info RULES)
	$(info =================================================================================)
	$(info help:           Display this help menu.)
	$(info messages.pot:   Build POT file.)
	$(info %.po:           Generate PO file.)
	$(info clean:          Remove unnecessary generated files.)

messages.pot: $(APPDIR)/*.hs
	$(warning Since you probably use hgettext for string extraction, make sure that it has this commit: https://github.com/NH002/hgettext/commit/a7ba5f7bc2624b91ddbbeeff7846947f56605c45)
	$(XGETTEXT) -o '1-$@' -k __ $(patsubst %,'%',$^) --cpp --cpp-defs=FLAG_ENCRYPTION
	$(XGETTEXT) -o '2-$@' -k __ $(patsubst %,'%',$^) --cpp --cpp-defs=FLAG_NOJSON,FLAG_NOXML
	msgcat --no-wrap -o '$@' '1-$@' '2-$@'
	rm '1-$@' '2-$@'
	sed -i                                                      \
	    -e '6s/PACKAGE VERSION/$(PACKAGE) $(VERSION)/'          \
	    -e '7s/.\{23\}/&$(BUGS_ADDRESS)/'                       \
	    -e '8s/\(.\{20\}\).\{21\}/\1$(shell date '+%F %R%z')/'  \
	    '$@'

%.po: messages.pot
	$(if $(wildcard $@),msgmerge --backup '$(MERGE_BACKUP)' -U --no-wrap '$@' '$<',msginit --no-wrap -l $(patsubst %.po,'%',$@))

clean:
	$(info Cleaning directory...)
	@rm -f *-messages.pot messages.pot *.po~