Support installing manpages for multiple or alternate architecture(s).

Some section-4 manpages are architecture-specific, and the build process
currently generates only the pages for the MACHINE_CPUARCH being built.
man(1) supports a '-m' option to find manpages belonging to an arbitrary
architecture other than the MACHINE_[CPU]ARCH, but we have no way to
generate and install alternate-arch pages right now.

This change adds a new make.conf variable, MAN_ARCH, which can be a list of
one or more MACHINE_ARCH or MACHINE_CPUARCH values. All arch-specific
manpages that exist for the named arches will be installed. If unset, it
continues the behavior of installing just the MACHINE_CPUARCH being built.

Differential Revision:	https://reviews.freebsd.org/D16198
This commit is contained in:
Ian Lepore 2018-07-20 14:23:01 +00:00
parent d11f4dfd21
commit 1538208322
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=336548
2 changed files with 20 additions and 3 deletions

View File

@ -868,9 +868,18 @@ _nvd.4= nvd.4
_nvme.4= nvme.4
.endif
.if exists(${.CURDIR}/man4.${MACHINE_CPUARCH})
SUBDIR= man4.${MACHINE_CPUARCH}
.if empty(MAN_ARCH)
__arches= ${MACHINE} ${MACHINE_ARCH} ${MACHINE_CPUARCH}
.elif ${MAN_ARCH} == "all"
__arches= ${:!/bin/sh -c "/bin/ls -d ${.CURDIR}/man4.*"!:E}
.else
__arches= ${MAN_ARCH}
.endif
.for __arch in ${__arches:O:u}
.if exists(${.CURDIR}/man4.${__arch})
SUBDIR+= man4.${__arch}
.endif
.endfor
.if ${MK_BLUETOOTH} != "no"
MAN+= ng_bluetooth.4

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd February 23, 2017
.Dd July 20, 2018
.Dt MAKE.CONF 5
.Os
.Sh NAME
@ -399,6 +399,14 @@ Set this to disable assertions and statistics gathering in
.Xr malloc 3 .
It also defaults the A and J runtime options to off.
Disabled by default on -CURRENT.
.It Va MAN_ARCH
.Pq Vt str
Space-delimited list of one or more MACHINE and/or MACHINE_ARCH values
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 Va MODULES_WITH_WORLD
.Pq Vt bool
Set to build modules with the system instead of the kernel.