Package: debhelper
Version: 7.4.5
Severity: normal

Hello,

  I stumbled on a case where 'exists_make_target' subroutine in 
  Debian/Debhelper/Buildsystem/makefile.pm runs into an infinite loop.

  Please check the attached Makefile that caused this problem.
  In this Makefile, the 'stamp-i18n' target (which is a dependancy of 
  'all' target) calls: make install

  So, upstream recreated 'stamp-i18n' stamp before and after running 
  'make install' to avoid that make runs into an infinite loop.

  Now, since 'exists_make_target' runs 'make -n <target>' to check for 
  the target, this stamp doesn't get created, which caused make to go 
  into an infinite loop.

-- System Information:
Debian Release: squeeze/sid
  APT prefers karmic-updates
  APT policy: (500, 'karmic-updates'), (500, 'karmic-security'), (500, 
'karmic-proposed'), (500, 'karmic-backports'), (500, 'karmic')
Architecture: i386 (i686)

Kernel: Linux 2.6.31-15-generic (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages debhelper depends on:
ii  binutils                2.20-0ubuntu2    The GNU assembler, linker and bina
ii  dpkg-dev                1.15.4ubuntu2    Debian package development tools
ii  file                    5.03-1ubuntu1    Determines file type using "magic"
ii  html2text               1.3.2a-14        advanced HTML to text converter
ii  man-db                  2.5.6-2          on-line manual pager
ii  perl                    5.10.0-24ubuntu4 Larry Wall's Practical Extraction 
ii  perl-base               5.10.0-24ubuntu4 minimal Perl system
ii  po-debconf              1.0.16           tool for managing templates file t

debhelper recommends no packages.

Versions of packages debhelper suggests:
ii  dh-make                       0.50       tool that converts source archives

-- no debconf information
# Makefile for PO directory in any package using GNU gettext.
# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper <drep...@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
# License but which still want to provide support for the GNU gettext
# functionality.
# 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.16

PACKAGE = geda-gaf
VERSION = 1.6.0
PACKAGE_BUGREPORT = geda-...@seul.org

SHELL = /bin/sh


srcdir = .
top_srcdir = ../..


prefix = /usr
exec_prefix = ${prefix}
datarootdir = ${prefix}/share
datadir = ${datarootdir}
localedir = ${datarootdir}/locale
gettextsrcdir = $(datadir)/gettext/po

INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644

# 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,
# $(SHELL) /tmp/geda-gaf-1.6.0/build-tools/install-sh does not start with 
$(SHELL), so we add it.
# In automake >= 1.10, /bin/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) $(SHELL) /tmp/geda-gaf-1.6.0/build-tools/install-sh -d
install_sh = $(SHELL) $(SHELL) /tmp/geda-gaf-1.6.0/build-tools/install-sh
MKDIR_P = /bin/mkdir -p
mkdir_p = /bin/mkdir -p

GMSGFMT_ = /usr/bin/msgfmt
GMSGFMT_no = /usr/bin/msgfmt
GMSGFMT_yes = /usr/bin/msgfmt
GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
MSGFMT_ = /usr/bin/msgfmt
MSGFMT_no = /usr/bin/msgfmt
MSGFMT_yes = /usr/bin/msgfmt
MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
XGETTEXT_ = ${SHELL} /tmp/geda-gaf-1.6.0/build-tools/desktop-i18n --extract 
--xgettext=/usr/bin/xgettext --
XGETTEXT_no = ${SHELL} /tmp/geda-gaf-1.6.0/build-tools/desktop-i18n --extract 
--xgettext=/usr/bin/xgettext --
XGETTEXT_yes = /usr/bin/xgettext
XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
MSGMERGE = msgmerge
MSGMERGE_UPDATE = /usr/bin/msgmerge --update
MSGINIT = msginit
MSGCONV = msgconv
MSGFILTER = msgfilter

POFILES =  nl.po en_GB.po es.po de.po
GMOFILES =  nl.gmo en_GB.gmo es.gmo de.gmo
UPDATEPOFILES =  nl.po-update en_GB.po-update es.po-update de.po-update
DUMMYPOFILES =  nl.nop en_GB.nop es.nop de.nop
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
$(POFILES) $(GMOFILES) \
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)

POTFILES = \
     ../../libgeda/data/libgeda.xml.in \
     ../../libgeda/data/x-geda-gsch2pcb-project.desktop.in \
     ../../libgeda/data/x-geda-schematic.desktop.in \
     ../../libgeda/data/x-geda-symbol.desktop.in \
     ../../libgeda/src/a_basic.c \
     ../../libgeda/src/f_basic.c \
     ../../libgeda/src/f_print.c \
     ../../libgeda/src/g_basic.c \
     ../../libgeda/src/g_rc.c \
     ../../libgeda/src/o_arc_basic.c \
     ../../libgeda/src/o_attrib.c \
     ../../libgeda/src/o_basic.c \
     ../../libgeda/src/o_box_basic.c \
     ../../libgeda/src/o_bus_basic.c \
     ../../libgeda/src/o_circle_basic.c \
     ../../libgeda/src/o_complex_basic.c \
     ../../libgeda/src/o_embed.c \
     ../../libgeda/src/o_line_basic.c \
     ../../libgeda/src/o_net_basic.c \
     ../../libgeda/src/o_path_basic.c \
     ../../libgeda/src/o_picture.c \
     ../../libgeda/src/o_pin_basic.c \
     ../../libgeda/src/o_text_basic.c \
     ../../libgeda/src/s_clib.c \
     ../../libgeda/src/s_color.c \
     ../../libgeda/src/s_hierarchy.c \
     ../../libgeda/src/s_page.c \
     ../../libgeda/src/s_slib.c \
     ../../intl/plural.c

CATALOGS =  nl.gmo en_GB.gmo es.gmo de.gmo

# Makevars gets inserted here. (Don't remove this line!)
#                                                       -*-GNUmakefile-*-
# Makefile variables for PO directory in any package using GNU gettext.

# Usually the message domain is the same as the package name.
#DOMAIN = $(PACKAGE)
# Unfortunately, we need to use message domains that match the current
# version of libgeda. Even more unfortunately, the way that the
# gettext m4 code merges Makevars into the Makefile precludes Makevars
# from containing anything determined at configure time. So we have
# *yet another* Makefile fragment.
include domain.mak

# These two variables depend on the location of this directory.
subdir = libgeda/po
top_builddir = ../..

# These options get passed to xgettext.
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_

# This is the copyright holder that gets inserted into the header of the
# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
# package.  (Note that the msgstr strings, extracted from the package's
# sources, belong to the copyright holder of the package.)  Translators are
# expected to transfer the copyright for their translations to this person
# or entity, or to disclaim their copyright.  The empty string stands for
# the public domain; in this case the translators are expected to disclaim
# their copyright.
COPYRIGHT_HOLDER = gEDA Developers

# This is the email address or URL to which the translators shall report
# bugs in the untranslated strings:
# - Strings which are not entire sentences, see the maintainer guidelines
#   in the GNU gettext documentation, section 'Preparing Strings'.
# - Strings which use unclear terms or require additional context to be
#   understood.
# - Strings which make invalid assumptions about notation of date, time or
#   money.
# - Pluralisation problems.
# - Incorrect English spelling.
# - Incorrect formatting.
# It can be your email address, or a mailing list address where translators
# can write to without being subscribed, or the URL of a web page through
# which the translators can contact you.
MSGID_BUGS_ADDRESS = geda-...@seul.org

# 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 =

..SUFFIXES:
..SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update

..po.mo:
        @echo "$(MSGFMT) -c -o $@ $<"; \
        $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@

..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

..sin.sed:
        sed -e '/^#/d' $< > t-$@
        mv t-$@ $@


all: all-yes

all-yes: stamp-po
all-no:

# $(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,
# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
# invocations of "make" will do nothing. This timestamp would not be necessary
# if updating the $(CATALOGS) would always touch them; however, the rule for
# $(POFILES) has been designed to not touch files that don't need to be
# changed.
stamp-po: $(srcdir)/$(DOMAIN).pot
        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
# have been downloaded.

# 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
        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; \
        $(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"
        test ! -f $(DOMAIN).po || { \
          if test -f $(srcdir)/$(DOMAIN).pot; then \
            sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > 
$(DOMAIN).1po && \
            sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
            if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
              rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
            else \
              rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
              mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
            fi; \
          else \
            mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
          fi; \
        }

# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
# every "make" invocation, only create it when it is missing.
# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
$(srcdir)/$(DOMAIN).pot:
        $(MAKE) $(DOMAIN).pot-update

# This target rebuilds a PO file if $(DOMAIN).pot has changed.
# 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$$//'`; \
        if test -f "$(srcdir)/$${lang}.po"; then \
          test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
          echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
          cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
        else \
          $(MAKE) $${lang}.po-create; \
        fi


install: install-exec install-data
install-exec:
install-data: install-data-yes
        if test "$(PACKAGE)" = "gettext-tools"; then \
          $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
          for file in $(DISTFILES.common) Makevars.template; do \
            $(INSTALL_DATA) $(srcdir)/$$file \
                            $(DESTDIR)$(gettextsrcdir)/$$file; \
          done; \
          for file in Makevars; do \
            rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
          done; \
        else \
          : ; \
        fi
install-data-no: all
install-data-yes: all
        $(mkdir_p) $(DESTDIR)$(datadir)
        @catalogs='$(CATALOGS)'; \
        for cat in $$catalogs; do \
          cat=`basename $$cat`; \
          lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
          dir=$(localedir)/$$lang/LC_MESSAGES; \
          $(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"; \
          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/$(DOMAIN).mo; \
              ln -s ../LC_MESSAGES/$(DOMAIN).mo 
$(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
              ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo 
$(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
              cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo 
$(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
              echo "installing $$realcat link as 
$(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
            fi; \
          done; \
        done

install-strip: install

installdirs: installdirs-exec installdirs-data
installdirs-exec:
installdirs-data: installdirs-data-yes
        if test "$(PACKAGE)" = "gettext-tools"; then \
          $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
        else \
          : ; \
        fi
installdirs-data-no:
installdirs-data-yes:
        $(mkdir_p) $(DESTDIR)$(datadir)
        @catalogs='$(CATALOGS)'; \
        for cat in $$catalogs; do \
          cat=`basename $$cat`; \
          lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
          dir=$(localedir)/$$lang/LC_MESSAGES; \
          $(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 \
                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; \
            fi; \
          done; \
        done

# Define this as empty until I found a useful application.
installcheck:

uninstall: uninstall-exec uninstall-data
uninstall-exec:
uninstall-data: uninstall-data-yes
        if test "$(PACKAGE)" = "gettext-tools"; then \
          for file in $(DISTFILES.common) Makevars.template; do \
            rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
          done; \
        else \
          : ; \
        fi
uninstall-data-no:
uninstall-data-yes:
        catalogs='$(CATALOGS)'; \
        for cat in $$catalogs; do \
          cat=`basename $$cat`; \
          lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
          for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
            rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
          done; \
        done

check: all

info dvi ps pdf html tags TAGS ctags CTAGS ID:

mostlyclean:
        rm -f remove-potcdate.sed
        rm -f stamp-poT
        rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
        rm -fr *.o

clean: mostlyclean

distclean: clean
        rm -f Makefile Makefile.in POTFILES *.mo

maintainer-clean: distclean
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
        rm -f stamp-po $(GMOFILES)

distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir:
        $(MAKE) update-po
        @$(MAKE) dist2
# This is a separate target because 'update-po' must be executed before.
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; \
        for i in 0 1 2 3 4 5 6 7 8 9; do \
          if test -f $(srcdir)/ChangeLog.$$i; then \
            dists="$$dists ChangeLog.$$i"; \
          fi; \
        done; \
        if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
        for file in $$dists; do \
          if test -f $$file; then \
            cp -p $$file $(distdir) || exit 1; \
          else \
            cp -p $(srcdir)/$$file $(distdir) || exit 1; \
          fi; \
        done

update-po: Makefile
        $(MAKE) $(DOMAIN).pot-update
        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:
        @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
        if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; 
fi; \
        tmpdir=`pwd`; \
        echo "$$lang:"; \
        test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
        echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
        cd $(srcdir); \
        if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
          if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
            rm -f $$tmpdir/$$lang.new.po; \
          else \
            if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
              :; \
            else \
              echo "msgmerge for $$lang.po failed: cannot move 
$$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
              exit 1; \
            fi; \
          fi; \
        else \
          echo "msgmerge for $$lang.po failed!" 1>&2; \
          rm -f $$tmpdir/$$lang.new.po; \
        fi

$(DUMMYPOFILES):

update-gmo: Makefile $(GMOFILES)
        @:

Makefile: Makefile.in.in Makevars $(top_builddir)/config.status POTFILES.in 
LINGUAS
        cd $(top_builddir) \
          && $(SHELL) ./config.status $(subdir)/$...@.in po-directories

force:

# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
..NOEXPORT:

# DESKTOP_I18N_RULES  (Do not edit or remove this line)
#####################################################################
# Makefile rules needed by the desktop-i18n tool.
# Copyright (C) 2009  Peter Brett <pe...@peter-b.co.uk>
#
# 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

top_builddir = ../..
MKDIR_P = /bin/mkdir -p

DESKTOP_I18N_LOCALE_DIR = $(top_builddir)/.desktop-i18n

# We need to temporarily install the localisation files somewhere so
# that desktop-i18n --create can look up messages in them. We recreate
# the timestamp before *and* after running 'make install' so that the
# make doesn't go into an infinite loop!
all: stamp-i18n
stamp-i18n: $(DESKTOP_I18N_LOCALE_DIR) stamp-po Makefile
        @echo timestamp > stamp-i18nT && mv stamp-i18nT stamp-i18n
        $(MAKE) prefix=$(DESKTOP_I18N_LOCALE_DIR) install &&    cp 
$(srcdir)/LINGUAS $(DESKTOP_I18N_LOCALE_DIR)/$(DOMAIN).LINGUAS       || rm 
stamp-i18n
        @echo timestamp > stamp-i18nT && mv stamp-i18nT stamp-i18n
$(DESKTOP_I18N_LOCALE_DIR):
        $(MKDIR_P) $(DESKTOP_I18N_LOCALE_DIR)

clean: clean-i18n
clean-i18n:
        -rm -rf $(DESKTOP_I18N_LOCALE_DIR) stamp-i18n

# End of desktop-i18n rules
#####################################################################

# Special Makefile rules for English message catalogs with quotation marks.

DISTFILES.common.extra1 = quot.sed boldquot.sed e...@quot.header 
e...@boldquot.header insert-header.sin Rules-quot

..SUFFIXES: .insert-header .po-update-en

e...@quot.po-create:
        $(MAKE) e...@quot.po-update
e...@boldquot.po-create:
        $(MAKE) e...@boldquot.po-update

e...@quot.po-update: e...@quot.po-update-en
e...@boldquot.po-update: e...@boldquot.po-update-en

..insert-header.po-update-en:
        @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
        if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; 
GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
        tmpdir=`pwd`; \
        echo "$$lang:"; \
        ll=`echo $$lang | sed -e 's/@.*//'`; \
        LC_ALL=C; export LC_ALL; \
        cd $(srcdir); \
        if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null 
| sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed 
-f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; 
then \
          if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
            rm -f $$tmpdir/$$lang.new.po; \
          else \
            if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
              :; \
            else \
              echo "creation of $$lang.po failed: cannot move 
$$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
              exit 1; \
            fi; \
          fi; \
        else \
          echo "creation of $$lang.po failed!" 1>&2; \
          rm -f $$tmpdir/$$lang.new.po; \
        fi

e...@quot.insert-header: insert-header.sin
        sed -e '/^#/d' -e 's/HEADER/e...@quot.header/g' 
$(srcdir)/insert-header.sin > e...@quot.insert-header

e...@boldquot.insert-header: insert-header.sin
        sed -e '/^#/d' -e 's/HEADER/e...@boldquot.header/g' 
$(srcdir)/insert-header.sin > e...@boldquot.insert-header

mostlyclean: mostlyclean-quot
mostlyclean-quot:
        rm -f *.insert-header

Reply via email to