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 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> .include <bsd.arch.inc.mk>
SUBDIR_PARALLEL= SUBDIR_PARALLEL=

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -385,7 +385,7 @@ for which section 4 man pages will be installed.
The special value The special value
.Sq all .Sq all
installs all available architectures. 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 .It Va MODULES_WITH_WORLD
.Pq Vt bool .Pq Vt bool
Set to build modules with the system instead of the kernel. 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> .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= SUBDIR_PARALLEL=
.include <bsd.subdir.mk> .include <bsd.subdir.mk>

View File

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