]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
maint: avoid spurious "make distcheck" failure
authorJim Meyering <meyering@fb.com>
Tue, 20 Jun 2017 14:53:17 +0000 (07:53 -0700)
committerJim Meyering <meyering@fb.com>
Tue, 20 Jun 2017 23:01:39 +0000 (16:01 -0700)
When the generated file, doc/constants.texi, happens to be older than
doc/coreutils.info, it will not be updated until/unless its generated
contents change.  This is due to way that rule is careful to update
the file, to avoid provoking a pointless rerunning of makeinfo.

Note that this does not happen when one first runs "make distclean",
as recommended in README-release.  However, I sometimes run it as
a more-rigorous "make check", and shouldn't have to manually run
"make distclean" first, in that case.

Before this change, one could reproduce the failure by running
`touch -dyesterday doc/constants.texi && make distcheck`.  It would
fail with "makeinfo: could not open ../../doc/coreutils.info-t
for writing: Permission denied"
* Makefile.am (dist-hook): Touch the two generated files, so that
they cannot be out of date wrt doc/coreutils.texi.

Makefile.am

index 68f537cef85f0eecc8f5dadf14263a17464aca8d..396112f0ca394db8e3ef4c26e577bbbe0ec4ad40 100644 (file)
@@ -90,11 +90,14 @@ BUILT_SOURCES = .version
 # Have .timestamp based dates only in tarball builds.
 # The perl substitution is to change some key uses of "rm" to "/bin/rm".
 # See the rm_subst comment for details.
+# The touch avoids a subtle, spurious "make distcheck" failure.
 dist-hook: gen-ChangeLog
        $(AM_V_GEN)chmod -R +rw $(distdir)
        $(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
        $(AM_V_GEN)date +%s > $(distdir)/.timestamp
        $(AM_V_at)perl -pi -e '$(rm_subst)' $(distdir)/Makefile.in
+       $(AM_V_at)touch $(distdir)/doc/constants.texi \
+         $(distdir)/doc/coreutils.info
 
 gen_start_ver = 8.15
 .PHONY: gen-ChangeLog