build: use distributed man pages when running with --help fails

When building against an incompatible GLIBC version compared to that
on the build host, then running the just-built binary might fail
although it is the same platform - thus CROSS_COMPILING is false.
As a result, generating the man pages fails.

* man/local.mk (.x.1): Add a check to verify that running the utility
with --help succeeds, otherwise falling back to using 'dummy-man'.
This commit is contained in:
Bernhard Voelker
2019-01-04 21:46:14 +01:00
parent 39ca7731e2
commit f114495e3e

View File

@@ -191,9 +191,16 @@ endif
&& $(MKDIR_P) $$t \
&& (cd $$t && $(LN_S) '$(abs_top_builddir)/src/'$$prog$(EXEEXT) \
$$argv$(EXEEXT)) \
&& : $${SOURCE_DATE_EPOCH=`cat $(srcdir)/.timestamp 2>/dev/null || :`} \
|| exit 1; \
## Double-check whether the built binary succeeds with --help as the above
## CROSS_COMPILING condition might have been wrong in some cases, e.g. when
## building against an incompatible glibc version on the same platform.
$$t/$$argv$(EXEEXT) --help </dev/null >/dev/null \
&& run_help2man="$(run_help2man)" \
|| run_help2man="$(srcdir)/man/dummy-man"; \
: $${SOURCE_DATE_EPOCH=`cat $(srcdir)/.timestamp 2>/dev/null || :`} \
&& : $${TZ=UTC0} && export TZ \
&& export SOURCE_DATE_EPOCH && $(run_help2man) \
&& export SOURCE_DATE_EPOCH && $${run_help2man} \
--source='$(PACKAGE_STRING)' \
--include=$(srcdir)/man/$$name.x \
--output=$$t/$$name.1 \