git: 84e42ef510c3 - releng/15.0 - packages: Install development manpages in the -dev package

From: Colin Percival <cperciva_at_FreeBSD.org>
Date: Thu, 30 Oct 2025 16:15:28 UTC
The branch releng/15.0 has been updated by cperciva:

URL: https://cgit.FreeBSD.org/src/commit/?id=84e42ef510c388b0a873e639e287308ae1d67801

commit 84e42ef510c388b0a873e639e287308ae1d67801
Author:     Lexi Winter <ivy@FreeBSD.org>
AuthorDate: 2025-10-25 17:33:04 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2025-10-30 16:14:47 +0000

    packages: Install development manpages in the -dev package
    
    Add a new per-group SUBPACKAGE option to bsd.man.mk.  When MANSPLITPKG
    is enabled, this is forced to "-man", otherwise it defaults to empty
    but can be overridden by the caller.
    
    Use this in bsd.lib.mk to install library manpages in the -dev package
    instead of the base package.  This is nearly always preferable, since
    library manpages are usually in section 2 or 3 and are only relevant
    to people with development packages installed.
    
    For manpages which should be installed in the base package even for
    libraries, add a new MANNODEV group in bsd.lib.mk.  Update existing
    Makefiles to use this where appropriate.
    
    Approved by:    re (cperciva)
    MFC after:      3 days
    Discussed with: olce
    Reviewed by:    olce
    Sponsored by:   https://www.patreon.com/bsdivy
    Differential Revision:  https://reviews.freebsd.org/D52832
    
    (cherry picked from commit 031e711647c3edc3021c1029496d6798a632697e)
    (cherry picked from commit e1a6189f960e9c371f0c63e14a295af5d3a8bb03)
---
 lib/geom/Makefile.inc             |  11 ++-
 lib/libarchive/Makefile           |   9 +-
 lib/libc/locale/Makefile.inc      |   2 +-
 lib/libc/posix1e/Makefile.inc     |   3 +-
 lib/libc/regex/Makefile.inc       |   8 +-
 lib/libc/rpc/Makefile.inc         |   4 +-
 lib/libedit/Makefile              |   6 +-
 lib/libmagic/Makefile             |   8 +-
 lib/libpam/libpam/Makefile        |   6 +-
 lib/libpam/static_libpam/Makefile |   1 +
 lib/libpcap/Makefile              |  13 +--
 lib/libradius/Makefile            |   4 +-
 lib/libtacplus/Makefile           |   4 +-
 lib/libutil/Makefile              |   3 +-
 lib/libwrap/Makefile              |  17 ++--
 lib/libxo/libxo/Makefile          |   2 +-
 lib/ncurses/tinfo/Makefile        |   6 +-
 lib/nss_tacplus/Makefile          |   2 +-
 share/man/man3/Makefile           |   1 +
 share/man/man9/Makefile           |   2 +-
 share/mk/bsd.lib.mk               |  13 ++-
 share/mk/bsd.man.mk               |  26 +++--
 usr.sbin/bsnmpd/bsnmpd/Makefile   | 203 +++++++++++++++++++-------------------
 23 files changed, 199 insertions(+), 155 deletions(-)

diff --git a/lib/geom/Makefile.inc b/lib/geom/Makefile.inc
index 35163127538d..75d312a94fe4 100644
--- a/lib/geom/Makefile.inc
+++ b/lib/geom/Makefile.inc
@@ -1,10 +1,11 @@
 .include <src.opts.mk>
 
-SHLIBDIR=${GEOM_CLASS_DIR}
-SHLIB_NAME?=geom_${GEOM_CLASS}.so
-MAN=	g${GEOM_CLASS}.8
-SRCS+=	geom_${GEOM_CLASS}.c subr.c
-CFLAGS+=-I${SRCTOP}/sbin/geom
+SHLIBDIR=	${GEOM_CLASS_DIR}
+SHLIB_NAME?=	geom_${GEOM_CLASS}.so
+MANNODEV=	g${GEOM_CLASS}.8
+
+SRCS+=		geom_${GEOM_CLASS}.c subr.c
+CFLAGS+=	-I${SRCTOP}/sbin/geom
 
 .PATH: ${SRCTOP}/sbin/geom/misc
 
diff --git a/lib/libarchive/Makefile b/lib/libarchive/Makefile
index fed73c388318..4e32dcf72341 100644
--- a/lib/libarchive/Makefile
+++ b/lib/libarchive/Makefile
@@ -184,12 +184,13 @@ MAN=	archive_entry.3					\
 	archive_write_new.3				\
 	archive_write_open.3				\
 	archive_write_set_options.3			\
-	cpio.5						\
 	libarchive.3					\
 	libarchive_changes.3				\
-	libarchive_internals.3				\
-	libarchive-formats.5				\
-	tar.5
+	libarchive_internals.3
+
+MANNODEV=	cpio.5			\
+		libarchive-formats.5	\
+		tar.5
 
 # Symlink the man pages under each function name.
 MLINKS+=	archive_entry.3 archive_entry_clear.3
diff --git a/lib/libc/locale/Makefile.inc b/lib/libc/locale/Makefile.inc
index 33caafc5c10a..127f8fc67abc 100644
--- a/lib/libc/locale/Makefile.inc
+++ b/lib/libc/locale/Makefile.inc
@@ -46,7 +46,7 @@ MAN+=	btowc.3 \
 	wctrans.3 wctype.3 wcwidth.3 \
 	duplocale.3 freelocale.3 newlocale.3 querylocale.3 uselocale.3 xlocale.3
 
-MAN+=	big5.5 euc.5 gb18030.5 gb2312.5 gbk.5 mskanji.5 utf8.5
+MANNODEV+=	big5.5 euc.5 gb18030.5 gb2312.5 gbk.5 mskanji.5 utf8.5
 
 MLINKS+=btowc.3 wctob.3
 MLINKS+=digittoint.3 digittoint_l.3
diff --git a/lib/libc/posix1e/Makefile.inc b/lib/libc/posix1e/Makefile.inc
index 934998cdd092..48f6c1ddf884 100644
--- a/lib/libc/posix1e/Makefile.inc
+++ b/lib/libc/posix1e/Makefile.inc
@@ -84,7 +84,6 @@ MAN+=	acl.3				\
 	acl_valid.3			\
 	extattr.3			\
 	mac.3				\
-	mac.conf.5			\
 	mac_free.3			\
 	mac_is_present.3		\
 	mac_get.3			\
@@ -134,4 +133,6 @@ MLINKS+=acl_create_entry.3 acl_create_entry_np.3\
 	mac_text.3 mac_from_text.3		\
 	mac_text.3 mac_to_text.3
 
+MANNODEV+=	mac.conf.5
+
 CLEANFILES+=	subr_acl_nfs4.c
diff --git a/lib/libc/regex/Makefile.inc b/lib/libc/regex/Makefile.inc
index 89468f1317f6..e3417a3d9983 100644
--- a/lib/libc/regex/Makefile.inc
+++ b/lib/libc/regex/Makefile.inc
@@ -9,9 +9,9 @@ SYM_MAPS+=${LIBC_SRCTOP}/regex/Symbol.map
 
 # manpages only included in libc version
 .if ${LIB} == "c"
-MAN+=	regex.3
-MAN+=	re_format.7
+MAN+=		regex.3
+MLINKS+=	regex.3 regcomp.3 regex.3 regexec.3 regex.3 regerror.3
+MLINKS+=	regexec.3 regfree.3
 
-MLINKS+=regex.3 regcomp.3 regex.3 regexec.3 regex.3 regerror.3
-MLINKS+=regexec.3 regfree.3
+MANNODEV+=	re_format.7
 .endif
diff --git a/lib/libc/rpc/Makefile.inc b/lib/libc/rpc/Makefile.inc
index 87963d10eec1..c22fac2c0e16 100644
--- a/lib/libc/rpc/Makefile.inc
+++ b/lib/libc/rpc/Makefile.inc
@@ -42,12 +42,12 @@ crypt_xdr.c: ${RPCDIR}/crypt.x crypt.h
 
 crypt.h: ${RPCDIR}/crypt.x
 	${RPCGEN} -h -o ${.TARGET} ${RPCDIR}/crypt.x
+
 MAN+=	bindresvport.3 des_crypt.3 getnetconfig.3 getnetpath.3 getrpcent.3 \
 	getrpcport.3 rpc.3 rpc_soc.3 rpc_clnt_auth.3 rpc_clnt_calls.3 \
 	rpc_clnt_create.3 rpc_svc_calls.3 rpc_svc_create.3 rpc_svc_err.3 \
 	rpc_svc_reg.3 rpc_xdr.3 rpcbind.3 publickey.3 rpc_secure.3 \
 	rtime.3
-MAN+=	rpc.5 netconfig.5
 MLINKS+=	bindresvport.3 bindresvport_sa.3 \
 		des_crypt.3 ecb_crypt.3 \
 		des_crypt.3 cbc_crypt.3 \
@@ -177,3 +177,5 @@ MLINKS+=	bindresvport.3 bindresvport_sa.3 \
 		rpc_soc.3 xdr_authunix_parms.3 \
 		rpc_soc.3 xdr_pmap.3 \
 		rpc_soc.3 xdr_pmaplist.3
+
+MANNODEV+=	rpc.5 netconfig.5
diff --git a/lib/libedit/Makefile b/lib/libedit/Makefile
index c7a54253dae9..9161e05a7d36 100644
--- a/lib/libedit/Makefile
+++ b/lib/libedit/Makefile
@@ -15,10 +15,10 @@ SRCS=	chared.c chartype.c common.c el.c eln.c emacs.c filecomplete.c \
 	parse.c prompt.c read.c readline.c refresh.c search.c sig.c \
 	terminal.c tokenizer.c tokenizern.c tty.c vi.c
 
+MAN=		editline.3
+MANNODEV=	editrc.5 editline.7
 
-MAN=	editline.3 editrc.5 editline.7
-
-MLINKS=	\
+MLINKS=\
 	editline.3 el_deletestr.3 \
 	editline.3 el_end.3 \
 	editline.3 el_get.3 \
diff --git a/lib/libmagic/Makefile b/lib/libmagic/Makefile
index 150ddc686241..fe04f5ea68c8 100644
--- a/lib/libmagic/Makefile
+++ b/lib/libmagic/Makefile
@@ -11,7 +11,9 @@ SHLIB_MAJOR=	4
 .if !make(build-tools)
 LIBADD=	z
 .endif
-MAN=	libmagic.3 magic.5
+
+MAN=		libmagic.3
+MANNODEV=	magic.5
 
 SRCS=	apprentice.c apptype.c ascmagic.c buffer.c cdf.c cdf_time.c \
 	compress.c der.c encoding.c fsmagic.c funcs.c is_json.c \
@@ -73,8 +75,8 @@ magic.mgc: mkmagic
 
 FILEVER!= awk '$$1 == "\#define" && $$2 == "VERSION" { print $$3; exit }' \
 			${.CURDIR}/config.h
-CLEANFILES+=	${MAN}
-.for mp in ${MAN}
+CLEANFILES+=	${MAN} ${MANNODEV}
+.for mp in ${MAN} ${MANNODEV}
 ${mp}: ${mp:C/[0-9]/man/}
 	sed -e 's/__FSECTION__/5/g' -e 's/__CSECTION__/1/g' \
 		-e 's/__VERSION__/${FILEVER}/g' \
diff --git a/lib/libpam/libpam/Makefile b/lib/libpam/libpam/Makefile
index dd19eba5c1ec..c6db4992bb36 100644
--- a/lib/libpam/libpam/Makefile
+++ b/lib/libpam/libpam/Makefile
@@ -148,10 +148,10 @@ MAN?=	openpam.3 \
 	pam_strerror.3 \
 	pam_verror.3 \
 	pam_vinfo.3 \
-	pam_vprompt.3 \
-	pam.conf.5
+	pam_vprompt.3
 
-MLINKS?=	pam.conf.5 pam.d.5
+MANNODEV?=	pam.conf.5
+MANNODEVLINKS?=	pam.conf.5 pam.d.5
 
 CFLAGS+= -DLOCALBASE=\"${LOCALBASE:U/usr/local}\"
 CFLAGS+= -I${OPENPAM}/include
diff --git a/lib/libpam/static_libpam/Makefile b/lib/libpam/static_libpam/Makefile
index a1f0f209dea1..8830f09ef0da 100644
--- a/lib/libpam/static_libpam/Makefile
+++ b/lib/libpam/static_libpam/Makefile
@@ -42,6 +42,7 @@ NO_PIC=
 
 # Avoid redundancy with the master Makefile.
 MAN=
+MANNODEV=
 INCS=
 MLINKS=
 MK_TESTS=	no
diff --git a/lib/libpcap/Makefile b/lib/libpcap/Makefile
index 9ba91504852b..c4bd175b502a 100644
--- a/lib/libpcap/Makefile
+++ b/lib/libpcap/Makefile
@@ -109,10 +109,11 @@ MAN=	pcap.3 \
 	pcap_strerror.3 \
 	pcap_tstamp_type_name_to_val.3 \
 	pcap_tstamp_type_val_to_name.3 \
-	pcap-savefile.5 \
-	pcap-filter.7 \
-	pcap-linktype.7 \
-	pcap-tstamp.7
+	pcap-savefile.5
+
+MANNODEV=	pcap-filter.7 \
+		pcap-linktype.7 \
+		pcap-tstamp.7
 
 MLINKS= \
 	pcap_datalink_val_to_name.3 pcap_datalink_val_to_description.3 \
@@ -129,7 +130,7 @@ MLINKS= \
 	pcap_setnonblock.3 pcap_getnonblock.3
 
 # Our man pages are a special copy from the distdir. See below.
-CLEANFILES+=${MAN}
+CLEANFILES+=${MAN} ${MANNODEV}
 CLEANFILES+=grammar.y scanner.h tokdefs.h
 
 YFLAGS+=-p pcap_
@@ -175,7 +176,7 @@ tokdefs.h: grammar.h .NOMETA
 #
 # Magic to convert the man pages to something non Solarish
 #
-.for _page in ${MAN}
+.for _page in ${MAN} ${MANNODEV}
 ${_page}:
 	if [ -f ${PCAP_DISTDIR}/${_page:S/3$/3pcap/} ]; then		\
 		F=${_page:S/3$/3pcap/}; 				\
diff --git a/lib/libradius/Makefile b/lib/libradius/Makefile
index 0ab83d5418b1..b6857a71260a 100644
--- a/lib/libradius/Makefile
+++ b/lib/libradius/Makefile
@@ -31,7 +31,9 @@ INCS=		radlib.h radlib_vs.h
 CFLAGS+=	-Wall
 CFLAGS+=	-DOPENSSL_API_COMPAT=0x10100000L
 SHLIB_MAJOR=	4
-MAN=		libradius.3 radius.conf.5
+
+MAN=		libradius.3
+MANNODEV=	radius.conf.5
 
 MLINKS+=libradius.3 rad_acct_open.3 \
 	libradius.3 rad_add_server.3 \
diff --git a/lib/libtacplus/Makefile b/lib/libtacplus/Makefile
index 43567350aeac..2149b57b124a 100644
--- a/lib/libtacplus/Makefile
+++ b/lib/libtacplus/Makefile
@@ -29,7 +29,9 @@ INCS=		taclib.h
 CFLAGS+=	-Wall
 LIBADD=		md pam
 SHLIB_MAJOR=	5
-MAN=		libtacplus.3 tacplus.conf.5
+
+MAN=		libtacplus.3
+MANNODEV=	tacplus.conf.5
 
 WARNS?=		2
 
diff --git a/lib/libutil/Makefile b/lib/libutil/Makefile
index f6251c093345..d54d9af38a34 100644
--- a/lib/libutil/Makefile
+++ b/lib/libutil/Makefile
@@ -147,7 +147,8 @@ MLINKS+=uucplock.3 uu_lock.3
 MLINKS+=uucplock.3 uu_lock_txfr.3
 MLINKS+=uucplock.3 uu_lockerr.3
 MLINKS+=uucplock.3 uu_unlock.3
-MAN+=	login.conf.5
+
+MANNODEV=	login.conf.5
 
 HAS_TESTS=
 SUBDIR.${MK_TESTS}+= tests
diff --git a/lib/libwrap/Makefile b/lib/libwrap/Makefile
index bc39d5804637..7c302e0f0dc5 100644
--- a/lib/libwrap/Makefile
+++ b/lib/libwrap/Makefile
@@ -1,6 +1,3 @@
-#
-#
-
 .include <src.opts.mk>
 
 PACKAGE=	tcpd
@@ -9,12 +6,14 @@ CONFS=	hosts.allow
 LIB=	wrap
 SHLIB_MAJOR= 6
 INCS=	tcpd.h
-MAN=	hosts_access.3
-MAN+=	hosts_access.5 hosts_options.5
-MLINKS=	hosts_access.3 hosts_ctl.3 \
-	hosts_access.3 request_init.3 \
-	hosts_access.3 request_set.3 \
-	hosts_options.5 hosts.allow.5
+
+MAN=		hosts_access.3
+MLINKS=		hosts_access.3 hosts_ctl.3 \
+		hosts_access.3 request_init.3 \
+		hosts_access.3 request_set.3
+
+MANNODEV=	hosts_access.5 hosts_options.5
+MANNODEVLINKS=	hosts_options.5 hosts.allow.5
 
 .PATH:	${SRCTOP}/contrib/tcp_wrappers
 
diff --git a/lib/libxo/libxo/Makefile b/lib/libxo/libxo/Makefile
index 38e6ff031c7f..9caf8a498b05 100644
--- a/lib/libxo/libxo/Makefile
+++ b/lib/libxo/libxo/Makefile
@@ -51,7 +51,7 @@ MAN+=	xo_attr.3 \
 
 MAN+=	xo_format.5
 
-MAN+=	xo_options.7
+MANNODEV=	xo_options.7
 
 MLINKS=	xo_attr.3 xo_attr_h.3 \
 	xo_attr.3 xo_attr_hv.3 \
diff --git a/lib/ncurses/tinfo/Makefile b/lib/ncurses/tinfo/Makefile
index 8f01557edaee..08c2311cd7a9 100644
--- a/lib/ncurses/tinfo/Makefile
+++ b/lib/ncurses/tinfo/Makefile
@@ -399,6 +399,7 @@ terminfo.5: MKterminfo.sh terminfo.head Caps
 CLEANFILES+=	terminfo.5
 
 .PATH: ${NCURSES_DIR}/man
+
 MAN=	\
 	curs_addch.3 \
 	curs_addchstr.3 \
@@ -475,8 +476,9 @@ MAN+=	\
 	curs_printw.3 \
 	curs_scanw.3
 
-MAN+=	term.5 terminfo.5 scr_dump.5 user_caps.5
-MAN+=	term.7
+MAN+=	scr_dump.5
+
+MANNODEV=	term.5 term.7 terminfo.5 user_caps.5
 
 CLEANFILES+=	${MAN:M*.3}
 
diff --git a/lib/nss_tacplus/Makefile b/lib/nss_tacplus/Makefile
index c85297a7dbaa..e6fb934c234b 100644
--- a/lib/nss_tacplus/Makefile
+++ b/lib/nss_tacplus/Makefile
@@ -4,6 +4,6 @@ SHLIB_MAJOR=	1
 SHLIB_NAME=	${LIB}.so.${SHLIB_MAJOR}
 LIBADD=		tacplus
 MK_INSTALLLIB=	no
-MAN=		${LIB}.8
+MANNODEV=	${LIB}.8
 
 .include <bsd.lib.mk>
diff --git a/share/man/man3/Makefile b/share/man/man3/Makefile
index 3511acb254e1..18e439491793 100644
--- a/share/man/man3/Makefile
+++ b/share/man/man3/Makefile
@@ -1,6 +1,7 @@
 .include <src.opts.mk>
 
 PACKAGE=	clibs
+MANSUBPACKAGE=	-dev
 
 MAN=		alloca.3 \
 		arb.3 \
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile
index feef662a9acd..a4d4a58c350d 100644
--- a/share/man/man9/Makefile
+++ b/share/man/man9/Makefile
@@ -1,6 +1,6 @@
 .include <src.opts.mk>
 
-PACKAGE=	kernel-man
+MANPACKAGE=	kernel-man
 
 MAN=	accept_filter.9 \
 	accf_data.9 \
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index 065e635ed43d..159957b6300b 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -82,7 +82,18 @@ DEV_TAG_ARGS=	${TAG_ARGS},dev
 .else
 DEV_TAG_ARGS=	${TAG_ARGS}
 .endif
-.endif	# !defined(NO_ROOT)
+
+.endif	# defined(NO_ROOT)
+
+# By default, put library manpages in the -dev subpackage, since they're not
+# usually interesting if the development files aren't installed.   For pages
+# that should be installed in the base package, define a new MANNODEV group.
+# Note that bsd.man.mk ignores this setting if MANSPLITPKG is enabled: then
+# manpages are always installed in the -man subpackage.
+MANSUBPACKAGE?=	-dev
+MANGROUPS?=	MAN
+MANGROUPS+=	MANNODEV
+MANNODEVSUBPACKAGE=
 
 # ELF hardening knobs
 .if ${MK_BIND_NOW} != "no"
diff --git a/share/mk/bsd.man.mk b/share/mk/bsd.man.mk
index 1591a3e0905e..dde11afb8283 100644
--- a/share/mk/bsd.man.mk
+++ b/share/mk/bsd.man.mk
@@ -61,6 +61,16 @@
 
 MANGROUPS?=	MAN
 
+# MAN_SUBPACKAGE is the subpackage manpages will be installed in.  When
+# MANSPLITPKG is enabled, this is ignored and the subpackage is forced
+# to be "-man", otherwise it defaults to empty so manpages go in the
+# base package.  This can be set to "-dev" for manpages that should go
+# in the -dev package.
+MAN_SUBPACKAGE?=
+
+# The default man package, if not otherwise specified.
+MAN_PACKAGE=	${PACKAGE:Uutilities}
+
 # Backwards compatibility.
 MINSTALL?=	${MANINSTALL}
 
@@ -113,17 +123,19 @@ manlinksinstall: manlinksinstall-${__group}
 ${__group}OWN?=		${MANOWN}
 ${__group}GRP?=		${MANGRP}
 ${__group}MODE?=	${MANMODE}
-${__group}PACKAGE?=	${PACKAGE:Uutilities}
+# If MANSPLITPKG is enabled, ignore the requested man subpackage and put the
+# manpages in -man instead.
+.if ${MK_MANSPLITPKG} == "yes"
+${__group}SUBPACKAGE=	-man
+.else
+${__group}SUBPACKAGE?=	${MAN_SUBPACKAGE}
+.endif
+${__group}PACKAGE?=	${MAN_PACKAGE}${${__group}SUBPACKAGE}
 
 # Tag processing is only done for NO_ROOT installs.
 .if defined(NO_ROOT)
-
 .if !defined(${__group}TAGS) || ! ${${__group}TAGS:Mpackage=*}
-.if ${MK_MANSPLITPKG} == "no" || ${${__group}PACKAGE:M*-man}
-${__group}TAGS+=	package=${${__group}PACKAGE}
-.else
-${__group}TAGS+=	package=${${__group}PACKAGE}-man
-.endif
+${__group}TAGS+=       package=${${__group}PACKAGE}
 .endif
 
 ${__group}TAG_ARGS=	-T ${${__group}TAGS:ts,:[*]}
diff --git a/usr.sbin/bsnmpd/bsnmpd/Makefile b/usr.sbin/bsnmpd/bsnmpd/Makefile
index 601fc31ec475..0943c49c1ca1 100644
--- a/usr.sbin/bsnmpd/bsnmpd/Makefile
+++ b/usr.sbin/bsnmpd/bsnmpd/Makefile
@@ -17,105 +17,110 @@ XSYM=	snmpMIB begemotSnmpdModuleTable begemotSnmpd begemotTrapSinkTable \
 	freeBSD freeBSDVersion begemotSnmpdTransInet
 CLEANFILES= oid.h tree.c tree.h
 
-MAN=	bsnmpd.1 snmpmod.3
-
-MLINKS+=	snmpmod.3 FIND_OBJECT_INT.3
-MLINKS+=	snmpmod.3 FIND_OBJECT_INT_LINK.3
-MLINKS+=	snmpmod.3 FIND_OBJECT_INT_LINK_INDEX.3
-MLINKS+=	snmpmod.3 FIND_OBJECT_OID.3
-MLINKS+=	snmpmod.3 FIND_OBJECT_OID_LINK.3
-MLINKS+=	snmpmod.3 FIND_OBJECT_OID_LINK_INDEX.3
-MLINKS+=	snmpmod.3 INSERT_OBJECT_INT.3
-MLINKS+=	snmpmod.3 INSERT_OBJECT_INT_LINK.3
-MLINKS+=	snmpmod.3 INSERT_OBJECT_INT_LINK_INDEX.3
-MLINKS+=	snmpmod.3 INSERT_OBJECT_OID.3
-MLINKS+=	snmpmod.3 INSERT_OBJECT_OID_LINK.3
-MLINKS+=	snmpmod.3 INSERT_OBJECT_OID_LINK_INDEX.3
-MLINKS+=	snmpmod.3 NEXT_OBJECT_INT.3
-MLINKS+=	snmpmod.3 NEXT_OBJECT_INT_LINK.3
-MLINKS+=	snmpmod.3 NEXT_OBJECT_INT_LINK_INDEX.3
-MLINKS+=	snmpmod.3 NEXT_OBJECT_OID.3
-MLINKS+=	snmpmod.3 NEXT_OBJECT_OID_LINK.3
-MLINKS+=	snmpmod.3 NEXT_OBJECT_OID_LINK_INDEX.3
-MLINKS+=	snmpmod.3 bsnmpd_get_target_stats.3
-MLINKS+=	snmpmod.3 bsnmpd_get_usm_stats.3
-MLINKS+=	snmpmod.3 bsnmpd_reset_usm_stats.3
-MLINKS+=	snmpmod.3 buf_alloc.3
-MLINKS+=	snmpmod.3 buf_size.3
-MLINKS+=	snmpmod.3 comm_define.3
-MLINKS+=	snmpmod.3 community.3
-MLINKS+=	snmpmod.3 fd_deselect.3
-MLINKS+=	snmpmod.3 fd_resume.3
-MLINKS+=	snmpmod.3 fd_select.3
-MLINKS+=	snmpmod.3 fd_suspend.3
-MLINKS+=	snmpmod.3 get_ticks.3
-MLINKS+=	snmpmod.3 index_append.3
-MLINKS+=	snmpmod.3 index_append_off.3
-MLINKS+=	snmpmod.3 index_compare.3
-MLINKS+=	snmpmod.3 index_compare_off.3
-MLINKS+=	snmpmod.3 index_decode.3
-MLINKS+=	snmpmod.3 ip_commit.3
-MLINKS+=	snmpmod.3 ip_get.3
-MLINKS+=	snmpmod.3 ip_rollback.3
-MLINKS+=	snmpmod.3 ip_save.3
-MLINKS+=	snmpmod.3 or_register.3
-MLINKS+=	snmpmod.3 or_unregister.3
-MLINKS+=	snmpmod.3 oid_commit.3
-MLINKS+=	snmpmod.3 oid_get.3
-MLINKS+=	snmpmod.3 oid_rollback.3
-MLINKS+=	snmpmod.3 oid_save.3
-MLINKS+=	snmpmod.3 oid_usmNotInTimeWindows.3
-MLINKS+=	snmpmod.3 oid_usmUnknownEngineIDs.3
-MLINKS+=	snmpmod.3 oid_zeroDotZero.3
-MLINKS+=	snmpmod.3 reqid_allocate.3
-MLINKS+=	snmpmod.3 reqid_base.3
-MLINKS+=	snmpmod.3 reqid_istype.3
-MLINKS+=	snmpmod.3 reqid_next.3
-MLINKS+=	snmpmod.3 reqid_type.3
-MLINKS+=	snmpmod.3 snmp_input_finish.3
-MLINKS+=	snmpmod.3 snmp_input_start.3
-MLINKS+=	snmpmod.3 snmp_output.3
-MLINKS+=	snmpmod.3 snmp_pdu_auth_access.3
-MLINKS+=	snmpmod.3 snmp_send_port.3
-MLINKS+=	snmpmod.3 snmp_send_trap.3
-MLINKS+=	snmpmod.3 snmpd_target_stat.3
-MLINKS+=	snmpmod.3 snmpd_usmstats.3
-MLINKS+=	snmpmod.3 start_tick.3
-MLINKS+=	snmpmod.3 string_commit.3
-MLINKS+=	snmpmod.3 string_free.3
-MLINKS+=	snmpmod.3 string_get.3
-MLINKS+=	snmpmod.3 string_get_max.3
-MLINKS+=	snmpmod.3 string_rollback.3
-MLINKS+=	snmpmod.3 string_save.3
-MLINKS+=	snmpmod.3 systemg.3
-MLINKS+=	snmpmod.3 this_tick.3
-MLINKS+=	snmpmod.3 timer_start.3
-MLINKS+=	snmpmod.3 timer_start_repeat.3
-MLINKS+=	snmpmod.3 timer_stop.3
-MLINKS+=	snmpmod.3 target_activate_address.3
-MLINKS+=	snmpmod.3 target_address.3
-MLINKS+=	snmpmod.3 target_delete_address.3
-MLINKS+=	snmpmod.3 target_delete_notify.3
-MLINKS+=	snmpmod.3 target_delete_param.3
-MLINKS+=	snmpmod.3 target_first_address.3
-MLINKS+=	snmpmod.3 target_first_notify.3
-MLINKS+=	snmpmod.3 target_first_param.3
-MLINKS+=	snmpmod.3 target_flush_all.3
-MLINKS+=	snmpmod.3 target_next_address.3
-MLINKS+=	snmpmod.3 target_next_notify.3
-MLINKS+=	snmpmod.3 target_next_param.3
-MLINKS+=	snmpmod.3 target_new_address.3
-MLINKS+=	snmpmod.3 target_new_notify.3
-MLINKS+=	snmpmod.3 target_new_param.3
-MLINKS+=	snmpmod.3 target_notify.3
-MLINKS+=	snmpmod.3 target_param.3
-MLINKS+=	snmpmod.3 usm_delete_user.3
-MLINKS+=	snmpmod.3 usm_find_user.3
-MLINKS+=	snmpmod.3 usm_first_user.3
-MLINKS+=	snmpmod.3 usm_flush_users.3
-MLINKS+=	snmpmod.3 usm_next_user.3
-MLINKS+=	snmpmod.3 usm_new_user.3
-MLINKS+=	snmpmod.3 usm_user.3
+MANGROUPS=	MAN MAN3
+
+MAN=	bsnmpd.1
+
+MAN3=	snmpmod.3
+MAN3SUBPACKAGE=-dev
+
+MAN3LINKS+=	snmpmod.3 FIND_OBJECT_INT.3
+MAN3LINKS+=	snmpmod.3 FIND_OBJECT_INT_LINK.3
+MAN3LINKS+=	snmpmod.3 FIND_OBJECT_INT_LINK_INDEX.3
+MAN3LINKS+=	snmpmod.3 FIND_OBJECT_OID.3
+MAN3LINKS+=	snmpmod.3 FIND_OBJECT_OID_LINK.3
+MAN3LINKS+=	snmpmod.3 FIND_OBJECT_OID_LINK_INDEX.3
+MAN3LINKS+=	snmpmod.3 INSERT_OBJECT_INT.3
+MAN3LINKS+=	snmpmod.3 INSERT_OBJECT_INT_LINK.3
+MAN3LINKS+=	snmpmod.3 INSERT_OBJECT_INT_LINK_INDEX.3
+MAN3LINKS+=	snmpmod.3 INSERT_OBJECT_OID.3
+MAN3LINKS+=	snmpmod.3 INSERT_OBJECT_OID_LINK.3
+MAN3LINKS+=	snmpmod.3 INSERT_OBJECT_OID_LINK_INDEX.3
+MAN3LINKS+=	snmpmod.3 NEXT_OBJECT_INT.3
+MAN3LINKS+=	snmpmod.3 NEXT_OBJECT_INT_LINK.3
+MAN3LINKS+=	snmpmod.3 NEXT_OBJECT_INT_LINK_INDEX.3
+MAN3LINKS+=	snmpmod.3 NEXT_OBJECT_OID.3
+MAN3LINKS+=	snmpmod.3 NEXT_OBJECT_OID_LINK.3
+MAN3LINKS+=	snmpmod.3 NEXT_OBJECT_OID_LINK_INDEX.3
+MAN3LINKS+=	snmpmod.3 bsnmpd_get_target_stats.3
+MAN3LINKS+=	snmpmod.3 bsnmpd_get_usm_stats.3
+MAN3LINKS+=	snmpmod.3 bsnmpd_reset_usm_stats.3
+MAN3LINKS+=	snmpmod.3 buf_alloc.3
+MAN3LINKS+=	snmpmod.3 buf_size.3
+MAN3LINKS+=	snmpmod.3 comm_define.3
+MAN3LINKS+=	snmpmod.3 community.3
+MAN3LINKS+=	snmpmod.3 fd_deselect.3
+MAN3LINKS+=	snmpmod.3 fd_resume.3
+MAN3LINKS+=	snmpmod.3 fd_select.3
+MAN3LINKS+=	snmpmod.3 fd_suspend.3
+MAN3LINKS+=	snmpmod.3 get_ticks.3
+MAN3LINKS+=	snmpmod.3 index_append.3
+MAN3LINKS+=	snmpmod.3 index_append_off.3
+MAN3LINKS+=	snmpmod.3 index_compare.3
+MAN3LINKS+=	snmpmod.3 index_compare_off.3
+MAN3LINKS+=	snmpmod.3 index_decode.3
+MAN3LINKS+=	snmpmod.3 ip_commit.3
+MAN3LINKS+=	snmpmod.3 ip_get.3
+MAN3LINKS+=	snmpmod.3 ip_rollback.3
+MAN3LINKS+=	snmpmod.3 ip_save.3
+MAN3LINKS+=	snmpmod.3 or_register.3
+MAN3LINKS+=	snmpmod.3 or_unregister.3
+MAN3LINKS+=	snmpmod.3 oid_commit.3
+MAN3LINKS+=	snmpmod.3 oid_get.3
+MAN3LINKS+=	snmpmod.3 oid_rollback.3
+MAN3LINKS+=	snmpmod.3 oid_save.3
+MAN3LINKS+=	snmpmod.3 oid_usmNotInTimeWindows.3
+MAN3LINKS+=	snmpmod.3 oid_usmUnknownEngineIDs.3
+MAN3LINKS+=	snmpmod.3 oid_zeroDotZero.3
+MAN3LINKS+=	snmpmod.3 reqid_allocate.3
+MAN3LINKS+=	snmpmod.3 reqid_base.3
+MAN3LINKS+=	snmpmod.3 reqid_istype.3
+MAN3LINKS+=	snmpmod.3 reqid_next.3
+MAN3LINKS+=	snmpmod.3 reqid_type.3
+MAN3LINKS+=	snmpmod.3 snmp_input_finish.3
+MAN3LINKS+=	snmpmod.3 snmp_input_start.3
+MAN3LINKS+=	snmpmod.3 snmp_output.3
+MAN3LINKS+=	snmpmod.3 snmp_pdu_auth_access.3
+MAN3LINKS+=	snmpmod.3 snmp_send_port.3
+MAN3LINKS+=	snmpmod.3 snmp_send_trap.3
+MAN3LINKS+=	snmpmod.3 snmpd_target_stat.3
+MAN3LINKS+=	snmpmod.3 snmpd_usmstats.3
+MAN3LINKS+=	snmpmod.3 start_tick.3
+MAN3LINKS+=	snmpmod.3 string_commit.3
+MAN3LINKS+=	snmpmod.3 string_free.3
+MAN3LINKS+=	snmpmod.3 string_get.3
+MAN3LINKS+=	snmpmod.3 string_get_max.3
+MAN3LINKS+=	snmpmod.3 string_rollback.3
+MAN3LINKS+=	snmpmod.3 string_save.3
+MAN3LINKS+=	snmpmod.3 systemg.3
+MAN3LINKS+=	snmpmod.3 this_tick.3
+MAN3LINKS+=	snmpmod.3 timer_start.3
+MAN3LINKS+=	snmpmod.3 timer_start_repeat.3
+MAN3LINKS+=	snmpmod.3 timer_stop.3
+MAN3LINKS+=	snmpmod.3 target_activate_address.3
+MAN3LINKS+=	snmpmod.3 target_address.3
+MAN3LINKS+=	snmpmod.3 target_delete_address.3
+MAN3LINKS+=	snmpmod.3 target_delete_notify.3
+MAN3LINKS+=	snmpmod.3 target_delete_param.3
+MAN3LINKS+=	snmpmod.3 target_first_address.3
+MAN3LINKS+=	snmpmod.3 target_first_notify.3
+MAN3LINKS+=	snmpmod.3 target_first_param.3
+MAN3LINKS+=	snmpmod.3 target_flush_all.3
+MAN3LINKS+=	snmpmod.3 target_next_address.3
+MAN3LINKS+=	snmpmod.3 target_next_notify.3
+MAN3LINKS+=	snmpmod.3 target_next_param.3
+MAN3LINKS+=	snmpmod.3 target_new_address.3
+MAN3LINKS+=	snmpmod.3 target_new_notify.3
+MAN3LINKS+=	snmpmod.3 target_new_param.3
+MAN3LINKS+=	snmpmod.3 target_notify.3
+MAN3LINKS+=	snmpmod.3 target_param.3
+MAN3LINKS+=	snmpmod.3 usm_delete_user.3
+MAN3LINKS+=	snmpmod.3 usm_find_user.3
+MAN3LINKS+=	snmpmod.3 usm_first_user.3
+MAN3LINKS+=	snmpmod.3 usm_flush_users.3
+MAN3LINKS+=	snmpmod.3 usm_next_user.3
+MAN3LINKS+=	snmpmod.3 usm_new_user.3
+MAN3LINKS+=	snmpmod.3 usm_user.3
 
 FILESGROUPS= BMIBS DEFS