1*2d543d20SAndroid Build Coastguard Worker# 2*2d543d20SAndroid Build Coastguard Worker# Makefile for the PO files (translation) catalog 3*2d543d20SAndroid Build Coastguard Worker# 4*2d543d20SAndroid Build Coastguard Worker 5*2d543d20SAndroid Build Coastguard WorkerPREFIX ?= /usr 6*2d543d20SAndroid Build Coastguard Worker 7*2d543d20SAndroid Build Coastguard Worker# What is this package? 8*2d543d20SAndroid Build Coastguard WorkerNLSPACKAGE = python 9*2d543d20SAndroid Build Coastguard WorkerPOTFILE = $(NLSPACKAGE).pot 10*2d543d20SAndroid Build Coastguard WorkerINSTALL = /usr/bin/install -c -p 11*2d543d20SAndroid Build Coastguard WorkerINSTALL_DATA = $(INSTALL) -m 644 12*2d543d20SAndroid Build Coastguard WorkerINSTALL_DIR = /usr/bin/install -d 13*2d543d20SAndroid Build Coastguard Worker 14*2d543d20SAndroid Build Coastguard Worker# destination directory 15*2d543d20SAndroid Build Coastguard WorkerINSTALL_NLS_DIR = $(PREFIX)/share/locale 16*2d543d20SAndroid Build Coastguard Worker 17*2d543d20SAndroid Build Coastguard Worker# PO catalog handling 18*2d543d20SAndroid Build Coastguard WorkerMSGMERGE = msgmerge 19*2d543d20SAndroid Build Coastguard WorkerMSGMERGE_FLAGS = -q 20*2d543d20SAndroid Build Coastguard WorkerXGETTEXT = xgettext --default-domain=$(NLSPACKAGE) 21*2d543d20SAndroid Build Coastguard WorkerMSGFMT = msgfmt 22*2d543d20SAndroid Build Coastguard Worker 23*2d543d20SAndroid Build Coastguard Worker# All possible linguas 24*2d543d20SAndroid Build Coastguard WorkerPO_LINGUAS := $(sort $(patsubst %.po,%,$(wildcard *.po))) 25*2d543d20SAndroid Build Coastguard Worker 26*2d543d20SAndroid Build Coastguard Worker# Only the files matching what the user has set in LINGUAS 27*2d543d20SAndroid Build Coastguard WorkerUSER_LINGUAS := $(filter $(patsubst %,%%,$(LINGUAS)),$(PO_LINGUAS)) 28*2d543d20SAndroid Build Coastguard Worker 29*2d543d20SAndroid Build Coastguard Worker# if no valid LINGUAS, build all languages 30*2d543d20SAndroid Build Coastguard WorkerUSE_LINGUAS := $(if $(USER_LINGUAS),$(USER_LINGUAS),$(PO_LINGUAS)) 31*2d543d20SAndroid Build Coastguard Worker 32*2d543d20SAndroid Build Coastguard WorkerPOFILES = $(patsubst %,%.po,$(USE_LINGUAS)) 33*2d543d20SAndroid Build Coastguard WorkerMOFILES = $(patsubst %.po,%.mo,$(POFILES)) 34*2d543d20SAndroid Build Coastguard WorkerPOTFILES = $(shell cat POTFILES) 35*2d543d20SAndroid Build Coastguard Worker 36*2d543d20SAndroid Build Coastguard Worker#default:: clean 37*2d543d20SAndroid Build Coastguard Worker 38*2d543d20SAndroid Build Coastguard Workerall:: $(MOFILES) 39*2d543d20SAndroid Build Coastguard Worker 40*2d543d20SAndroid Build Coastguard Worker$(POTFILE): $(POTFILES) 41*2d543d20SAndroid Build Coastguard Worker $(XGETTEXT) -L Python --keyword=_ --keyword=N_ $(POTFILES) 42*2d543d20SAndroid Build Coastguard Worker $(XGETTEXT) -j --keyword=_ --keyword=N_ ../sepolicy/sepolicy/sepolicy.glade 43*2d543d20SAndroid Build Coastguard Worker @if cmp -s $(NLSPACKAGE).po $(POTFILE); then \ 44*2d543d20SAndroid Build Coastguard Worker rm -f $(NLSPACKAGE).po; \ 45*2d543d20SAndroid Build Coastguard Worker else \ 46*2d543d20SAndroid Build Coastguard Worker mv -f $(NLSPACKAGE).po $(POTFILE); \ 47*2d543d20SAndroid Build Coastguard Worker fi; \ 48*2d543d20SAndroid Build Coastguard Worker 49*2d543d20SAndroid Build Coastguard Worker 50*2d543d20SAndroid Build Coastguard Workerrefresh-po: Makefile 51*2d543d20SAndroid Build Coastguard Worker for cat in $(POFILES); do \ 52*2d543d20SAndroid Build Coastguard Worker lang=`basename $$cat .po`; \ 53*2d543d20SAndroid Build Coastguard Worker if $(MSGMERGE) $(MSGMERGE_FLAGS) $$lang.po $(POTFILE) > $$lang.pot ; then \ 54*2d543d20SAndroid Build Coastguard Worker mv -f $$lang.pot $$lang.po ; \ 55*2d543d20SAndroid Build Coastguard Worker echo "$(MSGMERGE) of $$lang succeeded" ; \ 56*2d543d20SAndroid Build Coastguard Worker else \ 57*2d543d20SAndroid Build Coastguard Worker echo "$(MSGMERGE) of $$lang failed" ; \ 58*2d543d20SAndroid Build Coastguard Worker rm -f $$lang.pot ; \ 59*2d543d20SAndroid Build Coastguard Worker fi \ 60*2d543d20SAndroid Build Coastguard Worker done 61*2d543d20SAndroid Build Coastguard Worker 62*2d543d20SAndroid Build Coastguard Workerclean: 63*2d543d20SAndroid Build Coastguard Worker @rm -fv *mo *~ .depend 64*2d543d20SAndroid Build Coastguard Worker @rm -rf tmp 65*2d543d20SAndroid Build Coastguard Worker 66*2d543d20SAndroid Build Coastguard Workerinstall: $(MOFILES) 67*2d543d20SAndroid Build Coastguard Worker @for n in $(MOFILES); do \ 68*2d543d20SAndroid Build Coastguard Worker l=`basename $$n .mo`; \ 69*2d543d20SAndroid Build Coastguard Worker $(INSTALL_DIR) $(DESTDIR)$(INSTALL_NLS_DIR)/$$l/LC_MESSAGES; \ 70*2d543d20SAndroid Build Coastguard Worker $(INSTALL_DATA) --verbose $$n $(DESTDIR)$(INSTALL_NLS_DIR)/$$l/LC_MESSAGES/selinux-$(NLSPACKAGE).mo; \ 71*2d543d20SAndroid Build Coastguard Worker done 72*2d543d20SAndroid Build Coastguard Worker 73*2d543d20SAndroid Build Coastguard Worker%.mo: %.po 74*2d543d20SAndroid Build Coastguard Worker $(MSGFMT) -o $@ $< 75*2d543d20SAndroid Build Coastguard Workerreport: 76*2d543d20SAndroid Build Coastguard Worker @for cat in $(wildcard *.po); do \ 77*2d543d20SAndroid Build Coastguard Worker echo -n "$$cat: "; \ 78*2d543d20SAndroid Build Coastguard Worker msgfmt -v --statistics -o /dev/null $$cat; \ 79*2d543d20SAndroid Build Coastguard Worker done 80*2d543d20SAndroid Build Coastguard Worker 81*2d543d20SAndroid Build Coastguard Worker.PHONY: missing depend 82*2d543d20SAndroid Build Coastguard Worker 83*2d543d20SAndroid Build Coastguard Workerrelabel: 84*2d543d20SAndroid Build Coastguard Worker 85*2d543d20SAndroid Build Coastguard Workertest: 86