svn commit: r313223 - in stable/10: share/mk usr.sbin/bsnmpd/modules usr.sbin/bsnmpd/modules/snmp_hostres usr.sbin/bsnmpd/modules/snmp_mibII

Ngie Cooper ngie at FreeBSD.org
Sat Feb 4 16:40:30 UTC 2017


Author: ngie
Date: Sat Feb  4 16:40:28 2017
New Revision: 313223
URL: https://svnweb.freebsd.org/changeset/base/313223

Log:
  MFC r311744,r312328,r312329,r312330:
  
  r311744:
  
  Document bsd.snmpmod.mk from a high-level
  
  r312328:
  
  Add a make target (smilint) for running smilint tool against BMIBS
  
  Running smilint against MIB definitions is useful in finding
  functional problems with MIB definitions/descriptions.
  
  This is inspired by the smilint targets defined in
  usr.sbin/bsnmpd/modules/{snmp_hostres,snmp_mibII}/Makefile
  
  Document all of the variables that are involved in running the
  smilint target, as well as all of the prerequisites to running
  it.
  
  r312329:
  
  Remove ad hoc smilint targets made standard in bsd.snmpmod.mk in r312328
  
  r312330:
  
  Add smilint target to subdir targets so "make smilint" here will run
  the smilint target in subdirs
  
  While here, convert a path that's .CURDIR relative to SRCTOP

Modified:
  stable/10/share/mk/bsd.README
  stable/10/share/mk/bsd.snmpmod.mk
  stable/10/usr.sbin/bsnmpd/modules/Makefile
  stable/10/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile
  stable/10/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/share/mk/bsd.README
==============================================================================
--- stable/10/share/mk/bsd.README	Sat Feb  4 16:37:43 2017	(r313222)
+++ stable/10/share/mk/bsd.README	Sat Feb  4 16:40:28 2017	(r313223)
@@ -350,6 +350,82 @@ If foo has multiple source files, add th
 
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
+The include file, <bsd.snmpmod.mk>, handles building MIB modules for bsnmpd
+from one or more source files, along with their manual pages.  It has a
+limited number of suffixes, consistent with the current needs of the BSD
+tree.
+
+bsd.snmpmod.mk leverages bsd.lib.mk for building MIB modules and
+bsd.files.mk for installing MIB description and definition files.
+
+It implements the following additional targets:
+
+	smilint:
+		execute smilint on the MIBs defined by BMIBS.
+
+		The net-mgmt/libsmi package must be installed before
+		executing this target. The net-mgmt/net-snmp package
+		should be installed as well to reduce false positives
+		from smilint.
+
+It sets/uses the following variables:
+
+BMIBS		The MIB definitions to install.
+
+BMIBSDIR	The directory where the MIB definitions are installed.
+		This defaults to `${SHAREDIR}/snmp/mibs`.
+
+DEFS		The MIB description files to install.
+
+DEFSDIR		The directory where MIB description files are installed.
+		This defaults to `${SHAREDIR}/snmp/defs`.
+
+EXTRAMIBDEFS	Extra MIB description files to use as input when
+		generating ${MOD}_oid.h and ${MOD}_tree.[ch].
+
+EXTRAMIBSYMS	Extra MIB definition files used only for extracting
+		symbols.
+
+		EXTRAMIBSYMS are useful when resolving inter-module
+		dependencies and are useful with files containing only
+		enum-definitions.
+
+		See ${MOD}_oid.h for more details.
+
+LOCALBASE	The package root where smilint and the net-snmp
+		definitions can be found
+
+MOD		The bsnmpd module name.
+
+SMILINT		smilint binary to use with the smilint make target.
+
+SMILINT_FLAGS	flags to pass to smilint.
+
+SMIPATH		A colon-separated directory path where MIBs definitions
+		can be found. See "SMIPATH" in smi_config for more
+		details.
+
+XSYM		MIB names to extract symbols for. See ${MOD}_oid.h for
+		more details.
+
+It generates the following files:
+
+${MOD}_tree.c	A source file and header which programmatically describes
+${MOD}_tree.h	the MIB (type, OID name, ACCESS attributes, etc).
+
+		The files are generated via "gensnmptree -p".
+
+		See gensnmptree(1) for more details.
+
+${MOD}_oid.h	A header which programmatically describes the MIB root and
+		MIB tables.
+
+		The files are generated via "gensnmptree -e".
+
+		See gensnmptree(1) for more details.
+
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
 The include file <bsd.subdir.mk> contains the default targets for building
 subdirectories.  It has the same seven targets as <bsd.prog.mk>: all, clean,
 cleandir, depend, install, lint, and tags.  For all of the directories

Modified: stable/10/share/mk/bsd.snmpmod.mk
==============================================================================
--- stable/10/share/mk/bsd.snmpmod.mk	Sat Feb  4 16:37:43 2017	(r313222)
+++ stable/10/share/mk/bsd.snmpmod.mk	Sat Feb  4 16:40:28 2017	(r313223)
@@ -24,4 +24,18 @@ FILESGROUPS+=	BMIBS
 BMIBSDIR=	${SHAREDIR}/snmp/mibs
 .endif
 
+.if !target(smilint) && !empty(BMIBS)
+LOCALBASE?=	/usr/local
+
+SMILINT?=	${LOCALBASE}/bin/smilint
+
+SMIPATH?=	${BMIBSDIR}:${LOCALBASE}/share/snmp/mibs
+
+SMILINT_FLAGS?=	-c /dev/null -l6 -i group-membership
+
+smilint: ${BMIBS}
+	SMIPATH=${SMIPATH} ${SMILINT} ${SMILINT_FLAGS} ${.ALLSRC}
+.endif
+smilint: .PHONY
+
 .include <bsd.lib.mk>

Modified: stable/10/usr.sbin/bsnmpd/modules/Makefile
==============================================================================
--- stable/10/usr.sbin/bsnmpd/modules/Makefile	Sat Feb  4 16:37:43 2017	(r313222)
+++ stable/10/usr.sbin/bsnmpd/modules/Makefile	Sat Feb  4 16:40:28 2017	(r313223)
@@ -2,7 +2,7 @@
 
 .include <bsd.own.mk>
 
-.PATH: ${.CURDIR}/../../../contrib/bsnmp/snmpd
+.PATH: ${SRCTOP}/contrib/bsnmp/snmpd
 
 .if ${MK_ATM} != "no"
 _snmp_atm= snmp_atm
@@ -35,4 +35,6 @@ SUBDIR+=snmp_wlan
 INCS=	snmpmod.h
 INCSDIR= ${INCLUDEDIR}/bsnmp
 
+SUBDIR_TARGETS+=	smilint
+
 .include <bsd.prog.mk>

Modified: stable/10/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile
==============================================================================
--- stable/10/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile	Sat Feb  4 16:37:43 2017	(r313222)
+++ stable/10/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile	Sat Feb  4 16:40:28 2017	(r313223)
@@ -76,8 +76,3 @@ LDADD=	-lkvm -ldevinfo -lm -lgeom -lmems
 
 printcap.So: printcap.c
 	${CC} ${PICFLAG} -DPIC ${CFLAGS:C/^-W.*//} -c ${.IMPSRC} -o ${.TARGET}
-
-smilint: .PHONY
-smilint: ${BMIBS}
-	env SMIPATH=.:/usr/share/snmp/mibs:/usr/local/share/snmp/mibs \
-	    smilint -c /dev/null -l6 -i group-membership ${.ALLSRC}

Modified: stable/10/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile
==============================================================================
--- stable/10/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile	Sat Feb  4 16:37:43 2017	(r313222)
+++ stable/10/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile	Sat Feb  4 16:40:28 2017	(r313223)
@@ -21,8 +21,3 @@ INCS=	snmp_${MOD}.h
 BMIBS=	BEGEMOT-IP-MIB.txt BEGEMOT-MIB2-MIB.txt
 
 .include <bsd.snmpmod.mk>
-
-smilint: .PHONY
-smilint: ${BMIBS}
-	env SMIPATH=/usr/share/snmp/mibs:/usr/local/share/snmp/mibs \
-	    smilint -c /dev/null -l6 -i group-membership ${.ALLSRC}


More information about the svn-src-all mailing list