include $(top_srcdir)/doc/files.am
include $(top_srcdir)/build/makefiles/sphinx-build.am

CLEANFILES =

EXTRA_DIST +=					\
	$(po_files)

if DOCUMENT_AVAILABLE
EXTRA_DIST +=					\
	$(mo_files)
endif

if DOCUMENT_BUILDABLE
BUILT_SOURCES +=				\
	mo-build-stamp
CLEANFILES +=					\
	pot-build-stamp				\
	edit-po-build-stamp			\
	mo-build-stamp
endif

SUFFIXES += .pot .po .mo .edit

.PHONY: gettext update build

.pot.edit:
	if test -f $(srcdir)/$*.po; then	\
	  msgmerge				\
	    --quiet				\
	    --sort-by-file			\
	    --output-file=$@.tmp		\
	    --no-wrap				\
	    $(srcdir)/$*.po			\
	    $<;					\
	else					\
	  msginit				\
	    --input=$<				\
	    --output-file=$@.tmp		\
	    --locale=$(LOCALE)			\
	    --no-translator			\
	    --no-wrap;				\
	fi
	(echo "# -*- po -*-";					\
	 GREP_OPTIONS= grep -v '^# -\*- po -\*-' $@.tmp |	\
	 GREP_OPTIONS= grep -v '^"POT-Creation-Date:') > $@
	rm $@.tmp

.edit.po:
	grep -v '^#~' $< > $<.no-comment
	mkdir -p $$(dirname $(srcdir)/$@)
	msgattrib --no-fuzzy --no-location --no-wrap --output $(srcdir)/$@ $<.no-comment
	rm $<.no-comment

.po.mo:
	msgfmt -o $@ $(srcdir)/$<

if DOCUMENT_BUILDABLE
update: edit-po-build-stamp
build: mo-build-stamp
else
update:
build:
endif

html: build
text: build
markdown: build

gettext:
	rm *.pot || true
	$(SPHINX_BUILD_COMMAND) -d doctrees -b gettext $(ALLSPHINXOPTS) .
	xgettext --language Python --output conf.pot \
	  $(top_srcdir)/doc/source/conf.py

pot-build-stamp: $(absolute_source_files)
	$(MAKE) gettext
	@touch $@

edit-po-build-stamp: pot-build-stamp
	$(MAKE) $(edit_po_files)
	@touch $@

mo_build_stamp_dependencies = edit-po-build-stamp
if DOCUMENT_BUILDABLE
mo_build_stamp_dependencies += $(edit_po_files)
endif

mo-build-stamp: $(mo_build_stamp_dependencies)
	$(MAKE) $(mo_files)
	@touch $@
