svn commit: r359685 - in head: . etc lib/libc/gen share/mk share/termcap usr.bin/login usr.bin/vgrind usr.sbin/services_mkdb

Maxim Sobolev sobomax at FreeBSD.org
Tue Apr 7 02:46:25 UTC 2020


Author: sobomax
Date: Tue Apr  7 02:46:22 2020
New Revision: 359685
URL: https://svnweb.freebsd.org/changeset/base/359685

Log:
  Normalize deployment tools usage and definitions by putting into one place
  instead of sprinkling them out over many disjoint files. This is a follow-up
  to achieve the same goal in an incomplete rev.348521.
  
  Approved by:	imp
  MFC after:	1 month
  Differential Revision:	https://reviews.freebsd.org/D20520

Added:
  head/share/mk/src.tools.mk   (contents, props changed)
Modified:
  head/Makefile.inc1
  head/etc/Makefile
  head/lib/libc/gen/Makefile.inc
  head/share/mk/sys.mk
  head/share/termcap/Makefile
  head/usr.bin/login/Makefile
  head/usr.bin/vgrind/Makefile
  head/usr.sbin/services_mkdb/Makefile

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1	Tue Apr  7 02:45:24 2020	(r359684)
+++ head/Makefile.inc1	Tue Apr  7 02:46:22 2020	(r359685)
@@ -57,6 +57,8 @@ _MKSHOWCONFIG=	t
 SRCDIR?=	${.CURDIR}
 LOCALBASE?=	/usr/local
 
+.include "share/mk/src.tools.mk"
+
 # Cross toolchain changes must be in effect before bsd.compiler.mk
 # so that gets the right CC, and pass CROSS_TOOLCHAIN to submakes.
 .if defined(CROSS_TOOLCHAIN)
@@ -874,8 +876,8 @@ MTREEFLAGS+=	-W
 INSTALLFLAGS+=	-h sha256
 .endif
 .if defined(DB_FROM_SRC) || defined(NO_ROOT)
-IMAKE_INSTALL=	INSTALL="install ${INSTALLFLAGS}"
-IMAKE_MTREE=	MTREE_CMD="mtree ${MTREEFLAGS}"
+IMAKE_INSTALL=	INSTALL="${INSTALL_CMD} ${INSTALLFLAGS}"
+IMAKE_MTREE=	MTREE_CMD="${MTREE_CMD} ${MTREEFLAGS}"
 .endif
 
 DESTDIR_MTREEFLAGS=	-deU
@@ -887,12 +889,12 @@ WORLDTMP_MTREEFLAGS=	-deUW
 # that are created by mtree to be owned by root/wheel.
 DESTDIR_MTREEFLAGS+=	-W
 .endif
-MTREE?=	mtree
+DISTR_MTREE=	${MTREE_CMD}
 .if ${BUILD_WITH_STRICT_TMPPATH} != 0
-MTREE=	${WORLDTMP}/legacy/usr/sbin/mtree
+DISTR_MTREE=	${WORLDTMP}/legacy/usr/sbin/mtree
 .endif
-WORLDTMP_MTREE=	${MTREE} ${WORLDTMP_MTREEFLAGS}
-DESTDIR_MTREE=	${MTREE} ${DESTDIR_MTREEFLAGS}
+WORLDTMP_MTREE=	${DISTR_MTREE} ${WORLDTMP_MTREEFLAGS}
+DESTDIR_MTREE=	${DISTR_MTREE} ${DESTDIR_MTREEFLAGS}
 
 # kernel stage
 KMAKEENV=	${WMAKEENV:NSYSROOT=*}
@@ -1363,14 +1365,14 @@ distributeworld installworld stageworld: _installcheck
 .endif
 .endif
 .if defined(NO_ROOT)
-	${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.root.dist | \
+	${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.root.dist | \
 	    sed -e 's#^\./#./${dist}/#' >> ${METALOG}
-	${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.usr.dist | \
+	${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.usr.dist | \
 	    sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG}
-	${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \
+	${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \
 	    sed -e 's#^\./#./${dist}/usr/include/#' >> ${METALOG}
 .if defined(_LIBCOMPAT)
-	${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist | \
+	${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist | \
 	    sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG}
 .endif
 .endif

Modified: head/etc/Makefile
==============================================================================
--- head/etc/Makefile	Tue Apr  7 02:45:24 2020	(r359684)
+++ head/etc/Makefile	Tue Apr  7 02:46:22 2020	(r359685)
@@ -2,11 +2,11 @@
 # $FreeBSD$
 
 .include <src.opts.mk>
+.include <src.tools.mk>
 
 FILESGROUPS=	FILES
 NLS_ALIASES=	POSIX C \
 		en_US.US_ASCII C
-PWD_MKDB_CMD?=	pwd_mkdb
 
 # No need as it is empty and just causes rebuilds since this file does so much.
 UPDATE_DEPENDFILE=	no
@@ -98,8 +98,6 @@ distribution:
 	    ${DESTDIR}/boot/device.hints
 .endif
 .endif
-
-MTREE_CMD?=	mtree
 
 MTREES=		mtree/BSD.root.dist		/		\
 		mtree/BSD.var.dist		/var		\

Modified: head/lib/libc/gen/Makefile.inc
==============================================================================
--- head/lib/libc/gen/Makefile.inc	Tue Apr  7 02:45:24 2020	(r359684)
+++ head/lib/libc/gen/Makefile.inc	Tue Apr  7 02:46:22 2020	(r359685)
@@ -550,11 +550,13 @@ MLINKS+=vis.3 nvis.3 \
 
 MLINKS+=wordexp.3 wordfree.3
 
+.include <src.tools.mk>
+
 afterinstallconfig:
 .if ${MK_TCSH} == "no"
 	sed -i "" -e 's;/bin/csh;/bin/sh;' ${DESTDIR}/etc/master.passwd
 .endif
-	pwd_mkdb -i -p -d ${DESTDIR}/etc ${DESTDIR}/etc/master.passwd
+	${PWD_MKDB_CMD} -i -p -d ${DESTDIR}/etc ${DESTDIR}/etc/master.passwd
 .if defined(NO_ROOT) && defined(METALOG)
 	( \
 		echo "./etc/pwd.db type=file mode=0644 uname=root gname=wheel"; \

Added: head/share/mk/src.tools.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/mk/src.tools.mk	Tue Apr  7 02:46:22 2020	(r359685)
@@ -0,0 +1,25 @@
+# Various tools used by the FreeBSD make installworld / distrib-dirs /
+# distribution / installkernel targets. Also called "bootstrap tools"
+# historically, however that name seemed to be ambiguous, as those tools
+# merely help distributing the OS build artefacts into staging / production
+# area.
+#
+# Very tiny subset of "itools", if you are old enough to know what it is.
+#
+# Please keep the list short, this file may and will be included from
+# many places within the source tree. Rule of thumb: if the above mentioned
+# targets survive with MYTOOL_CMD=false, then MYTOOL_CMD probably
+# does not belong here. Stick it somewhere else, thank you very much!
+#
+# $FreeBSD$
+
+.if !target(__<src.tools.mk>__)
+
+INSTALL_CMD?=	install
+MTREE_CMD?=	mtree
+PWD_MKDB_CMD?=	pwd_mkdb
+SERVICES_MKDB_CMD?=	services_mkdb
+CAP_MKDB_CMD?=	cap_mkdb
+
+__<src.tools.mk>__:
+.endif  # !target(__<tools>__)

Modified: head/share/mk/sys.mk
==============================================================================
--- head/share/mk/sys.mk	Tue Apr  7 02:45:24 2020	(r359684)
+++ head/share/mk/sys.mk	Tue Apr  7 02:46:22 2020	(r359685)
@@ -234,7 +234,7 @@ FFLAGS		?=	-O
 .endif
 EFLAGS		?=
 
-INSTALL		?=	install
+INSTALL		?=	${INSTALL_CMD:Uinstall}
 
 LEX		?=	lex
 LFLAGS		?=

Modified: head/share/termcap/Makefile
==============================================================================
--- head/share/termcap/Makefile	Tue Apr  7 02:45:24 2020	(r359684)
+++ head/share/termcap/Makefile	Tue Apr  7 02:46:22 2020	(r359685)
@@ -14,9 +14,10 @@ CLEANFILES+=	termcap.db
 CONFS=		termcap.small
 
 .include <bsd.endian.mk>
+.include <src.tools.mk>
 
 termcap.db: termcap
-	cap_mkdb ${CAP_MKDB_ENDIAN} -f ${.TARGET:R} ${.ALLSRC}
+	${CAP_MKDB_CMD} ${CAP_MKDB_ENDIAN} -f ${.TARGET:R} ${.ALLSRC}
 
 etc-termcap:
 	${INSTALL_SYMLINK} -T "package=runtime" \

Modified: head/usr.bin/login/Makefile
==============================================================================
--- head/usr.bin/login/Makefile	Tue Apr  7 02:45:24 2020	(r359684)
+++ head/usr.bin/login/Makefile	Tue Apr  7 02:46:22 2020	(r359685)
@@ -2,13 +2,13 @@
 # $FreeBSD$
 
 .include <src.opts.mk>
+.include <src.tools.mk>
 
 CONFS=	fbtab login.conf motd.template login.access
 PROG=	login
 SRCS=	login.c login_fbtab.c
 CFLAGS+=-DLOGALL
 LIBADD=	util pam
-CAP_MKDB_CMD?=	cap_mkdb
 
 WARNS?=	5
 

Modified: head/usr.bin/vgrind/Makefile
==============================================================================
--- head/usr.bin/vgrind/Makefile	Tue Apr  7 02:45:24 2020	(r359684)
+++ head/usr.bin/vgrind/Makefile	Tue Apr  7 02:46:22 2020	(r359685)
@@ -19,8 +19,9 @@ SCRIPTSDIR=/usr/bin
 CLEANFILES= vgrindefs.src.db
 
 .include <bsd.endian.mk>
+.include <src.tools.mk>
 
 vgrindefs.src.db: vgrindefs.src
-	cap_mkdb ${CAP_MKDB_ENDIAN} -f vgrindefs.src ${.ALLSRC}
+	${CAP_MKDB_CMD} ${CAP_MKDB_ENDIAN} -f vgrindefs.src ${.ALLSRC}
 
 .include <bsd.prog.mk>

Modified: head/usr.sbin/services_mkdb/Makefile
==============================================================================
--- head/usr.sbin/services_mkdb/Makefile	Tue Apr  7 02:45:24 2020	(r359684)
+++ head/usr.sbin/services_mkdb/Makefile	Tue Apr  7 02:46:22 2020	(r359685)
@@ -6,11 +6,13 @@ CONFS=	services
 PROG=	services_mkdb
 MAN=	services_mkdb.8
 SRCS=	services_mkdb.c uniq.c extern.h
-SERVICES_MKDB_CMD?=	${PROG}
 
 .include <bsd.endian.mk>
 .include <src.opts.mk>
 .if ${MK_SERVICESDB} != "no"
+# SERVICES_MKDB_CMD defined here
+.include <src.tools.mk>
+
 afterinstallconfig:
 	${SERVICES_MKDB_CMD} ${CAP_MKDB_ENDIAN} -q -o ${DESTDIR}/var/db/services.db \
 		${DESTDIR}/etc/services


More information about the svn-src-all mailing list