summaryrefslogtreecommitdiffstats
path: root/po/Makefile.am
blob: f401a6f5ef6a38ad6a9cf22fa52e2988ee43f43f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# libguestfs
# Copyright (C) 2009-2012 Red Hat Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

include $(top_srcdir)/subdir-rules.mk

# Old RHEL 5 autoconf doesn't have abs_srcdir.
abs_srcdir ?= $(shell cd $(top_srcdir)/po && pwd)

DOMAIN = $(PACKAGE_NAME)
COPYRIGHT_HOLDER = Red Hat Inc.
MSGID_BUGS_ADDRESS = https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

# Languages.
# Don't use LINGUAS (uppercase) as Gentoo defines it (RHBZ#804464).
linguas     := en_GB es gu hi kn ml mr nl or pa pl ta te uk

POTFILES    := $(shell $(SED) 's,^,$(top_srcdir)/,' $(srcdir)/POTFILES)
POTFILES_ML := $(shell $(SED) 's,^,$(top_srcdir)/,' $(srcdir)/POTFILES-ml)
POFILES     := $(linguas:%=%.po)
GMOFILES    := $(linguas:%=%.gmo)

EXTRA_DIST = \
	POTFILES POTFILES-ml \
	$(DOMAIN).pot \
	$(POFILES) \
	$(GMOFILES)

if HAVE_GNU_GETTEXT

dist-hook:
	$(MAKE) update-po
	cp *.po *.gmo $(distdir)/

update-po:
	$(MAKE) $(DOMAIN).pot
	$(MAKE) $(POFILES)
	$(MAKE) update-gmo

update-gmo: Makefile $(GMOFILES)

$(DOMAIN).pot: Makefile $(POTFILES) $(POTFILES-ml)
	rm -f $@-t $@-ml
	$(XGETTEXT) \
	  -o $@-t \
	  --default-domain=$(DOMAIN) \
	  --add-comments=TRANSLATORS: \
	  --keyword=_ --keyword=N_ --keyword=__ --keyword=__x \
	  --flag=error:3:c-format \
	  --flag=error_at_line:5:c-format \
	  --flag=asprintf:2:c-format \
	  --flag=vasprintf:2:c-format \
	  --flag=xasprintf:1:c-format \
	  --copyright-holder='$(COPYRIGHT_HOLDER)' \
	  --package-name="$(PACKAGE_NAME)" \
	  --package-version="$(PACKAGE_VERSION)" \
	  --msgid-bugs-address="$(MSGID_BUGS_ADDRESS)" \
	  --directory=$(top_srcdir) \
	  --files-from=$(abs_srcdir)/POTFILES
if HAVE_OCAML_GETTEXT
	$(OCAML_GETTEXT) --action extract --extract-pot $@-ml $(POTFILES_ML)
# Don't trust msgcat since it will definitely screw up.  Instead, chop
# the head from the second file and append it to the first.
	echo >> $@-t
	awk '/^#:/{i++}i{print}' < $@-ml >> $@-t
	rm $@-ml
endif
	mv $@-t $@

%.po: $(DOMAIN).pot
	cd $(srcdir) && $(MSGMERGE) -N --update $@ $(DOMAIN).pot

.po.gmo:
	rm -f $@ $@-t
	$(MSGFMT) -c -o $@-t $(srcdir)/$<
	mv $@-t $@

# Install.
# Cannot use 'localedir' since this conflicts with autoconf.
langinstdir = $(datadir)/locale

install-data-hook: $(GMOFILES)
	mkdir -p $(DESTDIR)$(langinstdir)
	for lang in $(linguas); do \
	  d=$(DESTDIR)$(langinstdir)/$$lang/LC_MESSAGES; \
	  mkdir -p $$d; \
	  install -m 0644 $$lang.gmo $$d/$(DOMAIN).mo; \
	done

.PRECIOUS: $(DOMAIN).pot $(POFILES)
SUFFIXES = .po .gmo

else

# If no GNU gettext, 'make update-po' is a dummy rule.
update-po:

endif