summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2020-05-04 18:48:35 +0200
committerAkim Demaille <akim.demaille@gmail.com>2020-05-04 19:06:59 +0200
commitb86dcaf40ba0e06ac2d8a3c3fcba5a092e3ed105 (patch)
treec394d04bd8ec3f23fc4da5cb67155166616eec77
parent0fafbbdefb288cda73990a156cf185e8fd0cf04b (diff)
downloadbison-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--NEWS1
-rw-r--r--doc/local.mk32
2 files changed, 24 insertions, 9 deletions
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 \
- --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