From 0a0f7486413c147d56808b38055c40c64cff61f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Apestegu=C3=ADa?= Date: Wed, 9 Jun 2021 12:58:04 +0200 Subject: [PATCH] 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 --- sbin/Makefile | 6 ++++++ share/man/man4/Makefile | 4 +--- share/man/man4/man4.aarch64/Makefile | 5 +++++ share/man/man4/man4.arm/Makefile | 5 +++++ share/man/man4/man4.i386/Makefile | 5 +++++ share/man/man4/man4.powerpc/Makefile | 5 +++++ share/man/man5/make.conf.5 | 2 +- usr.sbin/Makefile | 7 +++++++ usr.sbin/apm/Makefile | 4 ++++ 9 files changed, 39 insertions(+), 4 deletions(-) diff --git a/sbin/Makefile b/sbin/Makefile index 64840bae82bb..f53e2f037ebe 100644 --- a/sbin/Makefile +++ b/sbin/Makefile @@ -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 + .include SUBDIR_PARALLEL= diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 5051470edc71..9027fe7df841 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -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} diff --git a/share/man/man4/man4.aarch64/Makefile b/share/man/man4/man4.aarch64/Makefile index 6714a47011ef..ef5fcd84ccd4 100644 --- a/share/man/man4/man4.aarch64/Makefile +++ b/share/man/man4/man4.aarch64/Makefile @@ -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 diff --git a/share/man/man4/man4.arm/Makefile b/share/man/man4/man4.arm/Makefile index 0b3eec427934..2ac8dbb5fd81 100644 --- a/share/man/man4/man4.arm/Makefile +++ b/share/man/man4/man4.arm/Makefile @@ -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 diff --git a/share/man/man4/man4.i386/Makefile b/share/man/man4/man4.i386/Makefile index a21b3cd6302b..e3d2e66ca78d 100644 --- a/share/man/man4/man4.i386/Makefile +++ b/share/man/man4/man4.i386/Makefile @@ -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 diff --git a/share/man/man4/man4.powerpc/Makefile b/share/man/man4/man4.powerpc/Makefile index 05c5d4012fe8..aa0e137fcedd 100644 --- a/share/man/man4/man4.powerpc/Makefile +++ b/share/man/man4/man4.powerpc/Makefile @@ -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 diff --git a/share/man/man5/make.conf.5 b/share/man/man5/make.conf.5 index 5885d9476d71..b3623b29a950 100644 --- a/share/man/man5/make.conf.5 +++ b/share/man/man5/make.conf.5 @@ -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. diff --git a/usr.sbin/Makefile b/usr.sbin/Makefile index 6acef31cc23a..f19af2a5566d 100644 --- a/usr.sbin/Makefile +++ b/usr.sbin/Makefile @@ -213,6 +213,13 @@ SUBDIR.${MK_TESTS}+= tests .include +# Add architecture-specific manpages +# to be included anyway +MAN= apmd/apmd.8 \ + nvram/nvram.8 + +.include + SUBDIR_PARALLEL= .include diff --git a/usr.sbin/apm/Makefile b/usr.sbin/apm/Makefile index f52453c62522..27fa0c37d5cf 100644 --- a/usr.sbin/apm/Makefile +++ b/usr.sbin/apm/Makefile @@ -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