aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Sobolev <sobomax@FreeBSD.org>2020-04-07 02:46:22 +0000
committerMaxim Sobolev <sobomax@FreeBSD.org>2020-04-07 02:46:22 +0000
commita8b8edb25e1d97b1872f699d31b43633d60d76b8 (patch)
tree1aea1998d91c0bc27913291595ad03ae70e24dde
parentbe4ed3d2cf38ad9ee12ff360a919af474ac39fec (diff)
downloadsrc-a8b8edb25e1d97b1872f699d31b43633d60d76b8.tar.gz
src-a8b8edb25e1d97b1872f699d31b43633d60d76b8.zip
Notes
-rw-r--r--Makefile.inc122
-rw-r--r--etc/Makefile4
-rw-r--r--lib/libc/gen/Makefile.inc4
-rw-r--r--share/mk/src.tools.mk25
-rw-r--r--share/mk/sys.mk2
-rw-r--r--share/termcap/Makefile3
-rw-r--r--usr.bin/login/Makefile2
-rw-r--r--usr.bin/vgrind/Makefile3
-rw-r--r--usr.sbin/services_mkdb/Makefile4
9 files changed, 50 insertions, 19 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 926b4e5fd635..3a517fc24cd3 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -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_world .PHONY
.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
diff --git a/etc/Makefile b/etc/Makefile
index 683523ff15fc..78a60b6fcb30 100644
--- a/etc/Makefile
+++ b/etc/Makefile
@@ -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
@@ -99,8 +99,6 @@ distribution:
.endif
.endif
-MTREE_CMD?= mtree
-
MTREES= mtree/BSD.root.dist / \
mtree/BSD.var.dist /var \
mtree/BSD.usr.dist /usr \
diff --git a/lib/libc/gen/Makefile.inc b/lib/libc/gen/Makefile.inc
index 9028043b532b..18c6f51691f5 100644
--- a/lib/libc/gen/Makefile.inc
+++ b/lib/libc/gen/Makefile.inc
@@ -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"; \
diff --git a/share/mk/src.tools.mk b/share/mk/src.tools.mk
new file mode 100644
index 000000000000..722734bbfc1a
--- /dev/null
+++ b/share/mk/src.tools.mk
@@ -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>__)
diff --git a/share/mk/sys.mk b/share/mk/sys.mk
index 03698a2920b8..2248d64f6580 100644
--- a/share/mk/sys.mk
+++ b/share/mk/sys.mk
@@ -234,7 +234,7 @@ FFLAGS ?= -O
.endif
EFLAGS ?=
-INSTALL ?= install
+INSTALL ?= ${INSTALL_CMD:Uinstall}
LEX ?= lex
LFLAGS ?=
diff --git a/share/termcap/Makefile b/share/termcap/Makefile
index c261da5e7921..e7c7f544b7f4 100644
--- a/share/termcap/Makefile
+++ b/share/termcap/Makefile
@@ -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" \
diff --git a/usr.bin/login/Makefile b/usr.bin/login/Makefile
index cb1e7e38e160..2e8b215a4492 100644
--- a/usr.bin/login/Makefile
+++ b/usr.bin/login/Makefile
@@ -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
diff --git a/usr.bin/vgrind/Makefile b/usr.bin/vgrind/Makefile
index 38a2a3193991..5c9b1154fdd1 100644
--- a/usr.bin/vgrind/Makefile
+++ b/usr.bin/vgrind/Makefile
@@ -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>
diff --git a/usr.sbin/services_mkdb/Makefile b/usr.sbin/services_mkdb/Makefile
index db9c83472d56..9d728b6da824 100644
--- a/usr.sbin/services_mkdb/Makefile
+++ b/usr.sbin/services_mkdb/Makefile
@@ -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