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