PERKVERSION = 3.32
FRPATCH = -4
PERKFRVERSION = $(PERKVERSION)$(FRPATCH)

LANGS ?= fr
WORK_DIR = $(shell pwd)

export LANGS
export WORK_DIR

unpack: stamp-unpack
stamp-unpack: 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 $@

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

# perkamon-git is a submodule, and it contains a submodule
# of upstream man-pages
setup-git:
	rm -rf perkamon perkamon-git build
	-git submodule add \
           git://gitorious.org/perkamon/man-pages.git perkamon-git
	git submodule init && git submodule update
	cd perkamon-git && git submodule init && git submodule update
	ln -s perkamon-git perkamon
	ln -s man-pages-git perkamon/man-pages
	touch perkamon/stamp-unpack
	$(MAKE) -C perkamon setup
	mv perkamon/build .
	$(MAKE) -C perkamon clean
	touch perkamon/stamp-unpack
	touch perkamon/stamp-setup
	touch stamp-setup

# perkamon-git is a submodule, and it references a released version
# of upstream man-pages
setup-git-release:
	rm -rf perkamon perkamon-git build
	-git submodule add \
           git://gitorious.org/perkamon/man-pages.git perkamon-git
	git submodule init && git submodule update
	ln -s perkamon-git perkamon
	$(MAKE) -C perkamon setup
	mv perkamon/build .
	$(MAKE) -C perkamon clean
	touch perkamon/stamp-unpack
	touch perkamon/stamp-setup
	touch stamp-setup

#  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

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

cfg-%: FORCE
	$(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:
	@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]*$$//' po4a/*/po/fr.po

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