Apparently, there are still chances we have to deal with buggy pod2man versions.

Deal with that by testing any available pod2man and using it if appropriate,
and falling back to util/pod2man.pl if none was found.
This commit is contained in:
Richard Levitte 2002-05-30 15:19:43 +00:00
parent dbdc5d14d3
commit 2962243d19
4 changed files with 1257 additions and 4 deletions

View file

@ -733,8 +733,9 @@ install_docs:
if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \ if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \
echo "installing man$$sec/`basename $$i .pod`.$$sec"; \ echo "installing man$$sec/`basename $$i .pod`.$$sec"; \
(cd `dirname $$i`; \ (cd `dirname $$i`; \
pod2man --section=$$sec --center=OpenSSL \ sh -c "`cd ../../util; ./pod2mantest ignore` \
--release=$(VERSION) `basename $$i`) \ --section=$$sec --center=OpenSSL \
--release=$(VERSION) `basename $$i`") \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \ > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
done done
@for i in doc/crypto/*.pod doc/ssl/*.pod; do \ @for i in doc/crypto/*.pod doc/ssl/*.pod; do \
@ -742,8 +743,9 @@ install_docs:
if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \ if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \
echo "installing man$$sec/`basename $$i .pod`.$$sec"; \ echo "installing man$$sec/`basename $$i .pod`.$$sec"; \
(cd `dirname $$i`; \ (cd `dirname $$i`; \
pod2man --section=$$sec --center=OpenSSL \ sh -c "`cd ../../util; ./pod2mantest ignore` \
--release=$(VERSION) `basename $$i`) \ --section=$$sec --center=OpenSSL \
--release=$(VERSION) `basename $$i`") \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \ > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
done done

1183
util/pod2man.pl Executable file

File diff suppressed because it is too large Load diff

53
util/pod2mantest Executable file
View file

@ -0,0 +1,53 @@
#!/bin/sh
# This script is used by test/Makefile.ssl to check whether a sane 'pod2man'
# is installed.
# ('make install' should not try to run 'pod2man' if it does not exist or if
# it is a broken 'pod2man' version that is known to cause trouble. if we find
# the system 'pod2man' to be broken, we use our own copy instead)
#
# In any case, output an appropriate command line for running (or not
# running) pod2man.
IFS=:
try_without_dir=true
# First we try "pod2man", then "$dir/pod2man" for each item in $PATH.
for dir in dummy:$PATH; do
if [ "$try_without_dir" = true ]; then
# first iteration
pod2man=pod2man
try_without_dir=false
else
# second and later iterations
pod2man="$dir/pod2man"
if [ ! -f "$pod2man" ]; then # '-x' is not available on Ultrix
pod2man=''
fi
fi
if [ ! "$pod2man" = '' ]; then
failure=none
if "$pod2man" --section=1 --center=OpenSSL --release=dev pod2mantest.pod | grep '^MARKER - ' >/dev/null 2>&1; then
failure=MultilineTest
fi
if [ "$failure" = none ]; then
echo "$pod2man"
exit 0
fi
echo "$pod2man does not work properly ('$failure' failed). Looking for another pod2man ..." >&2
fi
done
echo "No working pod2man found. Consider installing a new version." >&2
if [ "$1" = ignore ]; then
echo "As a workaround, we'll use a bundled old copy of pod2man.pl." >&2
echo "util/pod2man.pl"
exit 0
fi
exit 1

15
util/pod2mantest.pod Normal file
View file

@ -0,0 +1,15 @@
=pod
=head1 NAME
foo, bar,
MARKER - test of multiline name section
=head1 DESCRIPTION
This is a test .pod file to see if we have a buggy pod2man or not.
If we have a buggy implementation, we will get a line matching the
regular expression "^ +MARKER - test of multiline name section *$"
at the end of the resulting document.
=cut