PERKVERSION = 3.42
FRPATCH = -1
PERKFRVERSION = $(PERKVERSION)$(FRPATCH)

LANGS ?= fr
WORK_DIR = $(shell pwd)

export LANGS
export WORK_DIR

unpack: stamp-unpack

ifeq ($(findstring git,$(PERKVERSION)),)
stamp-unpack: stamp-unpack-release
	touch $@
else
stamp-unpack: stamp-unpack-git
	touch $@
endif

stamp-unpack-release: perkamon-$(PERKVERSION).tar.bz2
	-rm -rf perkamon perkamon-$(PERKVERSION)
	tar jxf perkamon-$(PERKVERSION).tar.bz2
	mv perkamon-$(PERKVERSION) perkamon
	#  Sometimes we have to update perkamon/Makefile
	test ! -f Makefile.man-pages || cp Makefile.man-pages perkamon/Makefile
	#  Remove stamp-setup to force re-run of 'setup' target
	-rm -f stamp-setup
	touch $@

stamp-unpack-git:
	$(MAKE) clean
	-@git submodule add git://gitorious.org/perkamon/man-pages.git perkamon-git
	git submodule init && git submodule update --recursive
	ln -s perkamon-git perkamon
	$(MAKE) -C perkamon clean unpack
	#  Remove stamp-setup to force re-run of 'setup' target
	-rm -f stamp-setup
	touch $@

setup: stamp-setup
stamp-setup: stamp-unpack
	$(MAKE) -C perkamon setup
	mv perkamon/build .
	touch $@

#  Download tarball
get-orig-source: perkamon-$(PERKVERSION).tar.bz2
perkamon-$(PERKVERSION).tar.bz2:
	p=$(PERKVERSION); wget http://perkamon.alioth.debian.org/archives/$${p%-*}/perkamon-$$p.tar.bz2

update-colophon:
	find po4a -name fr.po -o -name \*.pot | xargs sed -i -e 's,This page is part of release [^ ]*,This page is part of release $(PERKVERSION),' -e 's,Cette page fait partie de la publication [^ ]*,Cette page fait partie de la publication $(PERKVERSION),'

translate: setup
translate stats disable-removed print-new-files:
	test -e perkamon || $(MAKE) unpack
	$(MAKE) -C perkamon $@

cfg-%: FORCE
	test -e perkamon || $(MAKE) unpack
	$(MAKE) -C perkamon $@

clean::
	-rm -f stamp-*
	-rm -rf perkamon perkamon-$(PERKVERSION) perkamon-fr*
	-rm -rf build
	-rm -f po4a/*/po/fr.po~

dist-%:
	cp README.$* build/$*/
	tar jcf man-pages-$*-$(PERKFRVERSION).tar.bz2 --numeric-owner -C build $*

release: clean
	-rm -rf perkamon-fr*
	mkdir perkamon-fr-$(PERKFRVERSION)
	cp perkamon-$(PERKVERSION).tar.bz2 perkamon-fr-$(PERKFRVERSION)/
	cp Makefile* README* perkamon-fr-$(PERKFRVERSION)/
	tar cf - --exclude=.svn po4a | tar xf - -C perkamon-fr-$(PERKFRVERSION)
	tar jchf perkamon-fr-$(PERKFRVERSION).tar.bz2 --numeric-owner perkamon-fr-$(PERKFRVERSION)

#  Detect wrong translations of dates
checkdates:
	@for f in po4a/*/po/fr.po; do \
     msgattrib --translated --no-fuzzy $$f |\
     sed -e '/^msgid "[0-9]*-[0-9][0-9]-[0-9][0-9]"/!d; # Only keep msgid with dates \
	   N;h;s/.*\n//;                                    # Append msgstr, copy into the hold space, and only keep msgstr \
	   s/"\([^ ]*\)[  ]\([^ ]*\)[  ]\([^ ]*\)"/"\3-\2-\1"/;   # Rewrite components into the same order as English ones \
	   s/-\([1-9]\)"/-0\1"/; s/1er/01/;                 # Fix special cases \
	   s/janvier/01/; s/février/02/; s/mars/03/;        # Convert month names to numeric values \
	   s/avril/04/; s/mai/05/; s/juin/06/; s/juillet/07/; s/août/08/;   # \
	   s/septembre/09/; s/octobre/10/; s/novembre/11/; s/décembre/12/;  # \
	   H;g;                                             # Append to the hold space, and copy into the pattern space \
	   /msgid \(.*\)\n.*\nmsgstr \1$$/d;                # Delete if first and last lines are identical \
	   s/[^\n]*$$//'; done

.PHONY: unpack setup translate stats disable-removed print-new-files clean release FORCE
