Hi Paul, > diff --git a/ChangeLog b/ChangeLog > index d020dd5..3a798cf 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,5 +1,13 @@ > 2011-08-11 Paul Eggert <egg...@cs.ucla.edu> > > + po/Makefile.in.in: fix make -q problem > + * build-aux/po/Makefile.in.in (check-macro-version): Remove this > + rule, since there's no file named 'check-macro-version' and its > + use as a file breaks make -q. > + (all): Don't depend on check-macro-version. > + (CHECK_MACRO_VERSION): New macro. > + (stamp-po): Use it. > + > configmake: fix make -q problem > * modules/configmake (configmake.h): Update configmake.h's time stamp > even if the file does not change. Otherwise, 'make -q' fails. > diff --git a/build-aux/po/Makefile.in.in b/build-aux/po/Makefile.in.in > index 83d8838..caedd7f 100644 > --- a/build-aux/po/Makefile.in.in > +++ b/build-aux/po/Makefile.in.in > @@ -96,14 +96,14 @@ CATALOGS = @CATALOGS@ > mv t-$@ $@ > > > -all: check-macro-version all-@USE_NLS@ > +all: 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@" \ > +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; \ > } > @@ -123,6 +123,7 @@ check-macro-version: > # $(POFILES) has been designed to not touch files that don't need to be > # changed. > stamp-po: $(srcdir)/$(DOMAIN).pot > + @$(CHECK_MACRO_VERSION) > test ! -f $(srcdir)/$(DOMAIN).pot || \ > test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) > @test ! -f $(srcdir)/$(DOMAIN).pot || { \
Why can't this be done by adding the line .PHONY: check-macro-version ? I just tried it, "make -q -d" outputs ... Considering target file `all'. File `all' does not exist. Looking for an implicit rule for `all'. ... No implicit rule found for `all'. Considering target file `check-macro-version'. File `check-macro-version' does not exist. Finished prerequisites of target file `check-macro-version'. Must remake target `check-macro-version'. Target file `check-macro-version' needs remade under -q. Finished prerequisites of target file `all'. Giving up on target file `all'. and terminates with exit code 1. Why is that? Why is "make -q" looking for a file 'check-macro-version' although the target is declared phony? Does it mean phony targets are generally incompatible with "make -q"? I'm referring to the GNU make documentation, which says: `.PHONY' The prerequisites of the special target `.PHONY' are considered to be phony targets. When it is time to consider such a target, `make' will run its commands unconditionally, regardless of whether a file with that name exists or what its last-modification time is. and I'm using GNU make 3.81. GNU make 3.82 behaves the same way. Bruno -- In memoriam Paul Richter <http://de.wikipedia.org/wiki/Paul_Richter_(Pfarrer)>