# Makefile for PO directory in any package using GNU gettext.
# Usually the message domain is the same as the package name.
PACKAGE = amanda
MAINTAINER_EMAIL = support@zmanda.com
POFILES = $(wildcard *.po)
#MOFILES = $(patsubst %.po,%.mo,$(POFILES))
MOFILES =
CFILES = $(wildcard $(top_srcdir)/*/*.[ch])
PLFILES = $(wildcard $(top_srcdir)/*/*.pl.in)
SHFILES = $(wildcard $(top_srcdir)/*/*.sh.in)
ALLFILES = $(CFILES) $(PLFILES) $(SHFILES)
# This variable depends on the location of this directory.
top_builddir = ..
localedir=$(datadir)/locale
# These options get passed to xgettext.
XGETTEXT_OPTIONS = --keyword=_ --keyword=_T
# This is the list of locale categories, beyond LC_MESSAGES, for which the
# message catalogs shall be used. It is usually empty.
EXTRA_LOCALE_CATEGORIES =
GMSGFMT = gmsgfmt
MSGFMT = msgfmt
MSGINIT = msginit
MSGMERGE = msgmerge
MSGMERGE_UPDATE = msgmerge --update
XGETTEXT = xgettext
DISTFILES = \
${POFILES} \
${MOFILES} \
boldquot.sed \
en@boldquot.header \
en@quot.header \
insert-header.sin \
Makefile.am \
Makefile.in \
Makevars \
quot.sed \
remove-potcdate.sin \
Rules-quot \
stamp-po
SUFFIXES = .po .mo .sed .sin
.sin.sed:
sed -e '/^#/d' $< > t-$@
mv t-$@ $@
all: $(MOFILES)
# This target rebuilds amanda.pot; it is an expensive operation.
# Note that amanda.pot is not touched if it doesn't need to be changed.
amanda.pot: $(ALLFILES)
@echo $(XGETTEXT) --language=C --output=amanda.pot ...
@$(XGETTEXT) --output=amanda.pot --default-domain=amanda \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) --language=C \
$(CFILES)
@echo $(XGETTEXT) --language=Perl --join-existing --output=amanda.pot ...
@$(XGETTEXT) --output=amanda.pot --default-domain=amanda \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) --language=Perl \
--join-existing $(PLFILES)
@echo $(XGETTEXT) --language=Shell --join-existing --output=amanda.pot ...
@$(XGETTEXT) --output=amanda.pot --default-domain=amanda \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) --language=Shell \
--join-existing $(SHFILES)
@test ! -f amanda.po || { \
if test -f $(srcdir)/amanda.pot; then \
sed -f remove-potcdate.sed < $(srcdir)/amanda.pot > amanda.1po && \
sed -f remove-potcdate.sed < amanda.po > amanda.2po && \
if cmp amanda.1po amanda.2po >/dev/null 2>&1; then \
rm -f amanda.1po amanda.2po amanda.po; \
else \
rm -f amanda.1po amanda.2po $(srcdir)/amanda.pot && \
mv amanda.po $(srcdir)/amanda.pot; \
fi; \
else \
mv amanda.po $(srcdir)/amanda.pot; \
fi; \
}
# This target rebuilds a PO file if amanda.pot has changed.
# Note that a PO file is not touched if it doesn't need to be changed.
%.po: amanda.pot
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
if test "$$lang" = "en_ZM"; then \
echo msgen -o en.po amanda.pot; \
msgen -o en.po amanda.pot; \
elif test -f "$(srcdir)/$${lang}.po"; then \
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po amanda.pot"; \
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po amanda.pot; \
else \
echo $(MSGINIT) --locale=$${lang} --input=amanda.pot --output-file=$${lang}.po; \
$(MSGINIT) --no-translator --locale=$${lang} --input=amanda.pot --output-file=$${lang}.po; \
fi
#en_ZM.po: en.po zlocale.pl ztranslation
# @chmod +x ./zlocale.pl
# ./zlocale.pl
%.mo: %.po
@echo "$(MSGFMT) -o $@ $<"; \
$(MSGFMT) -o t-$@ $< && mv t-$@ $@
install-data-hook: $(MOFILES)
@for cat in "" $(MOFILES); do \
if test -z "$$cat" -o "$$cat" = "en.mo"; then \
continue; \
fi; \
cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.mo$$//'`; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
$(MKDIR_P) $(DESTDIR)$$dir; \
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
$(INSTALL) $$realcat $(DESTDIR)$$dir/amanda.mo; \
echo "installing $$realcat as $(DESTDIR)$$dir/amanda.mo"; \
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
if test -n "$$lc"; then \
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
for file in *; do \
if test -f $$file; then \
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
fi; \
done); \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
else \
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
:; \
else \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
fi; \
fi; \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/amanda.mo; \
ln -s ../LC_MESSAGES/amanda.mo $(DESTDIR)$(localedir)/$$lang/$$lc/amanda.mo 2>/dev/null || \
ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/amanda.mo $(DESTDIR)$(localedir)/$$lang/$$lc/amanda.mo 2>/dev/null || \
cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/amanda.mo $(DESTDIR)$(localedir)/$$lang/$$lc/amanda.mo; \
echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/amanda.mo"; \
fi; \
done; \
done