man: Build manpages for all architectures

Building and installing architecture-specific man pages only raises a number of
problems:

 * The https://www.freebsd.org/cgi/man.cgi is incomplete. As an
   example, it does not show results for pae(4). The reason for this is
   that the cgi interface runs on FreeBSD amd64.

 * In FreeBSD amd64 some manual pages have broken X-refs. See hptrr(4)
   for an example.

 * Also, we have broken links in our Release Notes. This is a
   consequence of the first point. See
   https://www.freebsd.org/releases/13.0R/hardware/#proc-i386.

Make MAN_ARCH default to 'all' so we build all the man pages for all the
architectures. The difference in disk space is negligible. Also link
architecture-specific man pages to their own section while keeping their own
namespace.

PR: 212290
Reported by:	mj@bsdops.com
Approved by:	ceri@, wosch@
MFC after:	4 weeks
This commit is contained in:
Fernando Apesteguía 2021-06-09 12:58:04 +02:00
parent c0149d0300
commit 0a0f748641
9 changed files with 39 additions and 4 deletions

View File

@ -90,6 +90,12 @@ SUBDIR.${MK_ZFS}+= zfsbootcfg
SUBDIR.${MK_TESTS}+= tests
# Add architecture-specific manpages
# to be included anyway
MAN= sconfig/sconfig.8
.include <bsd.prog.mk>
.include <bsd.arch.inc.mk>
SUBDIR_PARALLEL=

View File

@ -895,9 +895,7 @@ _cgem.4= cgem.4
MLINKS+=cgem.4 if_cgem.4
.endif
.if empty(MAN_ARCH)
__arches= ${MACHINE} ${MACHINE_ARCH} ${MACHINE_CPUARCH}
.elif ${MAN_ARCH} == "all"
.if empty(MAN_ARCH) || ${MAN_ARCH} == "all"
__arches= ${:!/bin/sh -c "/bin/ls -d ${.CURDIR}/man4.*"!:E}
.else
__arches= ${MAN_ARCH}

View File

@ -17,6 +17,11 @@ MAN= \
rk_i2c.4 \
rk_pinctrl.4 \
# Link files to the parent directory
.for _manpage in ${MAN}
MLINKS+=${_manpage} ../${_manpage}
.endfor
MANSUBDIR=/aarch64
.include <bsd.prog.mk>

View File

@ -18,6 +18,11 @@ MAN= \
MLINKS= imx_wdog.4 imxwdt.4
MLINKS+= mge.4 if_mge.4
# Link files to the parent directory
.for _manpage in ${MAN}
MLINKS+=${_manpage} ../${_manpage}
.endfor
MANSUBDIR=/arm
.include <bsd.prog.mk>

View File

@ -21,6 +21,11 @@ MLINKS= CPU_ELAN.4 CPU_SOEKRIS.4
MLINKS+=pae.4 PAE.4
MLINKS+=sbni.4 if_sbni.4
# Link files to the parent directory
.for _manpage in ${MAN}
MLINKS+=${_manpage} ../${_manpage}
.endfor
MANSUBDIR=/i386
.include <bsd.prog.mk>

View File

@ -15,6 +15,11 @@ MAN= adb.4 \
snd_davbus.4 \
tsec.4
# Link files to the parent directory
.for _manpage in ${MAN}
MLINKS+=${_manpage} ../${_manpage}
.endfor
MANSUBDIR=/powerpc
.include <bsd.prog.mk>

View File

@ -385,7 +385,7 @@ for which section 4 man pages will be installed.
The special value
.Sq all
installs all available architectures.
The default is the MACHINE and MACHINE_ARCH being built.
It is also the default value.
.It Va MODULES_WITH_WORLD
.Pq Vt bool
Set to build modules with the system instead of the kernel.

View File

@ -213,6 +213,13 @@ SUBDIR.${MK_TESTS}+= tests
.include <bsd.arch.inc.mk>
# Add architecture-specific manpages
# to be included anyway
MAN= apmd/apmd.8 \
nvram/nvram.8
.include <bsd.prog.mk>
SUBDIR_PARALLEL=
.include <bsd.subdir.mk>

View File

@ -5,6 +5,10 @@ MAN= apm.8
MLINKS= apm.8 apmconf.8
MANSUBDIR= /${MACHINE_CPUARCH}
# Link files to the parent directory
MLINKS+= apm.8 ../apm.8
MLINKS+= apmconf.8 ../apmconf.8
PACKAGE=apm
.include <bsd.prog.mk>