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