1PREFIX       ?= /usr
2LOCALE_DIR   = $(DESTDIR)$(PREFIX)/share/locale
3MO_FILE      = openxpki.mo
4INSTALL      = install
5LANGS_REAL   = en_US de_DE ru_RU it_IT ja_JP zh_CN
6LANGS        = $(LANGS_REAL) en_GB
7PO_SOURCES   = $(LANGS_REAL:%=%/openxpki.po)
8MO_TRANSLATIONS = $(LANGS:%=%/$(MO_FILE))
9POT_SOURCES  = ../server ../../config extra/
10VERSION_FILE = ./VERSION
11PACKAGE      ?= openxpki-i18n
12
13TOPDIR := ../..
14
15# In package build, tools/vergen isn't available
16-include $(TOPDIR)/package/common/vergen.mk
17
18#---- variable settings above, rules below ----
19
20
21.PHONY:	default test install clean distclean copy_us2gb
22
23# do not run parallel make on the target files (does not work properly, at least on FreeBSD)
24.NOTPARALLEL: $(MO_TRANSLATIONS)
25
26default::	copy_us2gb $(MO_TRANSLATIONS)
27	@echo Languages: $(LANGS)
28
29# create en_GB by copying en_US
30copy_us2gb:
31	mkdir -p en_GB
32	sed -r 's/^("Language:) en_US/\1en_GB/' en_US/openxpki.po > en_GB/openxpki.po
33
34$(PO_SOURCES):
35	@if (test ! -d $(@:openxpki.po=)); then echo creating directory for $(@:openxpki.po=); mkdir $(@:openxpki.po=); fi
36	@if (test ! -f $@); then echo creating po file $@; cp openxpki.pot $@; fi
37	@if (test `uname` = "SunOS"); then \
38                gmsgmerge -s --update $@ openxpki.pot; \
39	else \
40		msgmerge -s --update $@ openxpki.pot; \
41	fi
42	@rm -f $@~
43
44## do not depend on openxpki.pot or some directories - this does not work
45scan:
46	perl build-pot.pl $(POT_SOURCES) > openxpki.pot
47	$(MAKE) MAKEFLAGS=-B $(PO_SOURCES)
48
49install::	$(LANGS)
50	$(MAKE) install_dir DIR=$(LOCALE_DIR)
51	@set -e; for lang in $(LANGS); do \
52		$(MAKE) install_dir DIR=$(LOCALE_DIR)/$$lang; \
53		$(MAKE) install_dir DIR=$(LOCALE_DIR)/$$lang/LC_MESSAGES; \
54		if (test `uname` = "SunOS"); then \
55			$(INSTALL) -m 644 -f $(LOCALE_DIR)/$$lang/LC_MESSAGES $$lang/$(MO_FILE); \
56		else \
57		        $(INSTALL) -m 644 $$lang/$(MO_FILE) $(LOCALE_DIR)/$$lang/LC_MESSAGES/$(MO_FILE); \
58		fi \
59	done
60
61install_dir:
62	@if (test ! -d $(DIR)); then \
63		$(INSTALL) -m 755 -d $(DIR); \
64	else \
65		echo directory already exists; \
66	fi
67
68.SUFFIXES: .mo .po
69
70.po.mo:
71	@if (test -f $<.local)  ; then \
72		echo "Using local file" ; \
73		msgcat --use-first $<.local $< | msgfmt -o $@ - ; \
74	else \
75		msgfmt -o $@ $< ; \
76	fi
77
78test install clean distclean::
79
80clean::
81	rm -f */*.po~
82
83distclean:: clean
84	rm -f *.pot */*.mo
85
86writeversion:
87	@  if version=$$($(VERGEN) --format version 2>/dev/null); then \
88		echo "$$version" > $(VERSION_FILE); \
89		fi
90	@( if (test ! -f $(VERSION_FILE) ) ; then \
91		echo "Could not determine version" ; \
92		exit 1; \
93	fi )
94
95readversion: writeversion
96VERSION=$(shell cat $(VERSION_FILE))
97
98#dist:	VERSION=`$(VERGEN) --format version`
99dist: readversion
100	if (test -d $(PACKAGE)-$(VERSION)) ; then \
101		rm -rf $(PACKAGE)-$(VERSION)/ ; \
102	fi
103	mkdir $(PACKAGE)-$(VERSION)
104	tar -c -p -f - \
105		--exclude "*.svn" \
106		--exclude "$(PACKAGE)-*" \
107		--exclude "*.1" \
108		--exclude "*~" \
109		. | \
110		tar -C $(PACKAGE)-$(VERSION)/ -x -f -
111	tar cf $(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION)
112	gzip --best --force $(PACKAGE)-$(VERSION).tar
113	rm -rf $(PACKAGE)-$(VERSION)/
114
115