diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2020-05-04 18:48:35 +0200 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2020-05-04 19:06:59 +0200 |
commit | b86dcaf40ba0e06ac2d8a3c3fcba5a092e3ed105 (patch) | |
tree | c394d04bd8ec3f23fc4da5cb67155166616eec77 | |
parent | 0fafbbdefb288cda73990a156cf185e8fd0cf04b (diff) | |
download | bison-b86dcaf40ba0e06ac2d8a3c3fcba5a092e3ed105.tar.gz |
doc: beware of timestamp issues on Haiku
On Haiku, help2man is fired on a freshly extracted tarball.
Reported by Bruno Haible.
https://lists.gnu.org/r/bug-bison/2020-05/msg00055.html
* doc/local.mk (bison.1): Be robust to a missing help2man.
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | doc/local.mk | 32 |
2 files changed, 24 insertions, 9 deletions
@@ -2,6 +2,7 @@ GNU Bison NEWS * Noteworthy changes in release ?.? (????-??-??) [?] + Portability issues. * Noteworthy changes in release 3.5.93 (2020-05-03) [beta] diff --git a/doc/local.mk b/doc/local.mk index 9ff874c4..aaa89ec1 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -140,17 +140,31 @@ if ! CROSS_COMPILING MAN_DEPS = %D%/bison.help %D%/bison.x $(top_srcdir)/configure endif +# If we don't have help2man, just touch the target. Maintainers must +# have the real thing, so if there's a .git directory, fail hard. +# +# We shouldn't need this, but on some OS the timestamps in the tarball +# leaves us no choice. See +# https://lists.gnu.org/r/bug-bison/2020-05/msg00055.html. $(top_srcdir)/%D%/bison.1: $(MAN_DEPS) - $(AM_V_GEN)$(HELP2MAN) \ - --include=$(top_srcdir)/%D%/bison.x \ - --output=$@.tmp tests/bison - $(AM_V_at)if $(remove_time_stamp) $@ >$@a.tmp 2>/dev/null && \ - $(remove_time_stamp) $@.tmp | cmp $@a.tmp - >/dev/null 2>&1; then \ - touch $@; \ - else \ - mv $@.tmp $@; \ + $(AM_V_GEN)if $(HELP2MAN) --version >/dev/null 2>&1; then \ + $(HELP2MAN) \ + --include=$(top_srcdir)/%D%/bison.x \ + --output=$@.tmp tests/bison && \ + $(remove_time_stamp) $@ >$@a.tmp 2>/dev/null && \ + $(remove_time_stamp) $@.tmp >$@b.tmp 2>/dev/null && \ + if diff $@a.tmp $@b.tmp >/dev/null 2>&1; then \ + touch $@; \ + else \ + mv $@.tmp $@; \ + fi && \ + rm -f $@*.tmp; \ + elif test -d $(srcdir)/.git; then \ + echo >&2 "ERROR: $@: help2man is needed"; \ + exit 1; \ + else \ + touch $@; \ fi - $(AM_V_at)rm -f $@*.tmp if ENABLE_YACC nodist_man_MANS = %D%/yacc.1 |