diff options
Diffstat (limited to 'po')
| -rw-r--r-- | po/Makefile.in.in | 167 | 
1 files changed, 128 insertions, 39 deletions
| diff --git a/po/Makefile.in.in b/po/Makefile.in.in index 6f2e2e94..83d8838a 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -1,5 +1,5 @@  # Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu>  #  # This file can be copied and used freely without restrictions.  It can  # be used in projects which are not available under the GNU General Public @@ -8,10 +8,12 @@  # Please note that the actual code of GNU gettext is covered by the GNU  # General Public License and is *not* in the public domain.  # -# Origin: gettext-0.13 +# Origin: gettext-0.18 +GETTEXT_MACRO_VERSION = 0.18  PACKAGE = @PACKAGE@  VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@  SHELL = /bin/sh  @SET_MAKE@ @@ -22,18 +24,38 @@ VPATH = @srcdir@  prefix = @prefix@  exec_prefix = @exec_prefix@ -datadir = @datadir@  datarootdir = @datarootdir@ -localedir = $(datadir)/locale +datadir = @datadir@ +localedir = @localedir@  gettextsrcdir = $(datadir)/gettext/po  INSTALL = @INSTALL@  INSTALL_DATA = @INSTALL_DATA@ -mkinstalldirs = @INSTALL@ -d -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))  MSGMERGE = msgmerge  MSGMERGE_UPDATE = @MSGMERGE@ --update  MSGINIT = msginit @@ -46,7 +68,7 @@ UPDATEPOFILES = @UPDATEPOFILES@  DUMMYPOFILES = @DUMMYPOFILES@  DISTFILES.common = Makefile.in.in remove-potcdate.sin \  $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) -DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \ +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \  $(POFILES) $(GMOFILES) \  $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) @@ -57,7 +79,7 @@ CATALOGS = @CATALOGS@  # Makevars gets inserted here. (Don't remove this line!)  .SUFFIXES: -.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update  .po.mo:  	@echo "$(MSGFMT) -c -o $@ $<"; \ @@ -66,19 +88,32 @@ CATALOGS = @CATALOGS@  .po.gmo:  	@lang=`echo $* | sed -e 's,.*/,,'`; \  	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ -	echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ -	cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo +	echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ +	cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo  .sin.sed:  	sed -e '/^#/d' $< > t-$@  	mv t-$@ $@ -all: all-@USE_NLS@ +all: check-macro-version all-@USE_NLS@  all-yes: stamp-po  all-no: +# Ensure that the gettext macros and this Makefile.in.in are in sync. +check-macro-version: +	@test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ +	  || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ +	       exit 1; \ +	     } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). +  # stamp-po is a timestamp denoting the last time at which the CATALOGS have  # been loosely updated. Its purpose is that when a developer or translator  # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, @@ -88,10 +123,13 @@ all-no:  # $(POFILES) has been designed to not touch files that don't need to be  # changed.  stamp-po: $(srcdir)/$(DOMAIN).pot -	test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) -	@echo "touch stamp-po" -	@echo timestamp > stamp-poT -	@mv stamp-poT stamp-po +	test ! -f $(srcdir)/$(DOMAIN).pot || \ +	  test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) +	@test ! -f $(srcdir)/$(DOMAIN).pot || { \ +	  echo "touch stamp-po" && \ +	  echo timestamp > stamp-poT && \ +	  mv stamp-poT stamp-po; \ +	}  # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',  # otherwise packages like GCC can not be built if only parts of the source @@ -100,11 +138,34 @@ stamp-po: $(srcdir)/$(DOMAIN).pot  # This target rebuilds $(DOMAIN).pot; it is an expensive operation.  # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.  $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed -	$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ -	  --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ -	  --files-from=$(srcdir)/POTFILES.in \ -	  --copyright-holder='$(COPYRIGHT_HOLDER)' \ -	  --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)' +	if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ +	  package_gnu='GNU '; \ +	else \ +	  package_gnu=''; \ +	fi; \ +	if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ +	  msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ +	else \ +	  msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ +	fi; \ +	case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ +	  '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ +	    $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ +	      --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ +	      --files-from=$(srcdir)/POTFILES.in \ +	      --copyright-holder='$(COPYRIGHT_HOLDER)' \ +	      --msgid-bugs-address="$$msgid_bugs_address" \ +	    ;; \ +	  *) \ +	    $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ +	      --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ +	      --files-from=$(srcdir)/POTFILES.in \ +	      --copyright-holder='$(COPYRIGHT_HOLDER)' \ +	      --package-name="$${package_gnu}@PACKAGE@" \ +	      --package-version='@VERSION@' \ +	      --msgid-bugs-address="$$msgid_bugs_address" \ +	    ;; \ +	esac  	test ! -f $(DOMAIN).po || { \  	  if test -f $(srcdir)/$(DOMAIN).pot; then \  	    sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ @@ -130,16 +191,27 @@ $(srcdir)/$(DOMAIN).pot:  # Note that a PO file is not touched if it doesn't need to be changed.  $(POFILES): $(srcdir)/$(DOMAIN).pot  	@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ -	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ -	echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ -	cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot +	if test -f "$(srcdir)/$${lang}.po"; then \ +	  test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ +	  echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ +	  cd $(srcdir) \ +	    && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ +	           '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ +	             $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ +	           *) \ +	             $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ +	         esac; \ +	       }; \ +	else \ +	  $(MAKE) $${lang}.po-create; \ +	fi  install: install-exec install-data  install-exec:  install-data: install-data-@USE_NLS@  	if test "$(PACKAGE)" = "gettext-tools"; then \ -	  $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ +	  $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \  	  for file in $(DISTFILES.common) Makevars.template; do \  	    $(INSTALL_DATA) $(srcdir)/$$file \  			    $(DESTDIR)$(gettextsrcdir)/$$file; \ @@ -152,13 +224,12 @@ install-data: install-data-@USE_NLS@  	fi  install-data-no: all  install-data-yes: all -	$(mkinstalldirs) $(DESTDIR)$(datadir)  	@catalogs='$(CATALOGS)'; \  	for cat in $$catalogs; do \  	  cat=`basename $$cat`; \  	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \  	  dir=$(localedir)/$$lang/LC_MESSAGES; \ -	  $(mkinstalldirs) $(DESTDIR)$$dir; \ +	  $(mkdir_p) $(DESTDIR)$$dir; \  	  if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \  	  $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \  	  echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ @@ -198,19 +269,18 @@ installdirs: installdirs-exec installdirs-data  installdirs-exec:  installdirs-data: installdirs-data-@USE_NLS@  	if test "$(PACKAGE)" = "gettext-tools"; then \ -	  $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ +	  $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \  	else \  	  : ; \  	fi  installdirs-data-no:  installdirs-data-yes: -	$(mkinstalldirs) $(DESTDIR)$(datadir)  	@catalogs='$(CATALOGS)'; \  	for cat in $$catalogs; do \  	  cat=`basename $$cat`; \  	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \  	  dir=$(localedir)/$$lang/LC_MESSAGES; \ -	  $(mkinstalldirs) $(DESTDIR)$$dir; \ +	  $(mkdir_p) $(DESTDIR)$$dir; \  	  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 \ @@ -285,11 +355,14 @@ dist distdir:  	$(MAKE) update-po  	@$(MAKE) dist2  # This is a separate target because 'update-po' must be executed before. -dist2: $(DISTFILES) +dist2: stamp-po $(DISTFILES)  	dists="$(DISTFILES)"; \  	if test "$(PACKAGE)" = "gettext-tools"; then \  	  dists="$$dists Makevars.template"; \  	fi; \ +	if test -f $(srcdir)/$(DOMAIN).pot; then \ +	  dists="$$dists $(DOMAIN).pot stamp-po"; \ +	fi; \  	if test -f $(srcdir)/ChangeLog; then \  	  dists="$$dists ChangeLog"; \  	fi; \ @@ -301,9 +374,9 @@ dist2: $(DISTFILES)  	if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \  	for file in $$dists; do \  	  if test -f $$file; then \ -	    cp -p $$file $(distdir); \ +	    cp -p $$file $(distdir) || exit 1; \  	  else \ -	    cp -p $(srcdir)/$$file $(distdir); \ +	    cp -p $(srcdir)/$$file $(distdir) || exit 1; \  	  fi; \  	done @@ -312,6 +385,13 @@ update-po: Makefile  	test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)  	$(MAKE) update-gmo +# General rule for creating PO files. + +.nop.po-create: +	@lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ +	echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ +	exit 1 +  # General rule for updating PO files.  .nop.po-update: @@ -320,9 +400,15 @@ update-po: Makefile  	tmpdir=`pwd`; \  	echo "$$lang:"; \  	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ -	echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ +	echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \  	cd $(srcdir); \ -	if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ +	if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ +	       '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ +	         $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ +	       *) \ +	         $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ +	     esac; \ +	   }; then \  	  if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \  	    rm -f $$tmpdir/$$lang.new.po; \  	  else \ @@ -343,10 +429,13 @@ $(DUMMYPOFILES):  update-gmo: Makefile $(GMOFILES)  	@: -Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@ +# Recreate Makefile by invoking config.status. Explicitly invoke the shell, +# because execution permission bits may not work on the current file system. +# Use @SHELL@, which is the shell determined by autoconf for the use by its +# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@  	cd $(top_builddir) \ -	  && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ -	       $(SHELL) ./config.status +	  && @SHELL@ ./config.status $(subdir)/$@.in po-directories  force: | 
