I can live with this: have a hard error when we work from the git repo. And it should make simpler the lives of the good guys who help us track portability issues.
commit b86dcaf40ba0e06ac2d8a3c3fcba5a092e3ed105 Author: Akim Demaille <[email protected]> Date: Mon May 4 18:48:35 2020 +0200 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. diff --git a/NEWS b/NEWS index eff14776..db593f00 100644 --- a/NEWS +++ b/NEWS @@ -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 \ - [email protected] tests/bison - $(AM_V_at)if $(remove_time_stamp) $@ >[email protected] 2>/dev/null && \ - $(remove_time_stamp) [email protected] | cmp [email protected] - >/dev/null 2>&1; then \ - touch $@; \ - else \ - mv [email protected] $@; \ + $(AM_V_GEN)if $(HELP2MAN) --version >/dev/null 2>&1; then \ + $(HELP2MAN) \ + --include=$(top_srcdir)/%D%/bison.x \ + [email protected] tests/bison && \ + $(remove_time_stamp) $@ >[email protected] 2>/dev/null && \ + $(remove_time_stamp) [email protected] >[email protected] 2>/dev/null && \ + if diff [email protected] [email protected] >/dev/null 2>&1; then \ + touch $@; \ + else \ + mv [email protected] $@; \ + 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
